The MPLS WG Archive[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index][Thread Index][Author Index][Subject Index] LDP MIB, version 9 outstanding issue
At 05:53 PM 4/13/2003 -0400, jcucchiara@mindspring.com wrote:
>Hello Everyone,
>
> From the Atlanta MPLS MIB meeting there was an outstanding issue
>as described by the "MPLS MIB review meeting minutes" posted
>to the mpls working group on Dec 03, 2002. This issue
>had to do with the change from version 8 of the MIB to
>version 9.
>
>Version 8 of the MIB had 3 Mapping tables, from an LDP LSP
>to either an InSegment/OutSegment/XCSegment in the LSR-MIB.
>
>Version 9 reduces this to 1 table and uses RowPointers.
>
>The motivation for doing this was to reduce the number of
>objects. However, it turns out that this table is lacking
>because the indexing will not be unique under certain
>circumstances. This was very well documented in email
>by Neil Jerram on Nov 15, 2002 "RE: Questions on LDP MIB v9".
>This is repeated here for your convenience:
>
> "Here is a concrete example of the problem. LSR A and LSR B each
> distribute a label to each other, and by chance they use the same
> label value, 67. So in LSR A's mplsLdpLspTable, the label that A
> distributed to B has index:
>
> mplsLdpEntityLdpId AA AA AA AA 00 01
> mplsLdpEntityIndex 1
> mplsLdpPeerLdpId BB BB BB BB 00 01
> mplsLdpLspIfIndex 1
> mplsLdpLspLabel 67
>
> The label that A received from B has index:
>
> mplsLdpEntityLdpId AA AA AA AA 00 01
> mplsLdpEntityIndex 1
> mplsLdpPeerLdpId BB BB BB BB 00 01
> mplsLdpLspIfIndex 1
> mplsLdpLspLabel 67
>
> Which is exactly the same. So the mplsLdpLspTable can't hold
> represent both of these labels at once."
>
>Please note, the next version of the MIB will
>not have the mplsLdpLspTable. Neil has proposed a solution
>which is very detailed in that email (and repeated
>at the end of this email). I would like to incorporate his
>these tables (or revised versions of these tables)
>into the next version of the MIB.
>
>Does anyone have any objections with this change?
I think the only other point made during the
meeting was to make these tables optional in the
conformance.
--Tom
> Thanks, Joan
>
>Quoting from Neil's email dated Nov 15th to the mpls@uu.net:
>
>"Key points of my proposal are as follows.
>
>- The new tables are:
>
> - mplsLdpUpLabelTable, describing labels distributed to upstream peers
>
> - mplsLdpDownLabelTable, describing labels received from downstream
> peers, including liberally retained and null labels.
>
>- Like the tables that they replace in LDP MIB v9, these tables use
> RowPointers to point to LIB information in the LSR MIB. They don't
> unnecessarily duplicate any information that can be obtained from
> the LSR MIB.
>
>- Advantages in comparison with LDB MIB v9 are that:
>
> - mplsLdpDownLabelTable can show both established and liberally
> retained labels, and has a flag to indicate which labels are which
>
> - mplsLdpDownLabelTable can show multiple label mappings received
> from the same peer, for the same FEC, and with the same label
> value (this is most relevant for implicit and explicit null
> labels, but can also occur in some networks with non-null label
> values)
>
> - mplsLdpUpLabelTable and mplsLdpDownLabelTable can show a
> distributed label and a received label that share the same
> session, FEC and label value.
>
>- mplsLdpUpLabelTable has a RowPointer to an mplsLdpDownLabelTable
> entry that can be used to show how upstream and downstream mappings
> are connected.
>
>The full ASN.1 and a note on indexing are appended below. Thank you
>very much for your time.
>
> Neil
>
>
>Indexing
>========
>
>The tables are indexed by (LDP session, FEC index, LSP index), where:
>
>- LDP session is the usual (entity ldp id, entity index, peer ldp id)
>- FEC index is a non-predictable index into the mplsFecTable
>- LSP index is a non-predictable tie-breaker index for non-merging
> LSPs for the same FEC.
>
>The key benefit of this indexing is that it permits the
>representation, for non-merging FECs, of the labels established by
>multiple Label Request - Label Mapping exchanges through an LSR, even
>when the labels distributed for different Label Requests are the same
>(usually implicit and explicit nulls).
>
>
>ASN.1
>=====
>
> --
> -- The MPLS LDP Upstream Label Table
> --
>
> mplsLdpUpLabelTable OBJECT-TYPE
> SYNTAX SEQUENCE OF MplsLdpUpLabelEntry
> MAX-ACCESS not-accessible
> STATUS current
> DESCRIPTION
> "A table mapping LDP sessions and FECs to the upstream
> labels distributed for those sessions and FECs, and to
> the corresponding LIB entries in the LSR MIB."
> ::= { mplsLdpSessionObjects 6 }
>
> mplsLdpUpLabelEntry OBJECT-TYPE
> SYNTAX MplsLdpUpLabelEntry
> MAX-ACCESS not-accessible
> STATUS current
> DESCRIPTION
> "An entry in this table represents a label that has been
> distributed upstream for a particular session and FEC
> combination. It is indexed by the session's index triple
> (mplsLdpEntityLdpId, mplsLdpEntityIndex,
> mplsLdpPeerLdpId), the FEC index (mplsFecIndex) and an
> LSP index (mplsLdpLspIndex) that distinguishes between
> non-merging LSPs for the same FEC.
>
> The information contained in a row is read-only."
> INDEX { mplsLdpEntityLdpId,
> mplsLdpEntityIndex,
> mplsLdpPeerLdpId,
> mplsFecIndex,
> mplsLdpLspIndex
> }
> ::= { mplsLdpUpLabelTable 1 }
>
> MplsLdpUpLabelEntry ::= SEQUENCE {
> mplsLdpUpLabel MplsLabel,
> mplsLdpUpLabelType MplsLdpLabelType,
> mplsLdpUpLspType MplsLspType,
> mplsLdpUpDownLabelPointer RowPointer,
> mplsLdpUpLsrInSegmentPointer RowPointer,
> mplsLdpUpLsrXCPointer RowPointer
> }
>
> mplsLdpLspIndex OBJECT-TYPE
> SYNTAX Unsigned32
> MAX-ACCESS not-accessible
> STATUS current
> DESCRIPTION
> "A tie-breaker index that distinguishes between multiple
> non-merging LSPs for the same FEC.
>
> Where an LSR merges all LSPs for the same FEC, this
> field is not needed and should always be zero.
>
> Where an LSR does not merge LSPs for the same FEC, it is
> possible for the LSR to distribute (or receive) multiple
> label mappings for the same FEC to (or from) the same
> session, and for some of these labels to be equal (in
> particular where implicit and explicit null labels are
> in use). In this case, the entries that describe the
> labels are distinguished from each other by using a
> different, non-zero value for this index field."
> ::= { mplsLdpUpLabelEntry 1 }
>
> mplsLdpUpLabel OBJECT-TYPE
> SYNTAX MplsLabel
> MAX-ACCESS not-accessible
> STATUS current
> DESCRIPTION
> "The upstream label value."
> ::= { mplsLdpUpLabelEntry 2 }
>
> mplsLdpUpLabelType OBJECT-TYPE
> SYNTAX MplsLdpLabelType
> MAX-ACCESS read-only
> STATUS current
> DESCRIPTION
> "The Layer 2 upstream label type."
> ::= { mplsLdpUpLabelEntry 3 }
>
> mplsLdpUpLspType OBJECT-TYPE
> SYNTAX MplsLspType
> MAX-ACCESS read-only
> STATUS current
> DESCRIPTION
> "The type of LSP connection for which this label is in
> use. The possible values are:
>
> unknown(1) -- if the LSP is not known
> to be one of the following.
>
> terminatingLsp(2) -- if the LSP terminates
> on the LSR, then this
> is an ingressing LSP
> which ends on the LSR,
>
> originatingLsp(3) -- if the LSP originates
> from the LSR, then this
> is an egressing LSP which is
> the head-end of the LSP,
>
> crossConnectingLsp(4) -- if the LSP ingresses
> and egresses on the LSR,
> then it is cross-connecting
> on that LSR."
> ::= { mplsLdpUpLabelEntry 4 }
>
> mplsLdpUpDownLabelPointer OBJECT-TYPE
> SYNTAX RowPointer
> MAX-ACCESS read-only
> STATUS current
> DESCRIPTION
> "If this label is cross-connected to a received LDP
> downstream label mapping, this RowPointer should point to
> the entry in the mplsLdpDownLabelTable that describes the
> downstream label.
>
> Otherwise this field's value is zeroDotzero."
> ::= { mplsLdpUpLabelEntry 5 }
>
> mplsLdpUpLsrInSegmentPointer OBJECT-TYPE
> SYNTAX RowPointer
> MAX-ACCESS read-only
> STATUS current
> DESCRIPTION
> "If this label has a corresponding entry in the LSR MIB
> mplsInSegmentTable, this RowPointer should point to that
> entry.
>
> Otherwise this field's value is zeroDotzero."
> ::= { mplsLdpUpLabelEntry 6 }
>
> mplsLdpUpLsrXCPointer OBJECT-TYPE
> SYNTAX RowPointer
> MAX-ACCESS read-only
> STATUS current
> DESCRIPTION
> "If this label is cross-connected to a received LDP
> downstream label mapping and there is an entry
> describing this cross-connect in the LSR MIB mplsXCTable,
> this RowPointer should point to that entry.
>
> Otherwise this field's value is zeroDotzero."
> ::= { mplsLdpUpLabelEntry 7 }
>
>
> --
> -- The MPLS LDP Downstream Label Table
> --
>
> mplsLdpDownLabelTable OBJECT-TYPE
> SYNTAX SEQUENCE OF MplsLdpDownLabelEntry
> MAX-ACCESS not-accessible
> STATUS current
> DESCRIPTION
> "A table mapping LDP sessions and FECs to the downstream
> labels received for those sessions and FECs, and to the
> corresponding LIB entries in the LSR MIB."
> ::= { mplsLdpSessionObjects 6 }
>
> mplsLdpDownLabelEntry OBJECT-TYPE
> SYNTAX MplsLdpDownLabelEntry
> MAX-ACCESS not-accessible
> STATUS current
> DESCRIPTION
> "An entry in this table represents a label that has been
> received from a downstream peer for a particular session
> and FEC combination. It is indexed by the session's
> index triple (mplsLdpEntityLdpId, mplsLdpEntityIndex,
> mplsLdpPeerLdpId), the FEC index (mplsFecIndex) and an
> LSP index (mplsLdpLspIndex) that distinguishes between
> non-merging LSPs for the same FEC.
>
> The information contained in a row is read-only."
> INDEX { mplsLdpEntityLdpId,
> mplsLdpEntityIndex,
> mplsLdpPeerLdpId,
> mplsFecIndex,
> mplsLdpLspIndex
> }
> ::= { mplsLdpDownLabelTable 1 }
>
> MplsLdpDownLabelEntry ::= SEQUENCE {
> mplsLdpDownLabel MplsLabel,
> mplsLdpDownLabelType MplsLdpLabelType,
> mplsLdpDownLspType MplsLspType,
> mplsLdpDownLiberal TruthValue,
> mplsLdpDownLsrOutSegmentPointer RowPointer,
> mplsLdpDownLsrXCPointer RowPointer
> }
>
> mplsLdpDownLabel OBJECT-TYPE
> SYNTAX MplsLabel
> MAX-ACCESS not-accessible
> STATUS current
> DESCRIPTION
> "The downstream label value."
> ::= { mplsLdpDownLabelEntry 1 }
>
> mplsLdpDownLabelType OBJECT-TYPE
> SYNTAX MplsLdpLabelType
> MAX-ACCESS read-only
> STATUS current
> DESCRIPTION
> "The Layer 2 downstream label type."
> ::= { mplsLdpDownLabelEntry 2 }
>
> mplsLdpDownLspType OBJECT-TYPE
> SYNTAX MplsLspType
> MAX-ACCESS read-only
> STATUS current
> DESCRIPTION
> "The type of LSP connection for which this label is in
> use. The possible values are:
>
> unknown(1) -- if the LSP is not known
> to be one of the following.
>
> terminatingLsp(2) -- if the LSP terminates
> on the LSR, then this
> is an ingressing LSP
> which ends on the LSR,
>
> originatingLsp(3) -- if the LSP originates
> from the LSR, then this
> is an egressing LSP which is
> the head-end of the LSP,
>
> crossConnectingLsp(4) -- if the LSP ingresses
> and egresses on the LSR,
> then it is cross-connecting
> on that LSR."
> ::= { mplsLdpDownLabelEntry 3 }
>
> mplsLdpDownLiberal OBJECT-TYPE
> SYNTAX TruthValue
> MAX-ACCESS read-only
> STATUS current
> DESCRIPTION
> "Whether this is a liberally retained downstream label."
> DEFVAL { false }
> ::= { mplsLdpDownLabelEntry 4 }
>
> mplsLdpDownLsrOutSegmentPointer OBJECT-TYPE
> SYNTAX RowPointer
> MAX-ACCESS read-only
> STATUS current
> DESCRIPTION
> "If this label has a corresponding entry in the LSR MIB
> mplsOutSegmentTable, this RowPointer should point to that
> entry.
>
> Otherwise this field's value is zeroDotzero."
> ::= { mplsLdpDownLabelEntry 5 }
>
> mplsLdpDownLsrXCPointer OBJECT-TYPE
> SYNTAX RowPointer
> MAX-ACCESS read-only
> STATUS current
> DESCRIPTION
> "If this label is cross-connected to a distributed LDP
> upstream label mapping and there is an entry describing
> this cross-connect in the LSR MIB mplsXCTable, this
> RowPointer should point to that entry.
>
> Otherwise this field's value is zeroDotzero."
> ::= { mplsLdpDownLabelEntry 6 }"
http://www.elsevier-international.com/catalogue/title.cfm?ISBN=155860751X
|
|