The MPLS WG Archive

Cell Relay Retreat>MPLS WG Archive>month:2003-Apr> msg00117



[Date Prev][Date Next][Thread Prev][Thread Next]  
  [Date Index][Thread Index][Author Index][Subject Index]

LDP MIB, version 9 outstanding issue

  • From: Joan Cucchiara x302 <jcucchiara@Artel.com>
  • Date: Mon, 14 Apr 2003 09:09:22 -0400
  • Cc: nj@dataconnection.com, hans@ipunplugged.com, james_luciani@mindspring.com, riza.cetin@alcatel.be, Joan Cucchiara x302 <jcucchiara@Artel.com>, jcucchiara@mindspring.com



> -----Original Message-----
> From: Thomas D. Nadeau [mailto:tnadeau@cisco.com]
> Sent: Sunday, April 13, 2003 11:47 PM
> To: jcucchiara@mindspring.com; mpls@UU.NET
> Cc: nj@dataconnection.com; hans@ipunplugged.com;
> james_luciani@mindspring.com; riza.cetin@alcatel.be;
> jcucchiara@artel.com; jcucchiara@mindspring.com
> Subject: Re: 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.

Agreed.

  -Joan

> 
>          --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