RE: RE: [802.1] Alex Ruzin MSTP MIB Proposal - explanations
"David B Harrington" <[email protected]> Wed, 10 Nov 2004 14:56:56 -0500
| Newsgroups | gmane.ietf.bridge |
|---|---|
| Message-ID | <[email protected]> |
Hi Alex, Thanks for the explanation. As Bridge WG co-chair, I need to address the MSTP MIB work as we transition development of MIB modules for 802.1 technologies from IETF to IEEE. The MSTP-MIB is out of scope for the IETF BridgeMIB WG, so technical discussion of proposals should not be posted to the Bridge WG mailing list. The appropriate mailing list for MSTP-MIB discussion is [email protected]. To subscribe to the STDS-802-1-L list, go to http://www.ieee802.org/1/email-pages/ To see the general information about 802,1, including how they work and how to participate, go to http://www.ieee802.org/1/ Currently, the discussion on STDS-802-1-L is whether to develop a PAR for this work. In IETF terms, the IEEE discussion is whether to add the MSTP-MIB to their charter. They have a formal procedure that needs to be followed. If you have a document related to MSTP-MIB, you can have it posted to the documents folder via the 802.1 chair or vice-chair. I follow the STDS-802-1-L list, and will be happy to advise the Bridge WG that such documents have been posted. (feel free to "ping" me that such documents have been posted on the IEEE web site.) David Harrington [email protected] Bridge WG co-chair ________________________________ From: [email protected] [mailto:[email protected]] On Behalf Of Alex Ruzin Sent: Wednesday, November 10, 2004 7:58 AM To: 'Congdon, Paul T (ProCurve)'; [email protected] Cc: [email protected] Subject: [Bridge-mib] RE: [802.1] Alex Ruzin MSTP MIB Proposal - explanations (Sorry for HTML, but I want you to see a nice diagram below). I dare to provide a number of explanations for ruzin-mstp-mib-00.txt from http://www.ieee802.org/1/files/public/docs2004/ruzin-mstp-mib-00.txt This MIB contains 6 parts: mstpTraps, mstpGen, mstpPortTable, mstpMapTable, mstpXstTable and mstpXstPortTable: 1. mstpTraps help to get information about changes in MSTP active topology asynchronous notifications. Conditions and parameters seem to be clear, while may be discussed. 2. mstpGen. This group is dedicated to manage Bridge Protocol Entity, described in 12.8.1.1 and 12.8.1.3. In a certain sense this group reflects CIST, but without objects, that may be managed in mstpXstTable, see below. 3. mstpPortTable allows to manage physical ports, as it is described in 1.8.2.1., 1.80.2.3., 1.8.2.5 and 12.8.2.7. In a certain sense this group reflects CIST ports, but without objects, that may be managed in mstpXstPortTable, see below. 4. mstpMapTable serves for MSTI List management. It allows to build/delete instances and to map FIDs/VIDs (12.12). Actually, this table reflects MST Configuration Table in format, that is defined in 13.7 item 4). It must be admitted that I "grabbed" the idea of ranges in this table from malhotra-mstpmib-01.txt 5. mstpXstTable reflects instances - both CIST and MSTIs (12.8.1.2 and 12.8.1.4). It contains objects, common for these both types of instances, for example, mstpXstBridgePriority. 6. mstpXstPortTable is dedicated to manage ports inside instances - both CIST and MSTIs (12.8.2.2., 12.8.2.4 and 12.8.2.6). It contains objects, describing port and common for these both types of instances, for example, mstpXstPortState or mstpXstPortPriority. Note, that this table has mstpXstPortInternalRootCost, while mstpPortAdminExternalPathCost belongs to mstpPortTable. Important, that the index mstpXstId in mstpXstTable and mstpXstPortXstId in mstpXstPortTable have type MstiOrCistInstanceIndex : "value of zero" corresponds to CIST. Now, I'd like to mention in passing objects, that are not defined in .1s Let us begin from less questionable. 1. mstpPortAutoEdge. It came from new .1d 917.13.3) and I don't expect many objections here :) 2. mstpXstPortRole. The exploitation of MSTP shows, that managers of complicated networks want to know reasons of ports states assignations. So, they concerned with ports roles. In my opinion, this object is important not only debug purposes. 3. The similar destination have so called BpduCounters. Let's say, when a port stops to be RootPort, a manager may see, that receive BpduCounters on this port do not rise. He may trace bridges and select a point of failure. And what is more, I'd define an object mstpXstPortRxMstBpduCounter to count MSTI Configuration Messages. Sure, all these counters are optional: if an agent cannot provide for them it must return zero. 4. mstpGenCapable. A manager has to know, what version of STP the bridge supplies. If it supplies a number of versions (see mstpGenForceVersion), the eldest one must be returned. 5. mstpGenForceVersion. If the bridge can supply a number of versions of STP (let's say, it has a number of corresponding engines) a manager may want to enable one of them (and of course to disable all others) he may use with this object. This object also show which engine is currently enabled. 6. The value forceNonStp(0) of object mstpGenForceVersion. I remember a few of dispute both in IETF and in IEEE : what is STP disabled into a bridge. I know and share a position of IEEE, that there may not be bridge with STP disabled, nevertheless... The term "Spanning Tree Protocol Emulation" here means, that a bridge is transparent for received BPDUs (does flooding: transmits from all ports, without tags and without VLAN participation) and processes Topology Change bit: does appropriate FDB flushing. 7. mstpPortAdminNonStp. Certain port may be configured as a port, that does not participate in any STP operations: a) it discards all BDPUs, b) does not send BPDUs and c) is always in forwarding state. This option may help to termination point of STP domain. 8. mstpXstMasterPort. Servers the same purposes as mstpXstPortRole and BpduCounters. On the other hand, is not less helpful than mstpXstRootPort; furthermore it may help to indicate fallacious instance mapping (when a manager expects bridges in the same region, this object must be zero). 9. Both mstpXstRootPort and mstpXstMasterPort have type PortIndexOrZero. Brief structure of the MIB (result of "snmptranslate -Tp"): +--mstp(XXX) | +--mstpTraps(0) | | | +--dos1sNewRootBridge(1) | +--dos1sNewRootPort(2) | +--dos1sTopologyChange(3) | +--mstpGen(10) | | | +-- -RW- INTEGER mstpGenBridgeMaxAge(2) | | Textual Convention: Timeout | | Range: 600..4000 | +-- -RW- INTEGER mstpGenBridgeHelloTime(3) | | Textual Convention: Timeout | | Range: 100..1000 | +-- -RW- INTEGER mstpGenBridgeForwardDelay(4) | | Textual Convention: Timeout | | Range: 400..3000 | +-- -R-- INTEGER mstpGenMaxAge(8) | | Textual Convention: Timeout | | Range: 600..4000 | +-- -R-- INTEGER mstpGenHelloTime(9) | | Textual Convention: Timeout | | Range: 100..1000 | +-- -R-- INTEGER mstpGenForwardDelay(10) | | Textual Convention: Timeout | | Range: 400..3000 | +-- -RW- Integer32 mstpGenMaxHops(14) | | Range: 4..30 | +-- -RW- INTEGER mstpGenHoldTime(15) | | Textual Convention: Timeout | | Range: 100..1000 | +-- -RW- INTEGER mstpGenMigrateTime(16) | | Textual Convention: Timeout | | Range: 100..1000 | +-- -RW- EnumVal mstpGenPathCostDefault(18) | | Values: pathCostDefault8021d1998(1), pathCostDefault8021t2001(2) | +-- -R-- EnumVal mstpGenCapable(19) | | Values: nonStp(0), dot1d1998(1), dot1w(2), dot1d2004(3), | | dot1s(4), dot1q(5), unknown(6) | +-- -RW- EnumVal mstpGenForceVersion(20) | | Values: forceNonStp(0), forceLegacyDot1d(1), | | forceDot1w(2), autoDot1s(3), unknown(4) | +-- -RW- String mstpGenCfgName(21) | | Textual Convention: DisplayString | | Size: 32 | +-- -RW- Integer32 mstpGenRevLevel(22) | +-- -R-- String mstpGenReginalRoot(26) | | Textual Convention: BridgeId | | Size: 8 | +-- -R-- Integer32 mstpGenExternalRootCost(27) | +--mstpPortTable(11) | | | +--mstpPortEntry(1) | | Index: mstpPortIndex | | | +-- -R-- Integer32 mstpPortIndex(1) | | Textual Convention: PortIndex | | Range: 1..2147483647 | +-- -RW- EnumVal mstpPortAdminMACEnable(2) | | Textual Convention: TruthValue | | Values: true(1), false(2) | +-- -R-- EnumVal mstpPortOperMACEnable(3) | | Textual Convention: TruthValue | | Values: true(1), false(2) | +-- -R-- TimeTicks mstpPortUpTime(4) | +-- -RW- Integer32 mstpPortAdminExternalPathCost(5) | | Range: 0..200000000 | +-- -R-- Integer32 mstpPortOperExternalPathCost(6) | +-- -RW- EnumVal mstpPortAdminEdge(7) | | Textual Convention: TruthValue | | Values: true(1), false(2) | +-- -R-- EnumVal mstpPortOperEdge(8) | | Textual Convention: TruthValue | | Values: true(1), false(2) | +-- -RW- EnumVal mstpPortAutoEdge(9) | | Textual Convention: TruthValue | | Values: true(1), false(2) | +-- -RW- EnumVal mstpPortAdminPointToPoint(10) | | Values: forceTrue(0), forceFalse(1), auto(2) | +-- -R-- EnumVal mstpPortOperPointToPoint(11) | | Textual Convention: TruthValue | | Values: true(1), false(2) | +-- -RW- INTEGER mstpPortHelloTime(12) | | Textual Convention: Timeout | | Range: 100..1000 | +-- -RW- EnumVal mstpPortAdminNonStp(13) | | Textual Convention: TruthValue | | Values: true(1), false(2) | +-- -RW- EnumVal mstpPortProtocolMigration(14) | | Textual Convention: TruthValue | | Values: true(1), false(2) | +-- -R-- Counter mstpPortRxTcnBpduCounter(15) | | Textual Convention: BpduCounter | +-- -R-- Counter mstpPortRxCfgBpduCounter(16) | +-- -R-- Counter mstpPortRxRstBpduCounter(17) | +-- -R-- Counter mstpPortRxMstBpduCounter(18) | +-- -R-- Counter mstpPortTxTcnBpduCounter(19) | +-- -R-- Counter mstpPortTxCfgBpduCounter(20) | +-- -R-- Counter mstpPortTxRstBpduCounter(21) | +-- -R-- Counter mstpPortTxMstBpduCounter(22) | +--mstpMapTable(12) | | | +--mstpMapEntry(1) | | Index: mstpMapMSTiID, mstpMapVlanRangeIndex | | | +-- ---- Integer32 mstpMapMSTiID(1) | | Textual Convention: MstiInstanceIndex | | Range: 1..64 | +-- ---- Integer32 mstpMapVlanRangeIndex(2) | | Range: 1..4094 | | | +--mstpMapVlanMin(3) | | | +--mstpMapVlanMax(4) | | | +-- CR-- EnumVal mstpMapRowStatus(9) | Textual Convention: RowStatus | Values: active(1), notInService(2), notReady(3), | createAndGo(4), createAndWait(5), destroy(6) | +--mstpXstTable(13) | | | +--mstpXstEntry(1) | | Index: mstpXstId | | | +-- ---- Integer32 mstpXstId(1) | | Textual Convention: MstiOrCistInstanceIndex | | Range: 0..64 | +-- -RW- Integer32 mstpXstBridgePriority(2) | | Range: 0..61440 | +-- -R-- String mstpXstBridgeId(3) | | Textual Convention: BridgeId | | Size: 8 | +-- -R-- String mstpXstDesignatedRoot(4) | | Textual Convention: BridgeId | | Size: 8 | +-- -R-- String mstpXstDesignatedBridge(5) | | Textual Convention: BridgeId | | Size: 8 | +-- -R-- Integer32 mstpXstInternalRootCost(6) | +-- -R-- Integer32 mstpXstRootPort(7) | | Textual Convention: PortIndexOrZero | | Range: 0..2147483647 | +-- -R-- Integer32 mstpXstMasterPort(8) | | Textual Convention: PortIndexOrZero | | Range: 0..2147483647 | +-- -R-- TimeTicks mstpXstTimeSinceTopologyChange(11) | +-- -R-- Counter mstpXstTopologyChangesCount(12) | +-- -R-- EnumVal mstpXstTopologyChangeFlag(13) | Textual Convention: TruthValue | Values: true(1), false(2) | +--mstpXstPortTable(14) | +--mstpXstPortEntry(1) | Index: mstpXstPortXstId, mstpXstPortIndex | +-- ---- Integer32 mstpXstPortXstId(1) | Textual Convention: MstiOrCistInstanceIndex | Range: 0..64 +-- -R-- Integer32 mstpXstPortIndex(2) | Textual Convention: PortIndex | Range: 1..2147483647 +-- -R-- EnumVal mstpXstPortState(3) | Values: disabled(1), discarding(1), learning(2), forwarding(3), unknown(4) +-- -R-- EnumVal mstpXstPortRole(4) | Values: disabled(1), alternate(2), backup(3), root(4), | designated(5), master(6), nonStp(7), unknown(8) +-- -R-- String mstpXstPortDesignatedRoot(6) | Textual Convention: BridgeId | Size: 8 +-- -R-- Integer32 mstpXstPortExternalRootCost(7) +-- -R-- String mstpXstPortRegionalBridge(8) | Textual Convention: BridgeId | Size: 8 +-- -R-- Integer32 mstpXstPortInternalRootCost(9) +-- -R-- String mstpXstPortDesignatedBridge(10) | Textual Convention: BridgeId | Size: 8 +-- -R-- String mstpXstPortDesignatedPort(14) | Textual Convention: PortId | Size: 2 +-- -RW- Integer32 mstpXstPortPriority(15) | Range: 0..255 +-- -RW- Integer32 mstpXstPortAdminInternalPathCost(16) | Range: 0..200000000 +-- -R-- Integer32 mstpXstPortOperInternalPathCost(17) On Wednesday, November 03, 2004 4:15 PM Congdon, Paul T (ProCurve) wrote: > I've uploaded Alex Ruzin's MSTP MIB. Note that this is slightly > different than the MIB that Alex cut-and-pasted to a previous email. > The document may be retrieved at: > > http://www.ieee802.org/1/files/public/docs2004/ruzin-mstp-mib-00.txt <http://www.ieee802.org/1/files/public/docs2004/ruzin-mstp-mib-00.txt>