--- 1/draft-ietf-mpls-lsr-mib-08.txt 2006-02-05 00:41:33.000000000 +0100 +++ 2/draft-ietf-mpls-lsr-mib-09.txt 2006-02-05 00:41:33.000000000 +0100 @@ -1,25 +1,26 @@ + Network Working Group Cheenu Srinivasan Internet Draft Parama Networks, Inc. -Expires: July 2002 +Expires: April 2003 Arun Viswanathan Force10 Networks, Inc. Thomas D. Nadeau Cisco Systems, Inc. - January 2002 + October 2002 - Multiprotocol Label Switching (MPLS) Label Switch Router (LSR) + Multiprotocol Label Switching (MPLS) Label Switching Router (LSR) Management Information Base - draft-ietf-mpls-lsr-mib-08.txt + draft-ietf-mpls-lsr-mib-09.txt Status of this Memo This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC 2026. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. @@ -34,72 +35,74 @@ http://www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. Abstract This memo defines a portion of the Management Information Base (MIB) for use with network management protocols in the Internet community. In particular, it describes managed objects for - modeling a Multiprotocol Label Switching (MPLS) Label Switch + modeling a Multiprotocol Label Switching (MPLS) Label Switching Router (LSR). Table of Contents - 1. Introduction .............................................. 2 - 2. Terminology ............................................... 2 - 3. The SNMP Management Framework ............................. 3 - 4. Feature Checklist ......................................... 4 - 5. Outline ................................................... 5 - 5.1. Summary of LSR MIB ..................................... 5 - 6. Brief Description of MIB Objects .......................... 6 - 6.1. mplsInterfaceConfTable ................................. 6 - 6.2. mplsInterfacePerfTable ................................. 6 - 6.3. mplsInSegmentTable ..................................... 6 - 6.4. mplsInSegmentPerfTable ................................. 7 - 6.5. mplsOutSegmentTable .................................... 7 - 6.6. mplsOutSegmentPerfTable ................................ 7 - 6.7. mplsXCTable ............................................ 7 - 6.8. mplsLabelStackTable .................................... 8 - 6.9. mplsTrafficParamTable .................................. 8 - 7. Example of LSP Setup ...................................... 8 - 8. Application of the Interface Group to MPLS ................ 10 - 8.1. Support of the MPLS Layer by ifTable ................... 10 - 9. The Use of RowPointer ..................................... 12 - 10. MPLS Label Switch Router MIB Definitions ................. 12 - 11. Security Considerations .................................. 48 - 12. Acknowledgments .......................................... 49 - 13. References ............................................... 49 - 14. Authors' Addresses ....................................... 51 - 15. Full Copyright Statement ................................. 52 +1. Introduction 2 +2. Terminology 3 +3. The SNMP Management Framework 3 + +4. Feature Checklist 4 +5. Outline 5 + 5.1. Summary of LSR MIB 5 +6. Brief Description of MIB Objects 5 + 6.1. mplsInterfaceConfTable 6 + 6.2. mplsInterfacePerfTable 6 + 6.3. mplsInSegmentTable 6 + 6.4. mplsInSegmentPerfTable 6 + 6.5. mplsOutSegmentTable 6 + 6.6. mplsOutSegmentPerfTable 6 + 6.7. mplsXCTable 6 + 6.8. mplsLabelStackTable 7 + 6.9. mplsTrafficParamTable 7 +7. Use of 32-bit and 64-bit Counters 7 +8. Example of LSP Setup 7 +9. Application of the Interface Group to MPLS 9 + 9.1. Support of the MPLS Layer by ifTable 9 +10. The Use of RowPointer 10 +11. MPLS Label Switching Router MIB Definitions 11 +12. Security Considerations 41 +13. Acknowledgments 42 +14. References 42 +15. Authors' Addresses 44 +16. Full Copyright Statement 44 1. Introduction This memo defines a portion of the Management Information Base (MIB) for use with network management protocols in the Internet community. In particular, it describes managed objects for modeling a Multi-Protocol Label Switching (MPLS) [RFC3031] Label - Switch Router (LSR). + Switching Router (LSR). The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119, reference [RFC2119]. 2. Terminology This document uses terminology from the document describing the MPLS architecture [RFC3031]. A label switched path (LSP) is modeled as a connection consisting of one or more incoming segments (in-segments) and/or one or more outgoing segments (out- - segments) at a label switch router (LSR). The association or + segments) at a Label Switching Router (LSR). The association or interconnection of the in-segments and out-segments is accomplished by using a cross-connect. We use the terminology "connection" and "LSP" interchangeably where the meaning is clear from the context. 3. The SNMP Management Framework The SNMP Management Framework presently consists of five major components: @@ -137,37 +140,45 @@ Managed objects are accessed via a virtual information store, termed the Management Information Base or MIB. Objects in the MIB are defined using the mechanisms defined in the SMI. This memo specifies a MIB module that is compliant to the SMIv2. A MIB conforming to the SMIv1 can be produced through the appropriate translations. The resulting translated MIB must be semantically equivalent, except where objects or events are omitted because no translation is possible (use of Counter64). + Some machine readable information in SMIv2 will be converted into textual descriptions in SMIv1 during the translation process. However, this loss of machine readable information is not considered to change the semantics of the MIB. 4. Feature Checklist - The MPLS label switch router MIB (LSR-MIB) is designed to satisfy - the following requirements and constraints: + The MPLS Label Switching Router MIB (LSR MIB) is designed to + satisfy the following requirements and constraints: - - The MIB supports both manually configured LSPs as well as those - configured via any MPLS signaling protocol. + - The MIB supports LSP establishment via an MPLS signaling + protocol wherein the LSP parameters are specified using this + MIB at the head end of the LSP and end-to-end LSP + establishment is accomplished via signaling. The MIB also + supports manually configured LSPs, i.e. those for which label + associations at each hop of the LSP are provisioned by the + administrator via this MIB. - The MIB supports the enabling and disabling of MPLS capability on MPLS capable interfaces of an LSR. - - The MIB allows resource sharing between two or more LSPs. + - The MIB allows resource sharing between two or more LSPs, i.e. + it allows specification of sharing of bandwidth and other LSR + resources between different LSPs. - Both per-platform and per-interface label spaces are supported. - MPLS packets can be forwarded solely based on an incoming top label [RFC3031, RFC3032]. - Support is provided for next-hop resolution when the outgoing interface is a shared media interface. In the point-to- multipoint case, each outgoing segment can reside on a different shared media interface. @@ -262,119 +273,124 @@ 6.1. mplsInterfaceConfTable This table represents the interfaces that are MPLS capable. An LSR creates an entry in this table for every MPLS capable interface on that LSR. 6.2. mplsInterfacePerfTable This table contains objects to measure the MPLS performance of MPLS capable interfaces and is an AUGMENT to - mplsInterfaceConfTable. High capacity counters are provided for - objects that are likely to wrap around quickly on high-speed - interfaces. + mplsInterfaceConfTable. 6.3. mplsInSegmentTable This table contains a description of the incoming MPLS segments to an LSR and their associated parameters. - The administrative and operational status objects for this table - are used to control packet transmission on this segment. If - either the administrative and operational status objects for this - table are set to 'down', this implies that packets will not be - forwarded. Likewise, if the values are set to 'up' this implies - that packets are forwarded. These values are particularly useful - in cases where multi-point connections utilize a single cross- - connect and the administrator wishes to disable some, but not all - of the streams. In these cases, the administrator may set the - administrative status object to 'down' on some of the in-segments. - 6.4. mplsInSegmentPerfTable - The MPLS In-Segment Performance Table has objects to measure the - performance of an incoming segment configured on an LSR. It is an - AUGMENT to mplsInSegmentTable. High capacity counters are + The MPLS In-Segment Performance Table has objects to help measure + the performance of an incoming segment configured on an LSR. It + is an AUGMENT to mplsInSegmentTable. High capacity counters are provided for objects that are likely to wrap around quickly on high-speed interfaces. 6.5. mplsOutSegmentTable The Out-Segment Table contains a description of the outgoing MPLS segments at an LSR and their associated parameters. - The administrative and operational status objects for this table - are used to control packet transmission on this segment. If - either the administrative and operational status objects are set - to 'down', this implies that packets will not be forwarded. - Likewise, if the values are set to 'up' this implies that packets - are forwarded. These values are particularly useful in cases - where multicast connections utilize a single cross-connect and the - administrator wishes to disable some, but not all of the streams. - In these cases, the administrator may set the administrative - status object to 'down' on some of the out-segments. - 6.6. mplsOutSegmentPerfTable - The MPLS Out-Segment Table contains objects to measure the + The MPLS Out-Segment Table contains objects to help measure the performance of an outgoing segment configured on an LSR. It is an AUGMENT to mplsOutSegmentTable. High capacity counters are provided for objects that are likely to wrap around quickly on high-speed interfaces. 6.7. mplsXCTable The mplsXCTable specifies information for associating segments together in order to instruct the LSR to switch between the specified segments. It supports point-to-point, point-to-multi- point and multi-point-to-point connections. - The administrative and operational status objects for this table - imply control of packet forwarding to and from a XCEntry. When - the administrative and operational status objects are set to - 'down' for example, this implies that the specified XCEntry will - not forward packets. Likewise, when either is set to 'up' this - implies that packets will be forwarded. + The operational status object indicates the packet forwarding + state of a cross-connect entry. For example, when the operational + status objects is 'down' it indicates that the specified cross- + connect entry will not forward packets. Likewise, when it is set + to 'up' it indicates that packets will be forwarded. + + The administrative status object indicates the forwarding state + desired by the operator. 6.8. mplsLabelStackTable The mplsLabelStackTable specifies the label stack to be pushed onto a packet, beneath the top label. Entries to this table are referred to from mplsXCTable. 6.9. mplsTrafficParamTable The mplsTrafficParamTable contains objects for specifying the traffic parameters of in-segments and out-segments. Entries in this table are referred to from mplsInSegmentTable and mplsOutSegmentTable. -7. Example of LSP Setup +7. Use of 32-bit and 64-bit Counters + + 64-bit counters are provided in this MIB for high speed interfaces + where the use of 32-bit counters might be impractical. The + requirements on the use of 32-bit and 64-bit counters (copied + verbatim from [RFC2863]) are as follows. + + For interfaces that operate at 20,000,000 (20 million) bits per + second or less, 32-bit byte and packet counters MUST be supported. + For interfaces that operate faster than 20,000,000 bits/second, + and slower than 650,000,000 bits/second, 32-bit packet counters + MUST be supported and 64-bit octet counters MUST be supported. + For interfaces that operate at 650,000,000 bits/second or faster, + 64-bit packet counters AND 64-bit octet counters MUST be + supported. + +8. Example of LSP Setup In this section we provide a brief example of setting up an LSP - using the MIB objects described in section 10. While this example + using the MIB objects described in section 11. While this example is not meant to illustrate every nuance of the MIB, it is intended as an aid to understanding some of the key concepts. It is meant to be read after going through the MIB itself. Suppose that one would like to manually create a best-effort, unidirectional LSP. Assume that the LSP enters the LSR via MPLS interface A with ifIndex 12 and exits the LSR via MPLS interface B with ifIndex 13. Let us assume that we do not wish to have a label stack beneath the top label on the outgoing labeled packets. The following example illustrates which rows and corresponding - objects might be created to accomplish this. + objects might be created to accomplish this. Those objects + relevant to illustrating the relationships amongst different + tables are shown here. Other objects may be needed before + conceptual row activation can happen. + + The RowStatus values shown in this section are those to be used in + the set request, typically createAndGo(4) which is used to create + the conceptual row and have its status immediately set to active. + A subsequent retrieval operation on the conceptual will return a + different value, such as active(1). Please see [RFC2579] for a + detailed discussion on the use of RowStatus. First, the traffic parameter entries must be set-up for both segments. In mplsTrafficParamTable for the incoming direction: + { mplsTrafficParamIndex = 5 mplsTrafficParamMaxRate = 100000, mplsTrafficParamMeanRate = 100000, mplsTrafficParamMaxBurstSize = 2000, mplsTrafficParamRowStatus = createAndGo(4) } In mplsTrafficParamTable for the outgoing direction: { @@ -391,34 +407,37 @@ We must next create the appropriate in-segment and out-segment entries with suitable traffic parameters by pointing to the appropriate traffic parameter entries that we have just created. In mplsInSegmentTable: { mplsInSegmentIfIndex = 12, -- incoming interface mplsInSegmentLabel = 21, -- incoming label mplsInSegmentNPop = 1, - mplsInSegmentTrafficParamPtr = mplsTrafficParamIndex.5, + -- RowPointer MUST point to the first accesible column. + mplsInSegmentTrafficParamPtr = mplsTrafficParamMaxRate.5, mplsInSegmentRowStatus = createAndGo(4) } In mplsOutSegmentTable: { mplsOutSegmentIndex = 1, mplsOutSegmentIfIndex = 13, -- outgoing interface mplsOutSegmentPushTopLabel = true(1), mplsOutSegmentTopLabel = 22, -- outgoing label - mplsOutSegmentTrafficParamPtr = mplsTrafficParamIndex.6, + -- RowPointer MUST point to the first accesible column. + mplsOutSegmentTrafficParamPtr = mplsTrafficParamMaxRate.6, + -- Other mandatory parameters needed to activate the row go + here. mplsOutSegmentRowStatus = createAndGo(4) } - Next, a cross-connect entry is created thereby associating the newly created segments together. In mplsXCTable: { mplsXCIndex = 2, mplsXCLspId = 'c021041502'H, -- 192.33.4.21.2 mplsInSegmentIfIndex = 12, mplsInSegmentLabel = 21, mplsOutSegmentIndex = 1, @@ -418,57 +437,58 @@ In mplsXCTable: { mplsXCIndex = 2, mplsXCLspId = 'c021041502'H, -- 192.33.4.21.2 mplsInSegmentIfIndex = 12, mplsInSegmentLabel = 21, mplsOutSegmentIndex = 1, mplsXCIsPersistent = false (1), mplsLabelStackIndex = 0, -- only a single -- outgoing label + -- Other mandatory parameters for activating the row go here. mplsXCRowStatus = createAndGo(4) } Note that the mplsInSegmentXCIndex and mplsOutSegmentXCIndex objects will automatically be populated with the value 2 when these segments are referred to from the corresponding cross- connect entry. -8. Application of the Interface Group to MPLS +9. Application of the Interface Group to MPLS The Interfaces Group of MIB II defines generic managed objects for managing interfaces. This memo contains the media-specific extensions to the Interfaces Group for managing MPLS interfaces. This memo assumes the interpretation of the Interfaces Group to be in accordance with [RFC2863] which states that the interfaces table (ifTable) contains information on the managed resource's interfaces and that each sub-layer below the internetwork layer of a network interface is considered an interface. Thus, the MPLS interface is represented as an entry in the ifTable. The inter- relation of entries in the ifTable is defined by Interfaces Stack Group defined in [RFC2863]. When using MPLS interfaces, the interface stack table might appear as follows: +----------------------------------------+ - | MPLS-interface ifType = mpls(166) + + | MPLS interface; ifType = mpls(166) + +----------------------------------------+ - | Underlying Layer... + + | Underlying Layer + +----------------------------------------+ - In the above diagram, "Underlying Layer..." refers to the ifIndex - of any interface type, which has been defined for MPLS - interworking. Examples include ATM, Frame Relay, Ethernet, etc. + In the above diagram, "Underlying Layer" refers to the ifIndex of + any interface type for which MPLS interworking has been defined. + Examples include ATM, Frame Relay, Ethernet, etc. -8.1. Support of the MPLS Layer by ifTable +9.1. Support of the MPLS Layer by ifTable Some specific interpretations of ifTable for the MPLS layer follow. Object Use for the MPLS layer ifIndex Each MPLS interface is represented by an ifEntry. ifDescr Description of the MPLS interface. @@ -477,22 +497,22 @@ ifSpeed The total bandwidth in bits per second for use by the MPLS layer. ifPhysAddress Unused. ifAdminStatus This variable indicates the administrator's intent as to whether MPLS should be enabled, disabled, or running in some diagnostic testing mode on this interface. Also see [RFC2863]. - ifOperStatus This value reflects the actual or operational - status of MPLS on this interface. + ifOperStatus This value reflects the actual operational status + of MPLS on this interface. ifLastChange See [RFC2863]. ifInOctets The number of received octets over the interface, i.e., the number of received, octets received as labeled packets. ifOutOctets The number of transmitted octets over the interface, i.e., the number of octets transmitted as labeled packets. @@ -523,59 +543,60 @@ ifHCOutOctets The 64-bit version of ifOutOctets; supported if required by the compliance statements in [RFC2863]. ifAlias The non-volatile 'alias' name for the interface as specified by a network manager. ifCounterDiscontinuityTime See [RFC2863]. -9. The Use of RowPointer +10. The Use of RowPointer RowPointer is a textual convention used to identify a conceptual row in an SNMP Table by pointing to one of its objects. In this - MIB, it is used in mplsInSegmentTable and mplsOutSegmentTable - for the following purposes. First, it indicates a particular - traffic parameter table. An example of such a table is + MIB, it is used in mplsInSegmentTable and mplsOutSegmentTable for + the following purposes. First, it indicates a particular traffic + parameter table. An example of such a table is mplsTrafficParamTable. Second, it is used to indicate a specific instance of a traffic parameter entry that is associated with a given in-segment or out-segment entry. In the in-segment and out- - segment tables, the trafficParamPtr SHOULD point to the first - column of the appropriate conceptual row. + segment tables, mplsTrafficParamPtr MUST point to the first + column of the appropriate conceptual row []. -10. MPLS Label Switch Router MIB Definitions +11. MPLS Label Switching Router MIB Definitions MPLS-LSR-MIB DEFINITIONS ::= BEGIN IMPORTS MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, - Integer32, Counter32, Unsigned32, Counter64, Gauge32 + Integer32, Counter32, Unsigned32, Counter64, Gauge32, + zeroDotZero FROM SNMPv2-SMI MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP FROM SNMPv2-CONF TruthValue, RowStatus, StorageType, RowPointer, TimeStamp FROM SNMPv2-TC InterfaceIndex, InterfaceIndexOrZero FROM IF-MIB mplsMIB, MplsLSPID, MplsLabel, MplsBitRate, MplsBurstSize, - MplsInitialCreationSource + MplsOwner FROM MPLS-TC-MIB AddressFamilyNumbers FROM IANA-ADDRESS-FAMILY-NUMBERS-MIB - InetAddressIPv4, InetAddressIPv6, InetAddressType + InetAddress, InetAddressType FROM INET-ADDRESS-MIB ; mplsLsrMIB MODULE-IDENTITY - LAST-UPDATED "200201041200Z" -- 4 January 2002 12:00:00 GMT + LAST-UPDATED "200210051200Z" -- 5 October 2002 12:00:00 GMT ORGANIZATION "Multiprotocol Label Switching (MPLS) Working Group" CONTACT-INFO " Cheenu Srinivasan Postal: Parama Networks, Inc. 1030 Broad Street Shrewsbury, NJ 07702 Tel: +1-732-544-9120 x731 Email: cheenu@paramanet.com @@ -585,77 +606,83 @@ Milpitas, CA 95035 Tel: +1-408-571-3516 Email: arun@force10networks.com Thomas D. Nadeau Postal: Cisco Systems, Inc. 250 Apollo Drive Chelmsford, MA 01824 Tel: +1-978-244-3051 Email: tnadeau@cisco.com + + Comments about this document should be emailed + directly to the MPLS working group mailing list at + mpls@uu.net. " DESCRIPTION "This MIB contains managed object definitions for the Multiprotocol Label Switching (MPLS) Router as defined in: Rosen, E., Viswanathan, A., and R. Callon, Multiprotocol Label Switching Architecture, RFC 3031, January 2001." -- Revision history. REVISION - "200201041200Z" -- 4 January 2002 12:00:00 GMT + "200210051200Z" -- 5 October 2002 12:00:00 GMT DESCRIPTION "Initial revision, published as part of RFC XXXX." ::= { mplsMIB 2 } -- Top level components of this MIB. +-- Notifications +mplsLsrNotifications OBJECT IDENTIFIER ::= { mplsLsrMIB 0 } -- Tables, Scalars mplsLsrObjects OBJECT IDENTIFIER ::= { mplsLsrMIB 1 } --- Notifications -mplsLsrNotifications OBJECT IDENTIFIER ::= { mplsLsrMIB 2 } -mplsLsrNotifyPrefix OBJECT IDENTIFIER ::= { mplsLsrNotifications 0 } --- conformance -mplsLsrConformance OBJECT IDENTIFIER ::= { mplsLsrMIB 3 } +-- Conformance +mplsLsrConformance OBJECT IDENTIFIER ::= { mplsLsrMIB 2 } -- MPLS Interface Configuration Table. mplsInterfaceConfTable OBJECT-TYPE SYNTAX SEQUENCE OF MplsInterfaceConfEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table specifies per-interface MPLS capability and associated information." ::= { mplsLsrObjects 1 } mplsInterfaceConfEntry OBJECT-TYPE SYNTAX MplsInterfaceConfEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION - "An entry in this table is created by an LSR for - every interface capable of supporting MPLS. Each - entry in this table will exist only if a - corresponding entry in ifTable exists. If the - associated entry in ifTable is deleted, the - corresponding entry in this table must also be - deleted shortly thereafter. 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. - Additional information about label space - participation of an interface is provided in the - description clause of + "A conceptual row in this table is created + automatically by an LSR for every interface capable + of supporting MPLS and is enabled to do so. A + conceptual row in this table will exist iff a + corresponding entry in ifTable exists with ifType = + mpls(166). If this associated entry in ifTable is + operationally disabled (thus disabling MPLS 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. Further information + about label space participation of an interface is + provided in the DESCRIPTION clause of mplsInterfaceLabelParticipationType." INDEX { mplsInterfaceConfIndex } ::= { mplsInterfaceConfTable 1 } MplsInterfaceConfEntry ::= SEQUENCE { mplsInterfaceConfIndex InterfaceIndexOrZero, mplsInterfaceLabelMinIn MplsLabel, mplsInterfaceLabelMaxIn MplsLabel, mplsInterfaceLabelMinOut MplsLabel, mplsInterfaceLabelMaxOut MplsLabel, @@ -750,21 +777,23 @@ mplsInterfaceLabelParticipationType OBJECT-TYPE SYNTAX BITS { perPlatform (0), perInterface (1) } MAX-ACCESS read-only STATUS current DESCRIPTION "Either the perPlatform(0) or perInterface(1) bit - MUST be set. If the value of the + MUST be set. Note however that an interface could + participate in both label spaces in which case both + bits would be set. If the value of the mplsInterfaceConfIndex for this entry is zero, then only the perPlatform(0) bit MUST be set and the perInterface(1) bit is meaningless. 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, @@ -798,45 +827,45 @@ DESCRIPTION "An entry in this table is created by the LSR for every interface capable of supporting MPLS. Its is an extension to the mplsInterfaceConfEntry table." AUGMENTS { mplsInterfaceConfEntry } ::= { mplsInterfacePerfTable 1 } MplsInterfacePerfEntry ::= SEQUENCE { -- incoming direction mplsInterfaceInLabelsUsed Gauge32, - mplsInterfaceFailedLabelLookup Counter32, + mplsInterfaceLabelLookupFailures Counter32, -- outgoing direction mplsInterfaceOutLabelsUsed Gauge32, mplsInterfaceOutFragments Counter32 } mplsInterfaceInLabelsUsed 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 - the per-platform label space only, then this - instance of this object MUST be identical with the - instance with index 0. If the interface participates - in the per-interface label space, then this instance - of this object MUST represent the number of of per- - interface labels that are in use at this point in - time on this interface." + the per-platform label space only, then the value of + this instance of this object MUST be identical with + the value of the instance with index 0. If the + interface participates in the per-interface label + space, then this instance of this object MUST + represent the number of of per-interface labels that + are in use at this point in time on this interface." ::= { mplsInterfacePerfEntry 1 } -mplsInterfaceFailedLabelLookup OBJECT-TYPE +mplsInterfaceLabelLookupFailures 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 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." @@ -866,48 +895,52 @@ label space the interface participates in." ::= { mplsInterfacePerfEntry 4 } -- In-segment table. mplsInSegmentTable OBJECT-TYPE SYNTAX SEQUENCE OF MplsInSegmentEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION - "This table contains a collection of incoming + "This table contains the collection of incoming segments to an LSR." ::= { mplsLsrObjects 3 } mplsInSegmentEntry OBJECT-TYPE SYNTAX MplsInSegmentEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry in this table represents one incoming segment. 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. An entry in this table is indexed by the ifIndex of the incoming interface and the (top) label. The value of mplsInSegmentRowStatus cannot be active(1)unless the ifTable entry - corresponding to mplsInSegmentIfIndex exists." + corresponding to mplsInSegmentIfIndex exists. An + entry in this table must match any incoming packets + for further processing. A match indicates an + instance of mplsXCEntry based on which + forwarding/switching actions are taken." INDEX { mplsInSegmentIfIndex, mplsInSegmentLabel } ::= { mplsInSegmentTable 1 } MplsInSegmentEntry ::= SEQUENCE { mplsInSegmentIfIndex InterfaceIndexOrZero, mplsInSegmentLabel MplsLabel, mplsInSegmentNPop Integer32, mplsInSegmentAddrFamily AddressFamilyNumbers, mplsInSegmentXCIndex Unsigned32, - mplsInSegmentOwner MplsInitialCreationSource , + mplsInSegmentOwner MplsOwner , mplsInSegmentTrafficParamPtr RowPointer, mplsInSegmentRowStatus RowStatus, mplsInSegmentStorageType StorageType } mplsInSegmentIfIndex OBJECT-TYPE SYNTAX InterfaceIndexOrZero MAX-ACCESS not-accessible STATUS current DESCRIPTION @@ -942,92 +975,91 @@ if mplsInSegmentRowStatus is active(1)." DEFVAL { 1 } ::= { mplsInSegmentEntry 3 } mplsInSegmentAddrFamily OBJECT-TYPE SYNTAX AddressFamilyNumbers MAX-ACCESS read-create STATUS current DESCRIPTION "The IANA address family [IANAFamily] of the incoming - packet. A value of other(0) indicates that the - family type is either unknown or undefined. This - object cannot be modified if mplsInSegmentRowStatus - is active(1)." - DEFVAL { other } + packet which is used at an egress LSR to deliver + packets to the appropriate layer 3 entity. A value + of other(0) indicates that the family type is either + unknown or undefined; this is not a legal value at + an egress LSR. This object cannot be modified if + mplsInSegmentRowStatus is active(1)." ::= { mplsInSegmentEntry 4 } mplsInSegmentXCIndex OBJECT-TYPE SYNTAX Unsigned32 (0..4294967295) MAX-ACCESS read-only STATUS current DESCRIPTION "Index into mplsXCTable which identifies which cross- connect entry this segment is part of. A value of zero indicates that this entry is not referred to by any cross-connect entry. When a cross-connect entry is created which this in-segment is a part of, this object is automatically updated to reflect the value of mplsXCIndex of that cross-connect entry." - DEFVAL { 0 } ::= { mplsInSegmentEntry 5 } mplsInSegmentOwner OBJECT-TYPE - SYNTAX MplsInitialCreationSource - MAX-ACCESS read-create + SYNTAX MplsOwner + MAX-ACCESS read-only STATUS current DESCRIPTION "Denotes the entity that created and is responsible - for managing this segment. This object cannot be - modified if mplsInSegmentRowStatus is active(1)." - DEFVAL { unknown } + for managing this segment." ::= { mplsInSegmentEntry 6 } mplsInSegmentTrafficParamPtr OBJECT-TYPE SYNTAX RowPointer MAX-ACCESS read-create STATUS current DESCRIPTION "This variable represents a pointer to the traffic parameter specification for this in-segment. This value may point at an entry in the mplsTrafficParamTable to indicate which mplsTrafficParamEntry is to be assigned to this segment. This value may optionally point at an externally defined traffic parameter specification - table. A value of zero-dot-zero indicates best-effort + table. A value of zeroDotZero indicates best-effort treatment. By having the same value of this object, two or more segments can indicate resource sharing. This object cannot be modified if mplsInSegmentRowStatus is active(1)." + DEFVAL { zeroDotZero } ::= { mplsInSegmentEntry 7 } mplsInSegmentRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "This variable is used to create, modify, and/or delete a row in this table." ::= { mplsInSegmentEntry 8 } mplsInSegmentStorageType OBJECT-TYPE SYNTAX StorageType MAX-ACCESS read-create STATUS current DESCRIPTION "This variable indicates the storage type for this object. This object cannot be modified if mplsInSegmentRowStatus is active(1). If this variable is set to readOnly(5), and the - corresponding TFIB entry is removed, then the agent - must remove this row shortly thereafter." + corresponding LFIB entry is removed, then the agent + must remove this row shortly thereafter [RFC2579]." ::= { mplsInSegmentEntry 9 } -- End of mplsInSegmentTable -- In-segment performance table. mplsInSegmentPerfTable OBJECT-TYPE SYNTAX SEQUENCE OF MplsInSegmentPerfEntry MAX-ACCESS not-accessible STATUS current @@ -1038,21 +1070,23 @@ mplsInSegmentPerfEntry OBJECT-TYPE SYNTAX MplsInSegmentPerfEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry in this table contains statistical information about one incoming segment which was configured in the mplsInSegmentTable. The counters in this entry should behave in a manner similar to - that of the interface." + that of the interface. + mplsInSegmentPerfDiscontinuityTime indicates the + time of the last discontinuity in these objects." AUGMENTS { mplsInSegmentEntry } ::= { mplsInSegmentPerfTable 1 } MplsInSegmentPerfEntry ::= SEQUENCE { mplsInSegmentOctets Counter32, mplsInSegmentPackets Counter32, mplsInSegmentErrors Counter32, mplsInSegmentDiscards Counter32, -- high capacity counter @@ -1060,21 +1094,22 @@ mplsInSegmentPerfDiscontinuityTime TimeStamp } mplsInSegmentOctets OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "This value represents the total number of octets - received by this segment." + received by this segment. It MUST be equal to the + least significant 32 bits of mplsInSegmentHCOctets." ::= { mplsInSegmentPerfEntry 1 } mplsInSegmentPackets OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "Total number of packets received by this segment." ::= { mplsInSegmentPerfEntry 2 } @@ -1167,79 +1202,75 @@ protocol. The object mplsOutSegmentOwner indicates the creator of this entry. The value of mplsOutSegmentRowStatus cannot be active(1)unless the ifTable entry corresponding to mplsOutSegmentIfIndex exists." INDEX { mplsOutSegmentIndex } ::= { mplsOutSegmentTable 1 } MplsOutSegmentEntry ::= SEQUENCE { mplsOutSegmentIndex Unsigned32, - mplsOutSegmentIfIndex InterfaceIndex, + mplsOutSegmentIfIndex InterfaceIndexOrZero, mplsOutSegmentPushTopLabel TruthValue, mplsOutSegmentTopLabel MplsLabel, mplsOutSegmentNextHopIpAddrType InetAddressType, - mplsOutSegmentNextHopIpv4Addr InetAddressIPv4, - mplsOutSegmentNextHopIpv6Addr InetAddressIPv6, + mplsOutSegmentNextHopIpAddr InetAddress, mplsOutSegmentXCIndex Unsigned32, - mplsOutSegmentOwner MplsInitialCreationSource , + mplsOutSegmentOwner MplsOwner , mplsOutSegmentTrafficParamPtr RowPointer, mplsOutSegmentRowStatus RowStatus, mplsOutSegmentStorageType StorageType } mplsOutSegmentIndex OBJECT-TYPE SYNTAX Unsigned32(0..2147483647) MAX-ACCESS not-accessible STATUS current DESCRIPTION "This value contains a unique index for this row. While a value of 0 is not valid as an index for this row it can be supplied as a valid value to index mplsXCTable to access entries for which no out- segment has been configured." ::= { mplsOutSegmentEntry 1 } mplsOutSegmentIfIndex OBJECT-TYPE - SYNTAX InterfaceIndexOrZero + SYNTAX InterfaceIndex MAX-ACCESS read-create STATUS current DESCRIPTION "This value must contain the interface index of the - outgoing interface. This object may only take the - value of 0 during the create-and-wait row creation - operation if the management station has not yet set - the value of this object. This object cannot be - modified if mplsOutSegmentRowStatus is active(1). - The mplsOutSegmentRowStatus cannot be set to - active(1) until this object is set to a value - corresponding to a valid ifEntry." - DEFVAL { 0 } + outgoing interface. This object cannot be modified + if mplsOutSegmentRowStatus is active(1). The + mplsOutSegmentRowStatus cannot be set to active(1) + until this object is set to a value corresponding to + a valid ifEntry." ::= { mplsOutSegmentEntry 2 } mplsOutSegmentPushTopLabel OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-create STATUS current DESCRIPTION "This value indicates whether or not a top label should be pushed onto the outgoing packet's label stack. The value of this variable MUST be set to true if the outgoing interface does not support pop- and-go (for example an ATM interface) or if it is a tunnel origination. Note that it is considered an error in the case that mplsOutSegmentPushTopLabel is set to false, but the cross-connect entry which refers to this out-segment has a non-zero mplsLabelStackIndex. The LSR MUST ensure that this situation does not happen. This object cannot be modified if mplsOutSegmentRowStatus is active(1)." + DEFVAL { true } ::= { mplsOutSegmentEntry 3 } mplsOutSegmentTopLabel OBJECT-TYPE SYNTAX MplsLabel MAX-ACCESS read-create STATUS current DESCRIPTION "If mplsOutSegmentPushTopLabel is true then this represents the label that should be pushed onto the top of the outgoing packet's label stack. Otherwise @@ -1248,119 +1279,109 @@ object cannot be modified if mplsOutSegmentRowStatus is active(1)." DEFVAL { 0 } ::= { mplsOutSegmentEntry 4 } mplsOutSegmentNextHopIpAddrType OBJECT-TYPE SYNTAX InetAddressType MAX-ACCESS read-create STATUS current DESCRIPTION - "Indicates whether the next hop address is IPv4 or - IPv6. Note that a value of unknown (0) is valid - only when the outgoing interface is of type point-to- - point. This object cannot be modified if - mplsOutSegmentRowStatus is active(1)." - DEFVAL { unknown } + "Indicates that the next hop address type is IPv4 + when set to ipv4 (1) or IPv6 when set to ipv6 (2). + A value of unknown (0) is allowed only when the + outgoing interface is of type point-to-point. If any + other values are attempted in a set operation the + agent MUST return an inconsistentValue error. This + object cannot be modified if mplsOutSegmentRowStatus + is active(1)." ::= { mplsOutSegmentEntry 5 } -mplsOutSegmentNextHopIpv4Addr OBJECT-TYPE - SYNTAX InetAddressIPv4 +mplsOutSegmentNextHopIpAddr OBJECT-TYPE + SYNTAX InetAddress MAX-ACCESS read-create STATUS current DESCRIPTION - "IPv4 Address of the next hop. Its value is - significant only when - mplsOutSegmentNextHopIpAddrType is ipV4 (1), - otherwise it SHOULD return a value of 0. This object - cannot be modified if mplsOutSegmentRowStatus is - active(1)." + "The IPv4 or IPv6 address of the next hop. Its value + is significant only when + mplsOutSegmentNextHopIpAddrType is ipv4 (1) or ipv6 + (2). Otherwise a management entity SHOULD set this + to 0 and an agent MUST ignore it. Likewise an agent + MUST return a value of 0 for a retrieval operation. + This object cannot be modified if + mplsOutSegmentRowStatus is active(1)." ::= { mplsOutSegmentEntry 6 } -mplsOutSegmentNextHopIpv6Addr OBJECT-TYPE - SYNTAX InetAddressIPv6 - MAX-ACCESS read-create - STATUS current - DESCRIPTION - "IPv6 address of the next hop. Its value is - significant only when - mplsOutSegmentNextHopIpAddrType is ipV6 (2), - otherwise it SHOULD return a value of 0. This object - cannot be modified if mplsOutSegmentRowStatus is - active(1)." - ::= { mplsOutSegmentEntry 7 } - mplsOutSegmentXCIndex OBJECT-TYPE SYNTAX Unsigned32 (0..4294967295) MAX-ACCESS read-only STATUS current DESCRIPTION "Index into mplsXCTable which identifies which cross- connect entry this segment is part of. A value of zero indicates that this entry is not referred to by any cross-connect entry. When a cross-connect entry is created which this out-segment is a part of, this - object is automatically updated to reflect the value - of mplsXCIndex of that cross-connect entry." - DEFVAL { 0 } - ::= { mplsOutSegmentEntry 8 } + object is MUST be updated by the agent to reflect + the value of mplsXCIndex of that cross-connect + entry." + ::= { mplsOutSegmentEntry 7 } mplsOutSegmentOwner OBJECT-TYPE - SYNTAX MplsInitialCreationSource - MAX-ACCESS read-create + SYNTAX MplsOwner + MAX-ACCESS read-only STATUS current DESCRIPTION "Denotes the entity which created and is responsible - for managing this segment. This object cannot be - modified if mplsOutSegmentRowStatus is active(1)." - DEFVAL { unknown } - ::= { mplsOutSegmentEntry 9 } + for managing this segment." + ::= { mplsOutSegmentEntry 8 } mplsOutSegmentTrafficParamPtr OBJECT-TYPE SYNTAX RowPointer MAX-ACCESS read-create STATUS current DESCRIPTION "This variable represents a pointer to the traffic parameter specification for this out-segment. This value may point at an entry in the mplsTrafficParamTable to indicate which mplsTrafficParamEntry is to be assigned to this segment. This value may optionally point at an externally defined traffic parameter specification - table. A value of zero-dot-zero indicates best- - effort treatment. By having the same value of this - object, two or more segments can indicate resource - sharing. This object cannot be modified if + table. A value of zeroDotZero indicates best-effort + treatment. By having the same value of this object, + two or more segments can indicate resource sharing. + This object cannot be modified if mplsOutSegmentRowStatus is active(1)." - ::= { mplsOutSegmentEntry 10 } + DEFVAL { zeroDotZero } + ::= { mplsOutSegmentEntry 9 } mplsOutSegmentRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "For creating, modifying, and deleting this row." - ::= { mplsOutSegmentEntry 11 } + ::= { mplsOutSegmentEntry 10 } mplsOutSegmentStorageType OBJECT-TYPE SYNTAX StorageType MAX-ACCESS read-create STATUS current DESCRIPTION "This variable indicates the storage type for this object. This object cannot be modified if mplsOutSegmentRowStatus is active(1). If this variable is set to readOnly(5), and the - corresponding TFIB entry is removed, then the agent + corresponding LFIB entry is removed, then the agent must remove this row shortly thereafter." - ::= { mplsOutSegmentEntry 12 } + ::= { mplsOutSegmentEntry 11 } -- End of mplsOutSegmentTable -- Out-segment performance table. mplsOutSegmentPerfTable OBJECT-TYPE SYNTAX SEQUENCE OF MplsOutSegmentPerfEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION @@ -1370,21 +1391,23 @@ the interface." ::= { mplsLsrObjects 7 } mplsOutSegmentPerfEntry OBJECT-TYPE SYNTAX MplsOutSegmentPerfEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry in this table contains statistical information about one outgoing segment configured in - mplsOutSegmentTable." + mplsOutSegmentTable. + mplsOutSegmentPerfDiscontinuityTime indicates the + time of the last discontinuity in these objects. " AUGMENTS { mplsOutSegmentEntry } ::= { mplsOutSegmentPerfTable 1 } MplsOutSegmentPerfEntry ::= SEQUENCE { mplsOutSegmentOctets Counter32, mplsOutSegmentPackets Counter32, mplsOutSegmentErrors Counter32, mplsOutSegmentDiscards Counter32, -- HC counter @@ -1392,21 +1415,22 @@ mplsOutSegmentPerfDiscontinuityTime TimeStamp } mplsOutSegmentOctets OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "This value contains the total number of octets sent - on this segment." + on this segment. It MUST be equal to the least + significant 32 bits of mplsOutSegmentHCOctets." ::= { mplsOutSegmentPerfEntry 1 } mplsOutSegmentPackets OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "This value contains the total number of packets sent on this segment." ::= { mplsOutSegmentPerfEntry 2 } @@ -1491,186 +1515,218 @@ label stack information for a cross-connect LSR and is referred to from mplsXCTable." ::= { mplsLsrObjects 9 } mplsXCEntry OBJECT-TYPE SYNTAX MplsXCEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A row in this table represents one cross-connect - entry. The following objects index it: + entry. It is indexed by the following objects: - cross-connect index mplsXCIndex that uniquely identifies a group of cross-connect entries - interface index of the in-segment, - mplsInSegmentIfIndex - - incoming label(s), mplsInSegmentLabel - - out-segment index, mplsOutSegmentIndex + mplsXCInSegmentIfIndex + - incoming label(s), mplsXCInSegmentLabel + - out-segment index, mplsXCOutSegmentIndex - Originating LSPs: + LSPs originating at this LSR: These are represented by using the special - combination of values mplsInSegmentIfIndex=0 and - mplsInSegmentLabel=0 as indexes. In this case the - mplsOutSegmentIndex MUST be non-zero. + combination of values mplsXCInSegmentIfIndex=0 and + mplsXCInSegmentLabel=0 as indexes. In this case + the mplsXCOutSegmentIndex MUST be non-zero. - Terminating LSPs: + LSPs terminating at this LSR: These are represented by using the special value - mplsOutSegmentIndex=0 as index. + mplsXCOutSegmentIndex=0 as index. Special labels: Entries indexed by reserved MPLS label values 0 - through 15 imply terminating LSPs and MUST have - mplsOutSegmentIfIndex = 0. Note that situations - where LSPs are terminated with incoming label equal - to 0, should have mplsInSegmentIfIndex = 0 as well, - but can be distinguished from originating LSPs - because the mplsOutSegmentIfIndex = 0. The - mplsOutSegmentIfIndex MUST only be set to 0 in - cases of terminating LSPs. + through 15 imply LSPs terminating at this LSR and + MUST have mplsXCOutSegmentIfIndex = 0. Note that + situations where LSPs are terminated with incoming + label equal to 0, should have + mplsXCInSegmentIfIndex = 0 as well, but can be + distinguished from LSPs originating at this LSR + because the mplsXCOutSegmentIfIndex = 0. The + mplsXCOutSegmentIfIndex MUST only be set to 0 in + the case of LSPs terminating at this LSR. An entry can be created by a network administrator or by an SNMP agent as instructed by an MPLS signaling protocol." INDEX { mplsXCIndex, - mplsInSegmentIfIndex, - mplsInSegmentLabel, - mplsOutSegmentIndex + mplsXCInSegmentIfIndex, + mplsXCInSegmentLabel, + mplsXCOutSegmentIndex } ::= { mplsXCTable 1 } MplsXCEntry ::= SEQUENCE { mplsXCIndex Unsigned32, + mplsXCInSegmentIfIndex InterfaceIndexOrZero, + mplsXCInSegmentLabel MplsLabel, + mplsXCOutSegmentIndex Unsigned32, mplsXCLspId MplsLSPID, mplsXCLabelStackIndex Unsigned32, mplsXCIsPersistent TruthValue, - mplsXCOwner MplsInitialCreationSource , + mplsXCOwner MplsOwner , mplsXCRowStatus RowStatus, mplsXCStorageType StorageType, mplsXCAdminStatus INTEGER, mplsXCOperStatus INTEGER } mplsXCIndex OBJECT-TYPE SYNTAX Unsigned32 (1..2147483647) MAX-ACCESS not-accessible STATUS current DESCRIPTION "Primary index for the conceptual row identifying a group of cross-connect segments." ::= { mplsXCEntry 1 } +mplsXCInSegmentIfIndex OBJECT-TYPE + SYNTAX InterfaceIndexOrZero + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Interface index of the in-segment for LSPs not + originating at this LSR. Zero (along with + mplsXCInSegmentLabel) otherwise." + ::= { mplsXCEntry 2 } + +mplsXCInSegmentLabel OBJECT-TYPE + SYNTAX MplsLabel + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Incoming label." + ::= { mplsXCEntry 3 } + +mplsXCOutSegmentIndex OBJECT-TYPE + SYNTAX Unsigned32 (1..2147483647) + MAX-ACCESS not-accessible + STATUS current + DESCRIPTION + "Index of out-segment for LSPs not terminating on + this LSR; zero otherwise." + ::= { mplsXCEntry 4 } + mplsXCLspId OBJECT-TYPE SYNTAX MplsLSPID MAX-ACCESS read-create STATUS current DESCRIPTION "This value identifies the label switched path that this cross-connect entry belongs to. This object cannot be modified if mplsXCRowStatus is active(1)." - ::= { mplsXCEntry 2 } + ::= { mplsXCEntry 5 } mplsXCLabelStackIndex OBJECT-TYPE SYNTAX Unsigned32 (0..4294967295) MAX-ACCESS read-create STATUS current DESCRIPTION "Primary index into mplsLabelStackTable identifying a stack of labels to be pushed beneath the top label. Note that the top label identified by the out- segment ensures that all the components of a multipoint-to-point connection have the same outgoing label. A value of 0 indicates that no labels are to be stacked beneath the top label. This object cannot be modified if mplsXCRowStatus is active(1)." - ::= { mplsXCEntry 3 } + ::= { mplsXCEntry 6 } mplsXCIsPersistent OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-create STATUS current DESCRIPTION "Denotes whether or not this cross-connect entry and associated in- and out-segments should be restored automatically after failures. This value MUST be set to false in cases where this cross-connect entry was created by a signaling protocol. This object cannot be modified if mplsXCRowStatus is active(1)." DEFVAL { false } - ::= { mplsXCEntry 4 } + ::= { mplsXCEntry 7 } mplsXCOwner OBJECT-TYPE - SYNTAX MplsInitialCreationSource - MAX-ACCESS read-create + SYNTAX MplsOwner + MAX-ACCESS read-only STATUS current DESCRIPTION "Denotes the entity that created and is responsible for managing this cross-connect. This object cannot be modified if mplsXCRowStatus is active(1)." - ::= { mplsXCEntry 5 } + ::= { mplsXCEntry 8 } mplsXCRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "For creating, modifying, and deleting this row." - ::= { mplsXCEntry 6 } + ::= { mplsXCEntry 9 } mplsXCStorageType OBJECT-TYPE SYNTAX StorageType - MAX-ACCESS read-create + MAX-ACCESS read-only STATUS current DESCRIPTION - "Defines the storage type for this object. This - object cannot be modified if mplsXCRowStatus is - active(1). If this variable is set to readOnly(5), - and the corresponding TFIB entry is removed, then - the agent must remove this row shortly thereafter." - ::= { mplsXCEntry 7 } + "Defines the storage type support provided for this + object by the agent. If this variable is set to + readOnly(5), and the corresponding LFIB entry is + removed, then the agent must remove this row shortly + thereafter." + ::= { mplsXCEntry 10 } mplsXCAdminStatus OBJECT-TYPE SYNTAX INTEGER { up(1), -- ready to pass packets down(2), testing(3) -- in some test mode } MAX-ACCESS read-create STATUS current DESCRIPTION "The desired operational status of this segment." - ::= { mplsXCEntry 8 } + ::= { mplsXCEntry 11 } mplsXCOperStatus OBJECT-TYPE SYNTAX INTEGER { up(1), -- ready to pass packets down(2), testing(3), -- in some test mode unknown(4), -- status cannot be determined -- for some reason. dormant(5), notPresent(6), -- some component is missing lowerLayerDown(7) -- down due to the state of -- lower layer interfaces } MAX-ACCESS read-only STATUS current DESCRIPTION "The actual operational status of this cross- connect." - ::= { mplsXCEntry 9 } + ::= { mplsXCEntry 12 } -- End of mplsXCTable -- Label stack table. + mplsMaxLabelStackDepth OBJECT-TYPE SYNTAX Integer32 (1..2147483647) MAX-ACCESS read-only STATUS current DESCRIPTION "The maximum stack depth supported by this LSR." ::= { mplsLsrObjects 10 } mplsLabelStackIndexNext OBJECT-TYPE SYNTAX Unsigned32 (0..4294967295) @@ -1761,24 +1817,25 @@ STATUS current DESCRIPTION "For creating, modifying, and deleting this row." ::= { mplsLabelStackEntry 4 } mplsLabelStackStorageType OBJECT-TYPE SYNTAX StorageType MAX-ACCESS read-create STATUS current DESCRIPTION - "Defines the storage type for this object. If this - variable is set to readOnly(5), and the - corresponding TFIB entry is removed, then the agent - must remove this row shortly thereafter." + " Defines the storage type support provided for this + object by the agent. If this variable is set to + readOnly(5), and the corresponding LFIB entry is + removed, then the agent must remove this row shortly + thereafter." ::= { mplsLabelStackEntry 5 } -- End of mplsLabelStackTable -- Traffic Parameter table. mplsTrafficParamIndexNext OBJECT-TYPE SYNTAX Unsigned32 (0..4294967295) MAX-ACCESS read-only STATUS current @@ -1870,31 +1927,32 @@ STATUS current DESCRIPTION "For creating, modifying, and deleting this row." ::= { mplsTrafficParamEntry 5 } mplsTrafficParamStorageType OBJECT-TYPE SYNTAX StorageType MAX-ACCESS read-create STATUS current DESCRIPTION - "The storage type for this object. If this variable - is set to readOnly(5), and the corresponding TFIB - entry is removed, then the agent must remove this - row shortly thereafter." + " Defines the storage type support provided for this + object by the agent. If this variable is set to + readOnly(5), and the corresponding LFIB entry is + removed, then the agent must remove this row shortly + thereafter." ::= { mplsTrafficParamEntry 6 } -- End of mplsTrafficParamTable -- Notification Configuration -mplsXCTrapEnable OBJECT-TYPE +mplsXCNotificationsEnable OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-write STATUS current DESCRIPTION "If this object is set to true(1), then it enables the emission of mplsXCUp and mplsXCDown notifications; otherwise these notifications are not emitted." DEFVAL { false } ::= { mplsLsrObjects 15 } @@ -1920,21 +1978,21 @@ instance identifiers of these two objects. For cases where a contiguous range of cross-connects have transitioned into the up(1) state at roughly the same time, the device SHOULD issue a single notification for each range of contiguous indexes in an effort to minimize the emission of a large number of notifications. If a notification has to be issued for just a single cross-connect entry, then the instance identifier (and values) of the two mplsXCOperStatus objects MUST be the identical." - ::= { mplsLsrNotifyPrefix 1 } + ::= { mplsLsrNotifications 1 } mplsXCDown NOTIFICATION-TYPE OBJECTS { mplsXCOperStatus, -- start of range mplsXCOperStatus -- end of range } STATUS current DESCRIPTION " This notification is generated when the mplsXCOperStatus object for one or more contiguous @@ -1948,49 +2006,49 @@ instance identifiers of these two objects. For cases where a contiguous range of cross-connects have transitioned into the down(2) state at roughly the same time, the device SHOULD issue a single notification for each range of contiguous indexes in an effort to minimize the emission of a large number of notifications. If a notification has to be issued for just a single cross-connect entry, then the instance identifier (and values) of the two mplsXCOperStatus objects MUST be the identical." - ::= { mplsLsrNotifyPrefix 2 } + ::= { mplsLsrNotifications 2 } -- End of notifications. -- Module compliance. mplsLsrGroups OBJECT IDENTIFIER ::= { mplsLsrConformance 1 } mplsLsrCompliances OBJECT IDENTIFIER ::= { mplsLsrConformance 2 } mplsLsrModuleCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "Compliance statement for agents that support the - MPLS LSR MIB." + MPLS-LSR-MIB." MODULE -- this module -- The mandatory groups have to be implemented -- by all LSRs. However, they may all be supported -- as read-only objects in the case where manual -- configuration is unsupported. MANDATORY-GROUPS { + mplsInterfaceGroup, mplsInSegmentGroup, mplsOutSegmentGroup, mplsXCGroup, - mplsInterfaceGroup, mplsPerfGroup, mplsSegmentDiscontinuityGroup } GROUP mplsHCInSegmentPerfGroup DESCRIPTION "This group is mandatory for those in-segment entries for which the object mplsInSegmentOutOctets wraps around too quickly." @@ -2030,28 +2089,27 @@ "Write access is not required." OBJECT mplsInSegmentNPop MIN-ACCESS read-only DESCRIPTION "Write access is not required. This object should be set to 1 if it is read-only." OBJECT mplsInSegmentAddrFamily DESCRIPTION - "Write access is not required. A