RFC 3813 - Multiprotocol Label Switching (MPLS) Label Switch(2)

时间:2006-10-31 来源: 作者: 点击:
Callon,MultiprotocolLabelSwitchingArchitecture, RFC3031,January2001. Copyright(C)TheInternetSociety(2004).The initialversionofthisMIBmodulewaspublished inRFC3812.ForfulllegalnoticesseetheRFC itselfor
  
        Callon, Multiprotocol Label Switching Architecture,
        RFC 3031, January 2001.

        Copyright (C) The Internet Society (2004). The
        initial version of this MIB module was published
        in RFC 3812. For full legal notices see the RFC
        itself or see:
        http://www.ietf.org/copyrights/ianamib.html"

   -- Revision history.
   REVISION
       "200406030000Z"  -- June 3, 2004
   DESCRIPTION
       "Initial revision, published as part of RFC 3813."

   ::= { mplsStdMIB 2 }

-- TEXTUAL-CONVENTIONs

MplsIndexType ::= TEXTUAL-CONVENTION
   STATUS              current
   DESCRIPTION
       "This is an octet string that can be used as a table
        index in cases where a large addressable space is
        required such as on an LSR where many applications
        may be provisioning labels.

        Note that the string containing the single octet with
        the value 0x00 is a reserved value used to represent
        special cases. When this TEXTUAL-CONVENTION is used
        as the SYNTAX of an object, the DESCRIPTION clause
        MUST specify if this special value is valid and if so
        what the special meaning is.

        In systems that provide write access to the MPLS-LSR-STD
        MIB, mplsIndexType SHOULD be used as a simple multi-digit
        integer encoded as an octet string.
        No further overloading of the meaning of an index SHOULD
        be made.

        In systems that do not offer write access to the MPLS-LSR-STD
        MIB, the mplsIndexType may contain implicit formatting that is
        specific to the implementation to convey additional
        information such as interface index, physical card or
        device, or application id. The interpretation of this
        additional formatting is implementation dependent and
        not covered in this document. Such formatting MUST

        NOT impact the basic functionality of read-only access
        to the MPLS-LSR-STD MIB by management applications that are
        not aware of the formatting rules."
   SYNTAX              OCTET STRING (SIZE(1..24))

MplsIndexNextType ::= TEXTUAL-CONVENTION
   STATUS              current
   DESCRIPTION
       "When a MIB module is used for configuration, an object with
        this SYNTAX always contains a legal value (a non-zero-length
        string) for an index that is not currently used in the relevant
        table. The Command Generator (Network Management Application)
        reads this variable and uses the (non-zero-length string)
        value read when creating a new row with an SNMP SET.

        When the SET is performed, the Command Responder (agent) must
        determine whether the value is indeed still unused; Two Network
        Management Applications may attempt to create a row
        (configuration entry) simultaneously and use the same value. If
        it is currently unused, the SET succeeds and the Command
        Responder (agent) changes the value of this object, according
        to an implementation-specific algorithm.  If the value is in
        use, however, the SET fails.  The Network Management
        Application must then re-read this variable to obtain a new
        usable value.

        Note that the string containing the single octet with
        the value 0x00 is a reserved value used to represent
        the special case where no additional indexes can be
        provisioned, or in systems that do not offer
        write access, objects defined using this TEXTUAL-CONVENTION
        MUST return the string containing the single
        octet with the value 0x00."
   SYNTAX              OCTET STRING (SIZE(1..24))

-- Top level components of this MIB module.

-- Notifications
mplsLsrNotifications OBJECT IDENTIFIER ::= { mplsLsrStdMIB 0 }

-- Tables, Scalars
mplsLsrObjects       OBJECT IDENTIFIER ::= { mplsLsrStdMIB 1 }

-- Conformance
mplsLsrConformance   OBJECT IDENTIFIER ::= { mplsLsrStdMIB 2 }

