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>