RE: [802.1] Alex Ruzin MSTP MIB Proposal - explanations
[email protected] (Alex Ruzin) Wed, 10 Nov 2004 14:57:33 +0200
| Newsgroups | gmane.ietf.bridge |
|---|---|
| Message-ID | <00e401c4c724$d92aafe0$87885ac2@Alexr> |
(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
_______________________________________________
Bridge-mib mailing list
[email protected]
https://www1.ietf.org/mailman/listinfo/bridge-mib