-- MPLS Interface Table.
mplsInterfaceTable  OBJECT-TYPE

   SYNTAX        SEQUENCE OF MplsInterfaceEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "This table specifies per-interface MPLS capability
        and associated information."
   ::= { mplsLsrObjects 1 }

mplsInterfaceEntry OBJECT-TYPE
   SYNTAX        MplsInterfaceEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "A conceptual row in this table is created
        automatically by an LSR for every interface capable
        of supporting MPLS and which is configured to do so.
        A conceptual row in this table will exist if and only if
        a corresponding entry in ifTable exists with ifType =
        mpls(166). If this associated entry in ifTable is
        operationally disabled (thus removing MPLS
        capabilities on that interface), the corresponding
        entry in this table MUST be deleted shortly thereafter.
        An conceptual row with index 0 is created if the LSR
        supports per-platform labels. This conceptual row
        represents the per-platform label space and contains
        parameters that apply to all interfaces that participate
        in the per-platform label space. Other conceptual rows
        in this table represent MPLS interfaces that may
        participate in either the per-platform or per-
        interface label spaces, or both.  Implementations
        that either only support per-platform labels,
        or have only them configured, may choose to return
        just the mplsInterfaceEntry of 0 and not return
        the other rows. This will greatly reduce the number
        of objects returned. Further information about label
        space participation of an interface is provided in
        the DESCRIPTION clause of
        mplsInterfaceLabelParticipationType."
   INDEX { mplsInterfaceIndex }
   ::= { mplsInterfaceTable 1 }

MplsInterfaceEntry ::= SEQUENCE {
  mplsInterfaceIndex                  InterfaceIndexOrZero,
  mplsInterfaceLabelMinIn             MplsLabel,
  mplsInterfaceLabelMaxIn             MplsLabel,
  mplsInterfaceLabelMinOut            MplsLabel,
  mplsInterfaceLabelMaxOut            MplsLabel,
  mplsInterfaceTotalBandwidth         MplsBitRate,

  mplsInterfaceAvailableBandwidth     MplsBitRate,
  mplsInterfaceLabelParticipationType BITS
}

mplsInterfaceIndex OBJECT-TYPE
   SYNTAX        InterfaceIndexOrZero
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "This is a unique index for an entry in the
        MplsInterfaceTable.  A non-zero index for an
        entry indicates the ifIndex for the corresponding
        interface entry of the MPLS-layer in the ifTable.
        The entry with index 0 represents the per-platform
        label space and contains parameters that apply to all
        interfaces that participate in the per-platform label
        space. Other entries defined in this table represent
        additional MPLS interfaces that may participate in either
        the per-platform or per-interface label spaces, or both."
   REFERENCE
       "RFC 2863 - The Interfaces Group MIB, McCloghrie, K.,
        and F. Kastenholtz, June 2000"
   ::= { mplsInterfaceEntry 1 }

mplsInterfaceLabelMinIn OBJECT-TYPE
   SYNTAX        MplsLabel
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This is the minimum value of an MPLS label that this
        LSR is willing to receive on this interface."
   ::= { mplsInterfaceEntry 2 }

mplsInterfaceLabelMaxIn OBJECT-TYPE
   SYNTAX        MplsLabel
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This is the maximum value of an MPLS label that this
        LSR is willing to receive on this interface."
   ::= { mplsInterfaceEntry 3 }

mplsInterfaceLabelMinOut OBJECT-TYPE
   SYNTAX        MplsLabel
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This is the minimum value of an MPLS label that this

        LSR is willing to send on this interface."
   ::= { mplsInterfaceEntry 4 }

mplsInterfaceLabelMaxOut OBJECT-TYPE
   SYNTAX        MplsLabel
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This is the maximum value of an MPLS label that this
        LSR is willing to send on this interface."
   ::= { mplsInterfaceEntry 5 }

mplsInterfaceTotalBandwidth OBJECT-TYPE
   SYNTAX        MplsBitRate
   UNITS         "kilobits per second"
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This value indicates the total amount of usable
        bandwidth on this interface and is specified in
        kilobits per second (Kbps).  This variable is not
        applicable when applied to the interface with index
        0. When this value cannot be measured, this value
        should contain the nominal bandwidth."
::= { mplsInterfaceEntry 6 }

mplsInterfaceAvailableBandwidth OBJECT-TYPE
   SYNTAX        MplsBitRate
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This value indicates the total amount of available
        bandwidth available on this interface and is
        specified in kilobits per second (Kbps).  This value
        is calculated as the difference between the amount
        of bandwidth currently in use and that specified in
        mplsInterfaceTotalBandwidth.  This variable is not
        applicable when applied to the interface with index
        0. When this value cannot be measured, this value
        should contain the nominal bandwidth."
::= { mplsInterfaceEntry 7 }

mplsInterfaceLabelParticipationType OBJECT-TYPE
   SYNTAX  BITS {
                  perPlatform (0),
                  perInterface (1)
              }
   MAX-ACCESS    read-only

   STATUS        current
   DESCRIPTION
       "If the value of the mplsInterfaceIndex for this
        entry is zero, then this entry corresponds to the
        per-platform label space for all interfaces configured
        to use that label space. In this case the perPlatform(0)
        bit MUST be set; the perInterface(1) bit is meaningless
        and MUST be ignored.

        The remainder of this description applies to entries
        with a non-zero value of mplsInterfaceIndex.

        If the perInterface(1) bit is set then the value of
        mplsInterfaceLabelMinIn, mplsInterfaceLabelMaxIn,
        mplsInterfaceLabelMinOut, and
        mplsInterfaceLabelMaxOut for this entry reflect the
        label ranges for this interface.

        If only the perPlatform(0) bit is set, then the value of
        mplsInterfaceLabelMinIn, mplsInterfaceLabelMaxIn,
        mplsInterfaceLabelMinOut, and
        mplsInterfaceLabelMaxOut for this entry MUST be
        identical to the instance of these objects with
        index 0.  These objects may only vary from the entry
        with index 0 if both the perPlatform(0) and perInterface(1)
        bits are set.

        In all cases, at a minimum one of the perPlatform(0) or
        perInterface(1) bits MUST be set to indicate that
        at least one label space is in use by this interface. In
        all cases, agents MUST ensure that label ranges are
        specified consistently and MUST return an
        inconsistentValue error when they do not."
   REFERENCE
       "Rosen, E., Viswanathan, A., and R. Callon,
        Multiprotocol Label Switching Architecture, RFC
        3031, January 2001."
::= { mplsInterfaceEntry 8 }

-- End of mplsInterfaceTable

-- MPLS Interface Performance Table.

mplsInterfacePerfTable  OBJECT-TYPE
   SYNTAX        SEQUENCE OF MplsInterfacePerfEntry
   MAX-ACCESS    not-accessible
   STATUS        current

   DESCRIPTION
       "This table provides MPLS performance information on
        a per-interface basis."
   ::= { mplsLsrObjects 2 }

mplsInterfacePerfEntry OBJECT-TYPE
   SYNTAX        MplsInterfacePerfEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "An entry in this table is created by the LSR for
        every interface capable of supporting MPLS.  Its is
        an extension to the mplsInterfaceEntry table.
        Note that the discontinuity behavior of entries in
        this table MUST be based on the corresponding
        ifEntry’s ifDiscontinuityTime."
   AUGMENTS      { mplsInterfaceEntry }
      ::= { mplsInterfacePerfTable 1 }

MplsInterfacePerfEntry ::= SEQUENCE {
      -- incoming direction
      mplsInterfacePerfInLabelsInUse         Gauge32,
      mplsInterfacePerfInLabelLookupFailures Counter32,

      -- outgoing direction
      mplsInterfacePerfOutLabelsInUse      Gauge32,
      mplsInterfacePerfOutFragmentedPkts   Counter32
   }

mplsInterfacePerfInLabelsInUse OBJECT-TYPE
   SYNTAX        Gauge32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This object counts the number of labels that are in
        use at this point in time on this interface in the
        incoming direction. If the interface participates in
        only the per-platform label space, then the value of
        the instance of this object MUST be identical to
        the value of the instance with index 0. If the
        interface participates in the per-interface label
        space, then the instance of this object MUST
        represent the number of per-interface labels that
        are in use on this interface."
   ::= { mplsInterfacePerfEntry 1 }

mplsInterfacePerfInLabelLookupFailures  OBJECT-TYPE
   SYNTAX        Counter32

   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This object counts the number of labeled packets
        that have been received on this interface and which
        were discarded because there was no matching cross-
        connect entry. This object MUST count on a per-
        interface basis regardless of which label space the
        interface participates in."
   ::= { mplsInterfacePerfEntry 2 }

mplsInterfacePerfOutLabelsInUse OBJECT-TYPE
   SYNTAX        Gauge32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This object counts the number of top-most labels in
        the outgoing label stacks that are in use at this
        point in time on this interface. This object MUST
        count on a per-interface basis regardless of which
        label space the interface participates in."
   ::= { mplsInterfacePerfEntry 3 }

mplsInterfacePerfOutFragmentedPkts OBJECT-TYPE
   SYNTAX        Counter32
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This object counts the number of outgoing MPLS
        packets that required fragmentation before
        transmission on this interface. This object MUST
        count on a per-interface basis regardless of which
        label space the interface participates in."
::= { mplsInterfacePerfEntry 4 }

-- mplsInterfacePerf Table end.

mplsInSegmentIndexNext OBJECT-TYPE
   SYNTAX        MplsIndexNextType
   MAX-ACCESS    read-only
   STATUS        current
   DESCRIPTION
       "This object contains the next available value to
        be used for mplsInSegmentIndex when creating entries
        in the mplsInSegmentTable. The special value of a
        string containing the single octet 0x00 indicates
        that no new entries can be created in this table.
        Agents not allowing managers to create entries

        in this table MUST set this object to this special
        value."
      ::= { mplsLsrObjects 3 }

-- in-segment table.
mplsInSegmentTable  OBJECT-TYPE
   SYNTAX        SEQUENCE OF MplsInSegmentEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "This table contains a description of the incoming MPLS
        segments (labels) to an LSR and their associated parameters.
        The index for this table is mplsInSegmentIndex.
        The index structure of this table is specifically designed
        to handle many different MPLS implementations that manage
        their labels both in a distributed and centralized manner.
        The table is also designed to handle existing MPLS labels
        as defined in RFC3031 as well as longer ones that may
        be necessary in the future.

        In cases where the label cannot fit into the
        mplsInSegmentLabel object, the mplsInSegmentLabelPtr
        will indicate this by being set to the first accessible
        column in the appropriate extension table’s row.
        In this case an additional table MUST
        be provided and MUST be indexed by at least the indexes
        used by this table. In all other cases when the label is
        represented within the mplsInSegmentLabel object, the
        mplsInSegmentLabelPtr MUST be set to 0.0. Due to the
        fact that MPLS labels may not exceed 24 bits, the
        mplsInSegmentLabelPtr object is only a provision for
        future-proofing the MIB module. Thus, the definition
        of any extension tables is beyond the scope of this
        MIB module."
      ::= { mplsLsrObjects 4 }

mplsInSegmentEntry  OBJECT-TYPE
   SYNTAX        MplsInSegmentEntry
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "An entry in this table represents one incoming
        segment as is represented in an LSR’s LFIB.
        An entry can be created by a network
        administrator or an SNMP agent, or an MPLS signaling
        protocol.  The creator of the entry is denoted by
        mplsInSegmentOwner.

        The value of mplsInSegmentRowStatus cannot be active(1)
        unless the ifTable entry corresponding to
        mplsInSegmentInterface exists.  An entry in this table
        must match any incoming packets, and indicates an
        instance of mplsXCEntry based on which forwarding
        and/or switching actions are taken."
   INDEX { mplsInSegmentIndex }
   ::= { mplsInSegmentTable 1 }

MplsInSegmentEntry ::= SEQUENCE {
  mplsInSegmentIndex                MplsIndexType,
  mplsInSegmentInterface            InterfaceIndexOrZero,
  mplsInSegmentLabel                MplsLabel,
  mplsInSegmentLabelPtr             RowPointer,
  mplsInSegmentNPop                 Integer32,
  mplsInSegmentAddrFamily           AddressFamilyNumbers,
  mplsInSegmentXCIndex              MplsIndexType,
  mplsInSegmentOwner                MplsOwner ,
  mplsInSegmentTrafficParamPtr      RowPointer,
  mplsInSegmentRowStatus            RowStatus,
  mplsInSegmentStorageType          StorageType
}

mplsInSegmentIndex OBJECT-TYPE
   SYNTAX        MplsIndexType
   MAX-ACCESS    not-accessible
   STATUS        current
   DESCRIPTION
       "The index for this in-segment. The
        string containing the single octet 0x00
        MUST not be used as an index."
   ::= { mplsInSegmentEntry 1 }

mplsInSegmentInterface OBJECT-TYPE
   SYNTAX        InterfaceIndexOrZero
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "This object represents the
        interface index for the incoming MPLS interface.  A
        value of zero represents all interfaces participating in
        the per-platform label space.  This may only be used
        in cases where the incoming interface and label
        are associated with the same mplsXCEntry. Specifically,
        given a label and any incoming interface pair from the
        per-platform label space, the outgoing label/interface
        mapping remains the same. If this is not the case,
        then individual entries MUST exist that

        can then be mapped to unique mplsXCEntries."
   ::= { mplsInSegmentEntry 2 }

mplsInSegmentLabel OBJECT-TYPE
   SYNTAX        MplsLabel
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
     "If the corresponding instance of mplsInSegmentLabelPtr is
      zeroDotZero then this object MUST contain the incoming label
      associated with this in-segment. If not this object SHOULD
      be zero and MUST be ignored."
   ::= { mplsInSegmentEntry 3 }

mplsInSegmentLabelPtr OBJECT-TYPE
   SYNTAX        RowPointer
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "If the label for this segment cannot be represented
        fully within the mplsInSegmentLabel object,
        this object MUST point to the first accessible
        column of a conceptual row in an external table containing
        the label.  In this case, the mplsInSegmentTopLabel
        object SHOULD be set to 0 and ignored. This object MUST
        be set to zeroDotZero otherwise."
   DEFVAL { zeroDotZero }
   ::= { mplsInSegmentEntry 4 }

mplsInSegmentNPop OBJECT-TYPE
   SYNTAX        Integer32 (1..2147483647)
   MAX-ACCESS    read-create
   STATUS        current
   DESCRIPTION
       "The number of labels to pop from the incoming
        packet.  Normally only the top label is popped from
        the packet and used for all switching decisions for
        that packet.  This is indicated by setting this
        object to the default value of 1. If an LSR supports
        popping of more than one label, this object MUST
        be set to that number. This object cannot be modified
        if mplsInSegmentRowStatus is active(1)."
   DEFVAL        { 1 }
   ::= { mplsInSegmentEntry 5 }

mplsInSegmentAddrFamily OBJECT-TYPE
   SYNTAX        AddressFamilyNumbers
   MAX-ACCESS    read-create

   STATUS        current
   DESCRIPTION
       "The IANA address family [IANAFamily] of packets
        received on this segment, which is used at an egress
        LSR to deliver them to the appropriate layer 3 entity.
        A value of other(0) indicates that the family type is
        either unknown or undefined; this SHOULD NOT be used
        at an egress LSR. This object cannot be
        modified if mplsInSegmentRowStatus is active(1)."
------分隔线----------------------------
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
推荐内容