--- 1/draft-ietf-mpls-lsr-mib-09.txt 2006-02-05 00:41:34.000000000 +0100 +++ 2/draft-ietf-mpls-lsr-mib-10.txt 2006-02-05 00:41:34.000000000 +0100 @@ -1,26 +1,26 @@ Network Working Group Cheenu Srinivasan Internet Draft Parama Networks, Inc. -Expires: April 2003 +Expires: December 2003 Arun Viswanathan Force10 Networks, Inc. Thomas D. Nadeau Cisco Systems, Inc. - October 2002 + June 2003 - Multiprotocol Label Switching (MPLS) Label Switching Router (LSR) - Management Information Base + Multiprotocol Label Switching (MPLS) Label Switching + Router (LSR) Management Information Base - draft-ietf-mpls-lsr-mib-09.txt + draft-ietf-mpls-lsr-mib-10.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 In ternet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. @@ -32,438 +32,338 @@ in progress." The list of current Internet-Drafts can be accessed at 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 Switching - Router (LSR). + This memo defines an portion of the Management + Information Base (MIB) for use with network management protocols + in the Internet community. In particular, it describes managed + objects to configure and/or monitor a Multi-Protocol Label + Switching (MPLS) Label Switching Router (LSR). Table of Contents -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 + Abstract .................................................1 + 1. Introduction .............................................2 + 2. Terminology ..............................................2 + 3. The SNMP Management Framework ............................3 + 4. Outline ..................................................3 + 4.1 Summary of LSR MIB Module ................................3 + 5. Brief Description of MIB Module Objects ..................4 + 5.1. mplsInterfaceTable .......................................4 + 5.2. mplsInterfacePerfTable ...................................4 + 5.3. mplsInSegmentTable .......................................4 + 5.4. mplsInSegmentPerfTable ...................................5 + 5.5. mplsOutSegmentTable ......................................5 + 5.6. mplsOutSegmentPerfTable ..................................5 + 5.7. mplsXCTable ..............................................5 + 5.8. mplsLabelStackTable ......................................5 + 6. Use of 32-bit and 64-bit Counters ........................6 + 7. Example of LSP Setup .....................................6 + 8. Application of the Interface Group to MPLS ...............8 + 8.1. Support of the MPLS Layer by ifTable .....................8 + 9. The Use of RowPointer ....................................10 + 10. MPLS Label Switching Router MIB Module Definitions ........10 + 11. Security Considerations ...................................49 + 12. Acknowledgments ...........................................50 + 13. References ................................................51 + 13.1. Normative References ...................................51 + 13.2. Informative References .................................52 + 14. Authors' Addresses ........................................52 + 15. Full Copyright Statement ..................................53 + 16. Intellectual Property Notice ..............................53 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 - Switching Router (LSR). + This memo defines an 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 Switching Router (LSR). + + Comments should be made directly to the MPLS mailing list at + mpls@uu.net. 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 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 + segments) at a 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: - - - An overall architecture, described in RFC 2571 [RFC2571]. - - - Mechanisms for describing and naming objects and events for the - purpose of management. The first version of this Structure of - Management Information (SMI) is called SMIv1 and described in - STD 16, RFC 1155 [RFC1155], STD 16, RFC 1212 [RFC1212] and STD - 16, RFC 1215 [RFC1215]. The second version, called SMIv2, is - described in STD 58, RFC 2578 [RFC2578], STD 58, RFC 2579 - [RFC2579] and STD 58, RFC 2580 [RFC2580]. - - - Message protocols for transferring management information. The - first version of the SNMP message protocol is called SNMPv1 - and described in STD 15, RFC 1157 [RFC1157]. A second version - of the SNMP message protocol, which is not an Internet - standards track protocol, is called SNMPv2c and described in - RFC 1901 [RFC1901] and RFC 1906 [RFC1906]. The third version - of the message protocol is called SNMPv3 and described in RFC - 1906 [RFC1906], RFC 2572 [RFC2572] and RFC 2574 [RFC2574]. - - - Protocol operations for accessing management information. The - first set of protocol operations and associated PDU formats is - described in STD 15, RFC 1157 [RFC1157]. A second set of - protocol operations and associated PDU formats is described in - RFC 1905 [RFC1905]. - - - A set of fundamental applications described in RFC 2573 - [RFC2573] and the view-based access control mechanism - described in RFC 2575 [RFC2575]. - - A more detailed introduction to the current SNMP Management - Framework can be found in RFC 2570 [RFC2570]. - - 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 Switching Router MIB (LSR MIB) is designed to - satisfy the following requirements and constraints: - - - 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, 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. - - - The MIB supports point-to-point, point-to-multipoint and - multipoint-to-point connections at an LSR. - - - For multipoint-to-point connections all outgoing packets can - have the same top label. - - - For multipoint-to-point connections, the outgoing resources of - the merged connections can be shared. - - - For multipoint-to-point connections, packets from different - incoming connections can have distinct outgoing label stacks - beneath the (identical) top label. - - - In the point-to-multipoint case each outgoing connection can - have a distinct label stack including the top label. - - - All the members of a point-to-multipoint connection can share - the resources allocated for the ingress segments. + in-segment This is analagous to an MPLS label. + out-segment This is analagous to an MPLS label. + cross-connect This describes the conceptual connection + between a set of in-segments and out-segments. + Note that either set may be 0; that is, a + cross-connect may connect only out-segments + together with no in-segments in the case + where an LSP is originating on an LSR. - - The MIB provides cross-connect capability to "pop" an incoming - label and forward the packet with the remainder of the label - stack unchanged and without pushing any labels ("pop-and-go") - [RFC3032]. +3. The SNMP Management Framework - - The MIB supports persistent as well as non-persistent LSPs. + For a detailed overview of the documents that describe the current + Internet-Standard Management Framework, please refer to section 7 of + RFC 3410 [RFC3410]. - - Performance counters are provided for in-segments and out- - segments as well as for measuring MPLS performance on a per- - interface basis. + Managed objects are accessed via a virtual information store, termed + the Management Information Base or MIB. MIB objects are generally + accessed through the Simple Network Management Protocol (SNMP). + Objects in the MIB are defined using the mechanisms defined in the + Structure of Management Information (SMI). This memo specifies a MIB + module that is compliant to the SMIv2, which is described in STD 58, + RFC 2578 [RFC2578], STD 58, RFC 2579 [RFC2579] and STD 58, RFC 2580 + [RFC2580]. -5. Outline +4. Outline Configuring LSPs through an LSR involves the following steps: - Enabling MPLS on MPLS capable interfaces. - Configuring in-segments and out-segments. - Setting up the cross-connect table to associate segments and/or to indicate connection origination and termination. - Optionally specifying label stack actions. - Optionally specifying segment traffic parameters. -5.1. Summary of LSR MIB +4.1. Summary of LSR MIB Module The MIB objects for performing these actions consist of the following tables: - - The interface configuration table (mplsInterfaceConfTable), - which is used for enabling the MPLS protocol on MPLS-capable - interfaces. + - The interface table (mplsInterfaceTable), + which is used for revealing the MPLS protocol on + MPLS-capable interfaces. - The in-segment (mplsInSegmentTable) and out-segment (mplsOutSegmentTable) tables, which are used for configuring LSP segments at an LSR. - The cross-connect table (mplsXCTable), which is used to associate in and out segments together, in order to form a cross-connect. - The label stack table (mplsLabelStackTable), which is used for specifying label stack operations. - - The Traffic Parameter table (mplsTrafficParamTable), which is - used for specifying LSP-related traffic parameters. - Further, the MPLS in-segment and out-segment performance tables, mplsInSegmentPerfTable and mplsOutSegmentPerfTable, contain the objects necessary to measure the performance of LSPs, and mplsInterfacePerfTable has objects to measure MPLS performance on a per-interface basis. These tables are described in the subsequent sections. -6. Brief Description of MIB Objects +5. Brief Description of MIB Module Objects - Sections 6.1-6.2 describe objects pertaining to MPLS-capable - interfaces of an LSR. The objects described in Sections 6.3-6.8, + Sections 5.1-5.2 describe objects pertaining to MPLS-capable + interfaces of an LSR. The objects described in Sections 5.3-5.8, were derived from the Incoming Label Map (ILM) and Next Hop Label Forwarding Entry (NHLFE) as specified in the MPLS architecture - document [RFC3031]. Section 6.9 describes objects for specifying - traffic parameters for in and out segments. It is appropriate to - note that the in-segment, out-segment, and cross-connect tables - were modeled after similar tables found in [RFC2515]. + document [RFC3031]. It is appropriate to note that the in-segment, + out-segment, and cross-connect tables were modeled after similar + tables found in [RFC2515]. -6.1. mplsInterfaceConfTable +5.1. mplsInterfaceTable 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 +5.2. mplsInterfacePerfTable This table contains objects to measure the MPLS performance of MPLS capable interfaces and is an AUGMENT to - mplsInterfaceConfTable. + mplsInterfaceTable. -6.3. mplsInSegmentTable +5.3. mplsInSegmentTable - This table contains a description of the incoming MPLS segments to - an LSR and their associated parameters. + This table contains a description of the incoming MPLS segments + to an LSR and their associated parameters. This 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. -6.4. mplsInSegmentPerfTable + The table is designed to handle existing MPLS labels as + well as future label strategies that may require labels + longer than the ones defined in RFC3031. In these cases, + the object mplsInSegmentLabelPtr may be used indicate + the first accessible object in a separate table that can be + used to represent the label because it is too long to + be represented in a single 32-bit value (mplsInSegmentLabel). - The MPLS In-Segment Performance Table has objects to help measure +5.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 provided for objects that are likely to wrap around quickly on high-speed interfaces. -6.5. mplsOutSegmentTable +5.5. mplsOutSegmentTable - The Out-Segment Table contains a description of the outgoing MPLS + The out-Segment Table contains a description of the outgoing MPLS segments at an LSR and their associated parameters. -6.6. mplsOutSegmentPerfTable +5.6. mplsOutSegmentPerfTable - 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 + The MPLS out-Segment Table contains objects to 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 +5.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 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 - +5.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. Use of 32-bit and 64-bit Counters +6. 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 + 64-bit counters are provided in this MIB module 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 +7. Example of LSP Setup In this section we provide a brief example of setting up an LSP - 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. + using this MIB module's objects. While this example + is not meant to illustrate every nuance of the MIB module, it + is intended as an aid to understanding some of the key concepts. + It is meant to be read after going through the MIB module 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. Those objects - relevant to illustrating the relationships amongst different - tables are shown here. Other objects may be needed before - conceptual row activation can happen. + with ifIndex 13. Let us assume that we do not wish to impose any + additional 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. 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. + Note that the proper use of createAndGo(4) requires that all + columns that do not have a DEFVAL to be specified in order for + the SET to succeed. In the example below we have not specify all + such columns for the sake of keeping the example short. Please + keep in mind that all such fields must be send during a real SET + operation. A subsequent retrieval operation on the conceptual + row will return a different value, such as active(1). Please see + [RFC2579] for a detailed discussion on the use of RowStatus. - In mplsTrafficParamTable for the incoming direction: + We first create a cross-connect entry that associates the + desired segments together. + In mplsXCTable: { - mplsTrafficParamIndex = 5 - mplsTrafficParamMaxRate = 100000, - mplsTrafficParamMeanRate = 100000, - mplsTrafficParamMaxBurstSize = 2000, - mplsTrafficParamRowStatus = createAndGo(4) - } + mplsXCIndex = 0x02, + mplsXcInSegmentIndex = 0x00000015, + mplsXcOutSegmentIndex = 0x01, - In mplsTrafficParamTable for the outgoing direction: - { - mplsTrafficParamIndex = 6 - mplsTrafficParamMaxRate = 100000, - mplsTrafficParamMeanRate = 100000, - mplsTrafficParamMaxBurstSize = 2000, - mplsTrafficParamRowStatus = createAndGo(4) + mplsXCLspId = 'c021041502'H, -- 192.33.4.21.2 + mplsXcLabelStackIndex = 0x00, -- only a single + -- outgoing label + mplsXCRowStatus = createAndGo(4) } - Note that if we were setting up a bi-directional LSP, the segments - in the reverse direction can share the traffic parameter entries - (and hence resources) with the segments in the forward direction. - - 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. + Next, we create the appropriate in-segment and out-segment + entries based on the cross-connect. Note that some agents + may wish to automatically create the in and out-segments + based on the cross-connect creation. In mplsInSegmentTable: { - mplsInSegmentIfIndex = 12, -- incoming interface + mplsInSegmentIndex = 0x00000015 + mplsInSegmentLabel = 21, -- incoming label mplsInSegmentNPop = 1, + mplsInSegmentInterface = 12, -- incoming interface + -- RowPointer MUST point to the first accesible column. - mplsInSegmentTrafficParamPtr = mplsTrafficParamMaxRate.5, + mplsInSegmentLabelPtr = 0.0, + mplsInSegmentTrafficParamPtr = 0.0, + mplsInSegmentRowStatus = createAndGo(4) } In mplsOutSegmentTable: { - mplsOutSegmentIndex = 1, - mplsOutSegmentIfIndex = 13, -- outgoing interface + mplsOutSegmentIndex = 0x01, + mplsOutSegmentInterface = 13, -- outgoing interface mplsOutSegmentPushTopLabel = true(1), mplsOutSegmentTopLabel = 22, -- outgoing label + -- 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. + mplsOutSegmentTrafficParamPtr = 0.0, + mplsOutSegmentLabelPtr = 0.0, - 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) + mplsOutSegmentRowStatus = 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. + objects will automatically be populated with the string 0x02 + when these segments are referred to from the corresponding + cross- connect entry. -9. Application of the Interface Group to MPLS +8. 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 + RFC2863 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]. @@ -474,21 +374,21 @@ +----------------------------------------+ | MPLS interface; ifType = mpls(166) + +----------------------------------------+ | Underlying Layer + +----------------------------------------+ 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. -9.1. Support of the MPLS Layer by ifTable +8.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. @@ -543,729 +443,906 @@ 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]. -10. The Use of RowPointer +9. 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 - 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, mplsTrafficParamPtr MUST point to the first - column of the appropriate conceptual row []. + row in a MIB Table by pointing to the first accessible object + in that row. In this MIB module, the trafficParamPtr object from + either the mplsInSegmentTable or mplsOutSegmentTable SHOULD + indicate the first accessible column in an entry in the + MplsTunnelResourceEntry in the MPLS-TE-STD-MIB [TEMIB] + to indicate the traffic parameter settings for this + segment, if it represents an LSP used for a TE tunnel. -11. MPLS Label Switching Router MIB Definitions + The trafficParamPtr object may optionally point at an + externally defined traffic parameter specification + 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 + of such things as LSP queue space, etc. -MPLS-LSR-MIB DEFINITIONS ::= BEGIN +10. MPLS Label Switching Router MIB Module Definitions +MPLS-LSR-STD-MIB DEFINITIONS ::= BEGIN IMPORTS MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, Integer32, Counter32, Unsigned32, Counter64, Gauge32, zeroDotZero FROM SNMPv2-SMI MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP FROM SNMPv2-CONF TruthValue, RowStatus, StorageType, RowPointer, - TimeStamp + TimeStamp, TEXTUAL-CONVENTION FROM SNMPv2-TC - InterfaceIndex, InterfaceIndexOrZero + InterfaceIndexOrZero FROM IF-MIB - mplsMIB, MplsLSPID, MplsLabel, MplsBitRate, MplsBurstSize, + mplsStdMIB, MplsLSPID, MplsLabel, MplsBitRate, MplsOwner - FROM MPLS-TC-MIB + FROM MPLS-TC-STD-MIB AddressFamilyNumbers FROM IANA-ADDRESS-FAMILY-NUMBERS-MIB InetAddress, InetAddressType FROM INET-ADDRESS-MIB ; -mplsLsrMIB MODULE-IDENTITY - LAST-UPDATED "200210051200Z" -- 5 October 2002 12:00:00 GMT +mplsLsrStdMIB MODULE-IDENTITY + LAST-UPDATED "200306061200Z" -- 6 June 2003 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 + Parama Networks, Inc. Email: cheenu@paramanet.com Arun Viswanathan - Postal: Force10 Networks, Inc. - 1440 McCarthy Blvd - Milpitas, CA 95035 - Tel: +1-408-571-3516 + Force10 Networks, Inc. Email: arun@force10networks.com Thomas D. Nadeau - Postal: Cisco Systems, Inc. - 250 Apollo Drive - Chelmsford, MA 01824 - Tel: +1-978-244-3051 + Cisco Systems, Inc. Email: tnadeau@cisco.com Comments about this document should be emailed directly to the MPLS working group mailing list at - mpls@uu.net. - " + mpls@uu.net." + DESCRIPTION - "This MIB contains managed object definitions for the - Multiprotocol Label Switching (MPLS) Router as + "This MIB module 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." + RFC 3031, January 2001. + + Copyright (C) The Internet Society (2003). This + version of this MIB module is part of RFCXXX; see + the RFC itself for full legal notices." -- Revision history. REVISION - "200210051200Z" -- 5 October 2002 12:00:00 GMT + "200306061200Z" -- 6 June 2003 12:00:00 GMT DESCRIPTION "Initial revision, published as part of RFC XXXX." - ::= { mplsMIB 2 } + ::= { mplsStdMIB 2 } --- Top level components of this MIB. +-- 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 DESCRITPION clause + MUST specify if this special value is valid and if so + what the special meaning of is. + + When a MIB module is used for configuration, an object with + this SYNTAX always contains a legal value (if 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. + + An OBJECT-TYPE definition using this SYNTAX MUST specify the + relevant table for which the object is providing this + functionality." + SYNTAX OCTET STRING (SIZE(1..24)) + +-- Top level components of this MIB module. -- Notifications -mplsLsrNotifications OBJECT IDENTIFIER ::= { mplsLsrMIB 0 } +mplsLsrNotifications OBJECT IDENTIFIER ::= { mplsLsrStdMIB 0 } + -- Tables, Scalars -mplsLsrObjects OBJECT IDENTIFIER ::= { mplsLsrMIB 1 } --- Conformance -mplsLsrConformance OBJECT IDENTIFIER ::= { mplsLsrMIB 2 } +mplsLsrObjects OBJECT IDENTIFIER ::= { mplsLsrStdMIB 1 } --- MPLS Interface Configuration Table. +-- Conformance +mplsLsrConformance OBJECT IDENTIFIER ::= { mplsLsrStdMIB 2 } -mplsInterfaceConfTable OBJECT-TYPE - SYNTAX SEQUENCE OF MplsInterfaceConfEntry +-- 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 } -mplsInterfaceConfEntry OBJECT-TYPE - SYNTAX MplsInterfaceConfEntry +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 is enabled to do so. A - conceptual row in this table will exist iff a + of supporting MPLS and which is configured 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 + 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. Further information - about label space participation of an interface is - provided in the DESCRIPTION clause of + 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 numebr + of objects returned. Further information about label + space participation of an interface is provided in + the DESCRIPTION clause of mplsInterfaceLabelParticipationType." - INDEX { mplsInterfaceConfIndex } - ::= { mplsInterfaceConfTable 1 } + INDEX { mplsInterfaceIndex } + ::= { mplsInterfaceTable 1 } -MplsInterfaceConfEntry ::= SEQUENCE { - mplsInterfaceConfIndex InterfaceIndexOrZero, +MplsInterfaceEntry ::= SEQUENCE { + mplsInterfaceIndex InterfaceIndexOrZero, mplsInterfaceLabelMinIn MplsLabel, mplsInterfaceLabelMaxIn MplsLabel, mplsInterfaceLabelMinOut MplsLabel, mplsInterfaceLabelMaxOut MplsLabel, mplsInterfaceTotalBandwidth MplsBitRate, mplsInterfaceAvailableBandwidth MplsBitRate, mplsInterfaceLabelParticipationType BITS } -mplsInterfaceConfIndex OBJECT-TYPE +mplsInterfaceIndex OBJECT-TYPE SYNTAX InterfaceIndexOrZero MAX-ACCESS not-accessible STATUS current DESCRIPTION "This is a unique index for an entry in the - MplsInterfaceConfTable. A non-zero index for an + MplsInterfaceTable. A non-zero index for an entry indicates the ifIndex for the corresponding - interface entry in of the MPLS-layer in the ifTable. - Note that the per-platform label space may apply to - several interfaces, and therefore the configuration - of the per-platform label space interface parameters - will apply to all of the interfaces that are - participating in the per-platform label space." + 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" - ::= { mplsInterfaceConfEntry 1 } + ::= { 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." - ::= { mplsInterfaceConfEntry 2 } + ::= { 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." - ::= { mplsInterfaceConfEntry 3 } + ::= { 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." - ::= { mplsInterfaceConfEntry 4 } + ::= { 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." - ::= { mplsInterfaceConfEntry 5 } + ::= { 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." -::= { mplsInterfaceConfEntry 6 } +::= { 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." -::= { mplsInterfaceConfEntry 7 } +::= { mplsInterfaceEntry 7 } 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. 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 + "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 + 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 + mplsInterfaceLabelMaxOut for this entry MUST be identical to the instance of these objects with - index 0." + 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." -::= { mplsInterfaceConfEntry 8 } +::= { mplsInterfaceEntry 8 } --- End of mplsInterfaceConfTable +-- 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 mplsInterfaceConfEntry table." - AUGMENTS { mplsInterfaceConfEntry } + 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 - mplsInterfaceInLabelsUsed Gauge32, - mplsInterfaceLabelLookupFailures Counter32, + mplsInterfacePerfInLabelsInUse Gauge32, + mplsInterfacePerfInLabelLookupFailures Counter32, -- outgoing direction - mplsInterfaceOutLabelsUsed Gauge32, - mplsInterfaceOutFragments Counter32 + mplsInterfacePerfOutLabelsInUse Gauge32, + mplsInterfacePerfOutFragmentedPkts Counter32 } -mplsInterfaceInLabelsUsed OBJECT-TYPE +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 - the per-platform label space only, then the value of - this instance of this object MUST be identical with + 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 this instance of this object MUST + space, then the 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." + are in use on this interface." ::= { mplsInterfacePerfEntry 1 } -mplsInterfaceLabelLookupFailures OBJECT-TYPE +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 were - discarded because there was no matching cross- + 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 } -mplsInterfaceOutLabelsUsed OBJECT-TYPE +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 } -mplsInterfaceOutFragments OBJECT-TYPE +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 } --- In-segment table. +-- mplsInterfacePerf Table end. + +mplsInSegmentIndexNext OBJECT-TYPE + SYNTAX MplsIndexType + 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 + a string containing the single octet 0x00 indicates + 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 the collection of incoming - segments to an LSR." - ::= { mplsLsrObjects 3 } + "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 + colum 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 mlsinSegmentLabel 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. An entry can be created by a network + 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. 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. 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 } + 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 { - mplsInSegmentIfIndex InterfaceIndexOrZero, + mplsInSegmentIndex MplsIndexType, + mplsInSegmentInterface InterfaceIndexOrZero, mplsInSegmentLabel MplsLabel, + mplsInSegmentLabelPtr RowPointer, mplsInSegmentNPop Integer32, mplsInSegmentAddrFamily AddressFamilyNumbers, - mplsInSegmentXCIndex Unsigned32, + mplsInSegmentXCIndex MplsIndexType, mplsInSegmentOwner MplsOwner , mplsInSegmentTrafficParamPtr RowPointer, mplsInSegmentRowStatus RowStatus, mplsInSegmentStorageType StorageType } -mplsInSegmentIfIndex OBJECT-TYPE - SYNTAX InterfaceIndexOrZero +mplsInSegmentIndex OBJECT-TYPE + SYNTAX MplsIndexType MAX-ACCESS not-accessible STATUS current DESCRIPTION - "This is a unique index for an entry in the - MplsInSegmentTable. This value represents the - interface index for the incoming MPLS interface. A - value of zero represents an incoming label from the - per-platform label space. In this case, the - mplsInSegmentLabel is interpreted to be an MPLS-type - label." + "The index for 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 not-accessible + MAX-ACCESS read-create STATUS current DESCRIPTION - "The incoming label for this segment." - ::= { mplsInSegmentEntry 2 } + "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. Note that technologies which do not - support label popping should set this value to its - default value of 1. This object cannot be modified + 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 3 } + ::= { mplsInSegmentEntry 5 } mplsInSegmentAddrFamily OBJECT-TYPE SYNTAX AddressFamilyNumbers MAX-ACCESS read-create STATUS current DESCRIPTION - "The IANA address family [IANAFamily] of the incoming - 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 } + "The IANA address family 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)." + REFERENCE + "See Internet Assigned Numbers Authority (IANA), + ADDRESS FAMILY NUMBERS." + DEFVAL { other } + ::= { mplsInSegmentEntry 6 } mplsInSegmentXCIndex OBJECT-TYPE -SYNTAX Unsigned32 (0..4294967295) + SYNTAX MplsIndexType 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." - ::= { mplsInSegmentEntry 5 } + connect entry this segment is part of. The string + containing the single octet 0x00 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." + ::= { mplsInSegmentEntry 7 } mplsInSegmentOwner OBJECT-TYPE SYNTAX MplsOwner MAX-ACCESS read-only STATUS current DESCRIPTION "Denotes the entity that created and is responsible for managing this segment." - ::= { mplsInSegmentEntry 6 } + ::= { mplsInSegmentEntry 8 } 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 + 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 + mplsTunnelResourceTable in the MPLS-TE-STD-MIB (RFCnnnn) + + RFC Editor: Please fill in RFC number. + + to indicate which traffic parameter settings for this + segment if it represents an LSP used for a TE tunnel. + + This value may optionally point at an externally defined traffic parameter specification 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)." + two or more segments can indicate resource sharing + of such things as LSP queue space, etc. + + This object cannot be modified if mplsInSegmentRowStatus + is active(1). For entries in this table that + are preserved after a re-boot, the agent MUST ensure + that their integrity be preserved, or this object should + be set to 0.0 if it cannot." DEFVAL { zeroDotZero } - ::= { mplsInSegmentEntry 7 } + ::= { mplsInSegmentEntry 9 } 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 } + delete a row in this table. When a row in this + table has a row in the active(1) state, no + objects in this row can be modified except the + mplsInSegmentRowStatus and mplsInSegmentStorageType." + ::= { mplsInSegmentEntry 10 } mplsInSegmentStorageType OBJECT-TYPE SYNTAX StorageType - MAX-ACCESS read-create + MAX-ACCESS read-only 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 + object. If this object is set to readOnly(5), and the corresponding LFIB entry is removed, then the agent - must remove this row shortly thereafter [RFC2579]." - ::= { mplsInSegmentEntry 9 } + MUST remove this row shortly thereafter. + The agent MUST ensure that this object's value + remains consistent with the associated mplsXCEntry. + Conceptual rows having the value 'permanent' + need not allow write-access to any columnar + objects in the row. + The default value is volatile(2)." + REFERENCE + "See RFC2579." + DEFVAL { volatile } + ::= { mplsInSegmentEntry 11 } -- End of mplsInSegmentTable --- In-segment performance table. +-- in-segment performance table. mplsInSegmentPerfTable OBJECT-TYPE SYNTAX SEQUENCE OF MplsInSegmentPerfEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table contains statistical information for incoming MPLS segments to an LSR." - ::= { mplsLsrObjects 4 } + ::= { mplsLsrObjects 5 } 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 + information about one incoming segment which is configured in the mplsInSegmentTable. The counters in this entry should behave in a manner similar to that of the interface. mplsInSegmentPerfDiscontinuityTime indicates the - time of the last discontinuity in these objects." + time of the last discontinuity in all of these + objects." AUGMENTS { mplsInSegmentEntry } ::= { mplsInSegmentPerfTable 1 } MplsInSegmentPerfEntry ::= SEQUENCE { - mplsInSegmentOctets Counter32, - mplsInSegmentPackets Counter32, - mplsInSegmentErrors Counter32, - mplsInSegmentDiscards Counter32, + mplsInSegmentPerfOctets Counter32, + mplsInSegmentPerfPackets Counter32, + mplsInSegmentPerfErrors Counter32, + mplsInSegmentPerfDiscards Counter32, -- high capacity counter - mplsInSegmentHCOctets Counter64, + mplsInSegmentPerfHCOctets Counter64, mplsInSegmentPerfDiscontinuityTime TimeStamp } -mplsInSegmentOctets OBJECT-TYPE +mplsInSegmentPerfOctets OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "This value represents the total number of octets received by this segment. It MUST be equal to the - least significant 32 bits of mplsInSegmentHCOctets." + least significant 32 bits of + mplsInSegmentPerfHCOctets + if mplsInSegmentPerfHCOctets is supported according to + the rules spelled out in RFC2863." ::= { mplsInSegmentPerfEntry 1 } -mplsInSegmentPackets OBJECT-TYPE +mplsInSegmentPerfPackets OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "Total number of packets received by this segment." ::= { mplsInSegmentPerfEntry 2 } -mplsInSegmentErrors OBJECT-TYPE +mplsInSegmentPerfErrors OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of errored packets received on this segment." ::= { mplsInSegmentPerfEntry 3 } -mplsInSegmentDiscards OBJECT-TYPE +mplsInSegmentPerfDiscards OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of labeled packets received on this in- segment, which were chosen to be discarded even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a labeled packet could be to free up buffer space." ::= { mplsInSegmentPerfEntry 4 } -mplsInSegmentHCOctets OBJECT-TYPE +mplsInSegmentPerfHCOctets OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-only STATUS current DESCRIPTION "The total number of octets received. This is the 64 - bit version of mplsInSegmentOctets." + bit version of mplsInSegmentPerfOctets, + if mplsInSegmentPerfHCOctets is supported according to + the rules spelled out in RFC2863." ::= { mplsInSegmentPerfEntry 5 } mplsInSegmentPerfDiscontinuityTime OBJECT-TYPE SYNTAX TimeStamp MAX-ACCESS read-only STATUS current DESCRIPTION "The value of sysUpTime on the most recent occasion at which any one or more of this segment's Counter32 or Counter64 suffered a discontinuity. If no such discontinuities have occurred since the last re- initialization of the local management subsystem, then this object contains a zero value." ::= { mplsInSegmentPerfEntry 6 } -- End of mplsInSegmentPerfTable. --- Out-segment table. +-- out-segment table. mplsOutSegmentIndexNext OBJECT-TYPE - SYNTAX Unsigned32 (0..4294967295) + SYNTAX MplsIndexType MAX-ACCESS read-only STATUS current DESCRIPTION - "This object contains the next appropriate value to - be used for mplsOutSegmentIndex when creating - entries in the mplsOutSegmentTable. If the number - of unassigned entries is exhausted, this object will - take on the value of 0. To obtain the - mplsOutSegmentIndex value for a new entry, the - manager must first issue a management protocol - retrieval operation to obtain the current value of - this object. The agent should modify the value to - reflect the next unassigned index after each - retrieval operation. After a manager retrieves a - value the agent will determine through its local - policy when this index value will be made available - for reuse." - ::= { mplsLsrObjects 5 } + "This object contains the next available value to + be used for mplsOutSegmentIndex when creating entries + in the mplsOutSegmentTable. The special value of a + a string containing the single octet 0x00 indicates + 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 6 } mplsOutSegmentTable OBJECT-TYPE SYNTAX SEQUENCE OF MplsOutSegmentEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table contains a representation of the outgoing segments from an LSR." - ::= { mplsLsrObjects 6 } + ::= { mplsLsrObjects 7 } mplsOutSegmentEntry OBJECT-TYPE SYNTAX MplsOutSegmentEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry in this table represents one outgoing segment. An entry can be created by a network - administrator or an SNMP agent, or an MPLS signaling + administrator, an SNMP agent, or an MPLS signaling 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." + mplsOutSegmentInterface exists. + + Note that the indexing of this table uses a single, + arbitrary index (mplsOutSegmentIndex) to indicate + which out-segment (i.e.: label) is being switched to + from which in-segment (i.e: label) or in-segments. + This is necessary because it is possible to have an + equal-cost multi-path situation where two identical + out-going labels are assigned to the same + cross-connect (i.e.: they go to two different neighboring + LSRs); thus, requiring two out-segments. In order to + preserve the uniqueness of the references + by the mplsXCEntry, an arbitrary integer must be used as + the index for this table." INDEX { mplsOutSegmentIndex } ::= { mplsOutSegmentTable 1 } MplsOutSegmentEntry ::= SEQUENCE { - mplsOutSegmentIndex Unsigned32, - mplsOutSegmentIfIndex InterfaceIndexOrZero, + mplsOutSegmentIndex MplsIndexType, + mplsOutSegmentInterface InterfaceIndexOrZero, mplsOutSegmentPushTopLabel TruthValue, mplsOutSegmentTopLabel MplsLabel, - mplsOutSegmentNextHopIpAddrType InetAddressType, - mplsOutSegmentNextHopIpAddr InetAddress, - mplsOutSegmentXCIndex Unsigned32, + mplsOutSegmentTopLabelPtr RowPointer, + mplsOutSegmentNextHopAddrType InetAddressType, + mplsOutSegmentNextHopAddr InetAddress, + mplsOutSegmentXCIndex MplsIndexType, mplsOutSegmentOwner MplsOwner , mplsOutSegmentTrafficParamPtr RowPointer, mplsOutSegmentRowStatus RowStatus, mplsOutSegmentStorageType StorageType } mplsOutSegmentIndex OBJECT-TYPE - SYNTAX Unsigned32(0..2147483647) + SYNTAX MplsIndexType 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." + While a value of a string containing the single + octet 0x00 is not valid as an index for entries + in this table, it can be supplied as a valid value + to index the mplsXCTable to represent entries for + which no out-segment has been configured or + exists." ::= { mplsOutSegmentEntry 1 } -mplsOutSegmentIfIndex OBJECT-TYPE - SYNTAX InterfaceIndex +mplsOutSegmentInterface OBJECT-TYPE + SYNTAX InterfaceIndexOrZero MAX-ACCESS read-create STATUS current DESCRIPTION "This value must contain the interface index of the 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 + true(1) if the outgoing interface does not support + pop-and-go (and no label stack remains). For example, + on ATM interface, or if the segment represents 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 @@ -1274,526 +1351,558 @@ "If mplsOutSegmentPushTopLabel is true then this represents the label that should be pushed onto the top of the outgoing packet's label stack. Otherwise this value SHOULD be set to 0 by the management station and MUST be ignored by the agent. This object cannot be modified if mplsOutSegmentRowStatus is active(1)." DEFVAL { 0 } ::= { mplsOutSegmentEntry 4 } -mplsOutSegmentNextHopIpAddrType OBJECT-TYPE - SYNTAX InetAddressType +mplsOutSegmentTopLabelPtr OBJECT-TYPE + SYNTAX RowPointer MAX-ACCESS read-create STATUS current DESCRIPTION - "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)." + "If the label for this segment cannot be represented + fully within the mplsOutSegmentLabel 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 mplsOutSegmentTopLabel + object SHOULD be set to 0 and ignored. This object + MUST be set to zeroDotZero otherwise." + DEFVAL { zeroDotZero } ::= { mplsOutSegmentEntry 5 } -mplsOutSegmentNextHopIpAddr OBJECT-TYPE +mplsOutSegmentNextHopAddrType OBJECT-TYPE + SYNTAX InetAddressType + MAX-ACCESS read-create + STATUS current + DESCRIPTION + "Indicates the next hop Internet address type. + Only values unknown(0), ipv4(1) or ipv6(2) + have to be supported. + + A value of unknown(0) is allowed only when + the outgoing interface is of type point-to-point. + If any other unsupported values are attempted in a set + operation, the agent MUST return an inconsistentValue + error." + REFERENCE + "See RFC3291." + ::= { mplsOutSegmentEntry 6 } + +mplsOutSegmentNextHopAddr OBJECT-TYPE SYNTAX InetAddress MAX-ACCESS read-create STATUS current DESCRIPTION - "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. + "The internet address of the next hop. The type of + this address is determined by the value of the + mplslOutSegmentNextHopAddrType object. + This object cannot be modified if mplsOutSegmentRowStatus is active(1)." - ::= { mplsOutSegmentEntry 6 } + ::= { mplsOutSegmentEntry 7 } mplsOutSegmentXCIndex OBJECT-TYPE - SYNTAX Unsigned32 (0..4294967295) + SYNTAX MplsIndexType 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 MUST be updated by the agent to reflect + the string containing the single octet 0x00 + 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 MUST be updated by the agent to reflect the value of mplsXCIndex of that cross-connect entry." - ::= { mplsOutSegmentEntry 7 } + ::= { mplsOutSegmentEntry 8 } mplsOutSegmentOwner OBJECT-TYPE SYNTAX MplsOwner MAX-ACCESS read-only STATUS current DESCRIPTION "Denotes the entity which created and is responsible for managing this segment." - ::= { mplsOutSegmentEntry 8 } + ::= { mplsOutSegmentEntry 9 } 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 + MplsTunnelResourceEntry in the MPLS-TE-STD-MIB (RFCnnnn) + + RFC Editor: Please fill in RFC number. + + to indicate which traffic parameter settings for this + segment if it represents an LSP used for a TE tunnel. + + This value may optionally point at an externally defined traffic parameter specification 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. + two or more segments can indicate resource sharing + of such things as LSP queue space, etc. + This object cannot be modified if - mplsOutSegmentRowStatus is active(1)." + mplsOutSegmentRowStatus is active(1). + For entries in this table that + are preserved after a re-boot, the agent MUST ensure + that their integrity be preserved, or this object should + be set to 0.0 if it cannot." DEFVAL { zeroDotZero } - ::= { mplsOutSegmentEntry 9 } + ::= { mplsOutSegmentEntry 10 } mplsOutSegmentRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION - "For creating, modifying, and deleting this row." - ::= { mplsOutSegmentEntry 10 } + "For creating, modifying, and deleting this row. + When a row in this table has a row in the active(1) + state, no objects in this row can be modified + except the mplsOutSegmentRowStatus or + mplsOutSegmentStorageType." + ::= { mplsOutSegmentEntry 11 } mplsOutSegmentStorageType OBJECT-TYPE SYNTAX StorageType - MAX-ACCESS read-create + MAX-ACCESS read-only 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 + object. If this object is set to readOnly(5), and the corresponding LFIB entry is removed, then the agent - must remove this row shortly thereafter." - ::= { mplsOutSegmentEntry 11 } + MUST remove this row shortly thereafter RFC2579. + The agent MUST ensure that this object's value + remains consistent with the associated mplsXCEntry. + Conceptual rows having the value 'permanent' + need not allow write-access to any columnar + objects in the row. + The default value is volatile(2)." + DEFVAL { volatile } + ::= { mplsOutSegmentEntry 12 } -- End of mplsOutSegmentTable --- Out-segment performance table. +-- out-segment performance table. mplsOutSegmentPerfTable OBJECT-TYPE SYNTAX SEQUENCE OF MplsOutSegmentPerfEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table contains statistical information about outgoing segments from an LSR. The counters in this entry should behave in a manner similar to that of the interface." - ::= { mplsLsrObjects 7 } + ::= { mplsLsrObjects 8 } 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. 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, + mplsOutSegmentPerfOctets Counter32, + mplsOutSegmentPerfPackets Counter32, + mplsOutSegmentPerfErrors Counter32, + mplsOutSegmentPerfDiscards Counter32, -- HC counter - mplsOutSegmentHCOctets Counter64, + mplsOutSegmentPerfHCOctets Counter64, mplsOutSegmentPerfDiscontinuityTime TimeStamp } -mplsOutSegmentOctets OBJECT-TYPE +mplsOutSegmentPerfOctets OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "This value contains the total number of octets sent on this segment. It MUST be equal to the least - significant 32 bits of mplsOutSegmentHCOctets." + significant 32 bits of mplsOutSegmentPerfHCOctets + if mplsOutSegmentPerfHCOctets is supported according to + the rules spelled out in RFC2863." ::= { mplsOutSegmentPerfEntry 1 } -mplsOutSegmentPackets OBJECT-TYPE +mplsOutSegmentPerfPackets 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 } -mplsOutSegmentErrors OBJECT-TYPE +mplsOutSegmentPerfErrors OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "Number of packets that could not be sent due to errors on this segment." ::= { mplsOutSegmentPerfEntry 3 } -mplsOutSegmentDiscards OBJECT-TYPE +mplsOutSegmentPerfDiscards OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION - "The number of labeled packets received on this out- - segment, which were chosen to be discarded even - though no errors had been detected to prevent their + "The number of labeled packets attempted to be transmitted + on this out-segment, which were chosen to be discarded + even though no errors had been detected to prevent their being transmitted. One possible reason for discarding such a labeled packet could be to free up buffer space." ::= { mplsOutSegmentPerfEntry 4 } -mplsOutSegmentHCOctets OBJECT-TYPE +mplsOutSegmentPerfHCOctets OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-only STATUS current DESCRIPTION "Total number of octets sent. This is the 64 bit - version of mplsOutSegmentOctets." + version of mplsOutSegmentPerfOctets, + if mplsOutSegmentPerfHCOctets is supported according to + the rules spelled out in RFC2863." ::= { mplsOutSegmentPerfEntry 5 } mplsOutSegmentPerfDiscontinuityTime OBJECT-TYPE SYNTAX TimeStamp MAX-ACCESS read-only STATUS current DESCRIPTION "The value of sysUpTime on the most recent occasion at which any one or more of this segment's Counter32 or Counter64 suffered a discontinuity. If no such discontinuities have occurred since the last re- initialization of the local management subsystem, then this object contains a zero value." ::= { mplsOutSegmentPerfEntry 6 } -- End of mplsOutSegmentPerfTable. -- Cross-connect table. mplsXCIndexNext OBJECT-TYPE - SYNTAX Unsigned32 (0..4294967295) + SYNTAX MplsIndexType MAX-ACCESS read-only STATUS current DESCRIPTION - "This object contains an appropriate value to be used - for mplsXCIndex when creating entries in the - mplsXCTable. The value 0 indicates that no - unassigned entries are available. To obtain the - value of mplsXCIndex for a new entry in the - mplsXCTable, the manager issues a management - protocol retrieval operation to obtain the current - value of mplsXCIndex. After each retrieval - operation, the agent should modify the value to - reflect the next unassigned index. After a manager - retrieves a value the agent will determine through - its local policy when this index value will be made - available for reuse." - ::= { mplsLsrObjects 8 } + "This object contains the next available value to + be used for mplsXCIndex when creating entries in + the mplsXCTable. A special value of the zero length + string indicates that no more new entries can be created + in the relevant table. Agents not allowing managers + to create entries in this table MUST set this value + to the zero length string." + ::= { mplsLsrObjects 9 } mplsXCTable OBJECT-TYPE SYNTAX SEQUENCE OF MplsXCEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table specifies information for switching between LSP segments. It supports point-to-point, point-to-multipoint and multipoint-to-point connections. mplsLabelStackTable specifies the label stack information for a cross-connect LSR and is referred to from mplsXCTable." - ::= { mplsLsrObjects 9 } + ::= { mplsLsrObjects 10 } mplsXCEntry OBJECT-TYPE SYNTAX MplsXCEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A row in this table represents one cross-connect 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, - mplsXCInSegmentIfIndex - - incoming label(s), mplsXCInSegmentLabel - - out-segment index, mplsXCOutSegmentIndex + - in-segment index, mplsXCInSegmentIndex + + - out-segment index, mplsXCOutSegmentIndex LSPs originating at this LSR: These are represented by using the special - combination of values mplsXCInSegmentIfIndex=0 and - mplsXCInSegmentLabel=0 as indexes. In this case - the mplsXCOutSegmentIndex MUST be non-zero. + of value of mplsXCInSegmentIndex set to the + string containing a single octet 0x00. In + this case the mplsXCOutSegmentIndex + MUST not be the string containing a single + octet 0x00. LSPs terminating at this LSR: These are represented by using the special value - mplsXCOutSegmentIndex=0 as index. + mplsXCOutSegmentIndex set to the string containing + a single octet 0x00. Special labels: - Entries indexed by reserved MPLS label values 0 - 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. + Entries indexed by the strings containing the + reserved MPLS label values as a single octet 0x00 + through 0x0f (inclusive) imply LSPs terminating at + this LSR. Note that situations where LSPs are + terminated with incoming label equal to the string + containing a single octet 0x00 can be distinguished + from LSPs originating at this LSR because the + mplsXCOutSegmentIndex equals the string containing the + single octet 0x00. An entry can be created by a network administrator or by an SNMP agent as instructed by an MPLS signaling protocol." - INDEX { - mplsXCIndex, - mplsXCInSegmentIfIndex, - mplsXCInSegmentLabel, - mplsXCOutSegmentIndex - } + INDEX { mplsXCIndex, mplsXCInSegmentIndex, + mplsXCOutSegmentIndex } ::= { mplsXCTable 1 } MplsXCEntry ::= SEQUENCE { - mplsXCIndex Unsigned32, - mplsXCInSegmentIfIndex InterfaceIndexOrZero, - mplsXCInSegmentLabel MplsLabel, - mplsXCOutSegmentIndex Unsigned32, + mplsXCIndex MplsIndexType, + mplsXCInSegmentIndex MplsIndexType, + mplsXCOutSegmentIndex MplsIndexType, mplsXCLspId MplsLSPID, - mplsXCLabelStackIndex Unsigned32, - mplsXCIsPersistent TruthValue, + mplsXCLabelStackIndex MplsIndexType, mplsXCOwner MplsOwner , mplsXCRowStatus RowStatus, mplsXCStorageType StorageType, mplsXCAdminStatus INTEGER, mplsXCOperStatus INTEGER } mplsXCIndex OBJECT-TYPE - SYNTAX Unsigned32 (1..2147483647) + SYNTAX MplsIndexType MAX-ACCESS not-accessible STATUS current DESCRIPTION "Primary index for the conceptual row identifying a - group of cross-connect segments." + group of cross-connect segments. The string + containing a single octet 0x00 is an invalid index." ::= { mplsXCEntry 1 } -mplsXCInSegmentIfIndex OBJECT-TYPE - SYNTAX InterfaceIndexOrZero +mplsXCInSegmentIndex OBJECT-TYPE + SYNTAX MplsIndexType 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." + "Incoming label index. + If this object is set to the string containing + a single octet 0x00, this indicates a special + case outlined in the table's description above. + In this case no corresponding mplsInSegmentEntry + shall exist." ::= { 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) + SYNTAX MplsIndexType MAX-ACCESS not-accessible STATUS current DESCRIPTION "Index of out-segment for LSPs not terminating on - this LSR; zero otherwise." - ::= { mplsXCEntry 4 } + this LSR if not set to the string containing the + single octet 0x00. If the segment identified by this + entry is terminating, then this object MUST be set to + the string containing a single octet 0x00 to indicate + that no corresponding mplsOutSegmentEntry shall + exist." + ::= { mplsXCEntry 3 } 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 5 } + cannot be modified if mplsXCRowStatus is active(1) + except for this object." + ::= { mplsXCEntry 4 } mplsXCLabelStackIndex OBJECT-TYPE - SYNTAX Unsigned32 (0..4294967295) + SYNTAX MplsIndexType 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 + outgoing label. A value of the string containing the + single octet 0x00 indicates that no labels are to + be stacked beneath the top label. + This object cannot be modified if mplsXCRowStatus is active(1)." - ::= { 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 7 } + ::= { mplsXCEntry 5 } mplsXCOwner OBJECT-TYPE 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 8 } + for managing this cross-connect." + ::= { mplsXCEntry 6 } mplsXCRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION - "For creating, modifying, and deleting this row." - ::= { mplsXCEntry 9 } + "For creating, modifying, and deleting this row. + When a row in this table has a row in the active(1) + state, no objects in this row except this object + and the mplsXCStorageType can be modified. + Modification of mplsXCStorateType MUST be done + as specified in the description of that object." + ::= { mplsXCEntry 7 } mplsXCStorageType OBJECT-TYPE SYNTAX StorageType - MAX-ACCESS read-only + MAX-ACCESS read-create STATUS current DESCRIPTION - "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 } + "This variable indicates the storage type for this + object. If this variable is set to readOnly(5), and + the corresponding LFIB entry is removed, then the + agent MUST remove this row shortly thereafter. + + The agent MUST ensure that the associated in and out + segments also have the same StorageType value and are + restored consistently upon system restart. This value + SHOULD be set to permanent(4) if created as a + result of a static LSP configuration. + + Conceptual rows having the value 'permanent' + need not allow write-access to any columnar + objects in the row." + DEFVAL { volatile } + ::= { mplsXCEntry 8 } 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 11 } + DEFVAL { up } + ::= { mplsXCEntry 9 } 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 12 } + ::= { mplsXCEntry 10 } -- End of mplsXCTable -- Label stack table. mplsMaxLabelStackDepth OBJECT-TYPE - SYNTAX Integer32 (1..2147483647) + SYNTAX Unsigned32 (1..2147483647) MAX-ACCESS read-only STATUS current DESCRIPTION "The maximum stack depth supported by this LSR." -::= { mplsLsrObjects 10 } +::= { mplsLsrObjects 11 } mplsLabelStackIndexNext OBJECT-TYPE - SYNTAX Unsigned32 (0..4294967295) + SYNTAX MplsIndexType MAX-ACCESS read-only STATUS current DESCRIPTION - "This object contains an appropriate value to be used - for mplsLabelStackIndex when creating entries in the - mplsLabelStackTable. The value 0 indicates that no - unassigned entries are available. To obtain an - mplsLabelStackIndex value for a new entry, the - manager issues a management protocol retrieval - operation to obtain the current value of this - object. After each retrieval operation, the agent - should modify the value to reflect the next - unassigned index. After a manager retrieves a value - the agent will determine through its local policy - when this index value will be made available for - reuse." -::= { mplsLsrObjects 11 } + "This object contains the next available value to + be used for mplsLabelStackIndex when creating entries + in the mplsLabelStackTable. The special string + containing the single octet 0x00 + indicates that no more new entries can be created + in the relevant table. Agents not allowing managers + to create entries in this table MUST set this value + to the string containing the single octet 0x00." +::= { mplsLsrObjects 12 } mplsLabelStackTable OBJECT-TYPE SYNTAX SEQUENCE OF MplsLabelStackEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table specifies the label stack to be pushed onto a packet, beneath the top label. Entries into this table are referred to from mplsXCTable." - ::= { mplsLsrObjects 12 } + ::= { mplsLsrObjects 13 } mplsLabelStackEntry OBJECT-TYPE SYNTAX MplsLabelStackEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry in this table represents one label which is to be pushed onto an outgoing packet, beneath the top label. An entry can be created by a network administrator or by an SNMP agent as instructed by an MPLS signaling protocol." INDEX { mplsLabelStackIndex, mplsLabelStackLabelIndex } ::= { mplsLabelStackTable 1 } MplsLabelStackEntry ::= SEQUENCE { - mplsLabelStackIndex Unsigned32, + mplsLabelStackIndex MplsIndexType, mplsLabelStackLabelIndex Unsigned32, mplsLabelStackLabel MplsLabel, + mplsLabelStackLabelPtr RowPointer, mplsLabelStackRowStatus RowStatus, mplsLabelStackStorageType StorageType } mplsLabelStackIndex OBJECT-TYPE - SYNTAX Unsigned32 (1..2147483647) + SYNTAX MplsIndexType MAX-ACCESS not-accessible STATUS current DESCRIPTION "Primary index for this row identifying a stack of labels to be pushed on an outgoing packet, beneath - the top label." + the top label. An index containing the string with + a single octet 0x00 MUST not be used." ::= { mplsLabelStackEntry 1 } mplsLabelStackLabelIndex OBJECT-TYPE SYNTAX Unsigned32 (1..2147483647) MAX-ACCESS not-accessible STATUS current DESCRIPTION "Secondary index for this row identifying one label of the stack. Note that an entry with a smaller mplsLabelStackLabelIndex would refer to a label @@ -1804,184 +1913,107 @@ ::= { mplsLabelStackEntry 2 } mplsLabelStackLabel OBJECT-TYPE SYNTAX MplsLabel MAX-ACCESS read-create STATUS current DESCRIPTION "The label to pushed." ::= { mplsLabelStackEntry 3 } -mplsLabelStackRowStatus OBJECT-TYPE - SYNTAX RowStatus +mplsLabelStackLabelPtr OBJECT-TYPE + SYNTAX RowPointer MAX-ACCESS read-create STATUS current DESCRIPTION - "For creating, modifying, and deleting this row." + "If the label for this segment cannot be represented + fully within the mplsLabelStackLabel 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 mplsLabelStackLabel + object SHOULD be set to 0 and ignored. This object + MUST be set to zeroDotZero otherwise." + DEFVAL { zeroDotZero } ::= { mplsLabelStackEntry 4 } -mplsLabelStackStorageType OBJECT-TYPE - SYNTAX StorageType - MAX-ACCESS read-create - STATUS current - DESCRIPTION - " 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 - DESCRIPTION - "This object contains an appropriate value which will - be used for mplsTrafficParamIndex when creating - entries in the mplsTrafficParamTable. The value 0 - indicates that no unassigned entries are available. - To obtain the mplsTrafficParamIndex value for a new - entry, the manager issues a management protocol - retrieval operation to obtain the current value of - this object. After each retrieval operation, the - agent should modify the value to reflect the next - unassigned index. After a manager retrieves a value - the agent will determine through its local policy - when this index value will be made available for - reuse." - ::= { mplsLsrObjects 13 } - -mplsTrafficParamTable OBJECT-TYPE - SYNTAX SEQUENCE OF MplsTrafficParamEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "This table specifies the Traffic Parameter objects - for in and out-segments." - ::= { mplsLsrObjects 14 } - -mplsTrafficParamEntry OBJECT-TYPE - SYNTAX MplsTrafficParamEntry - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "An entry in this table represents the TrafficParam - objects for one or more in or out segments. A - single entry can be pointed to by multiple segments - indicating resource sharing." - INDEX { mplsTrafficParamIndex } - ::= { mplsTrafficParamTable 1 } - -MplsTrafficParamEntry ::= SEQUENCE { - mplsTrafficParamIndex Unsigned32, - mplsTrafficParamMaxRate MplsBitRate, - mplsTrafficParamMeanRate MplsBitRate, - mplsTrafficParamMaxBurstSize MplsBurstSize, - mplsTrafficParamRowStatus RowStatus, - mplsTrafficParamStorageType StorageType - } - -mplsTrafficParamIndex OBJECT-TYPE - SYNTAX Unsigned32 (1..2147483647) - MAX-ACCESS not-accessible - STATUS current - DESCRIPTION - "Uniquely identifies this row of the table. Note - that zero represents an invalid index." - ::= { mplsTrafficParamEntry 1 } - -mplsTrafficParamMaxRate OBJECT-TYPE - SYNTAX MplsBitRate - UNITS "kilobits per second" - MAX-ACCESS read-create - STATUS current - DESCRIPTION - "Maximum rate in kilobits/second." - ::= { mplsTrafficParamEntry 2 } - -mplsTrafficParamMeanRate OBJECT-TYPE - SYNTAX MplsBitRate - UNITS "kilobits per second" - MAX-ACCESS read-create - STATUS current - DESCRIPTION - "Mean rate in kilobits/second." - ::= { mplsTrafficParamEntry 3 } - -mplsTrafficParamMaxBurstSize OBJECT-TYPE - SYNTAX MplsBurstSize - UNITS "bytes" - MAX-ACCESS read-create - STATUS current - DESCRIPTION - "Maximum burst size in bytes." - ::= { mplsTrafficParamEntry 4 } - -mplsTrafficParamRowStatus OBJECT-TYPE +mplsLabelStackRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION - "For creating, modifying, and deleting this row." - ::= { mplsTrafficParamEntry 5 } + "For creating, modifying, and deleting this row. -mplsTrafficParamStorageType OBJECT-TYPE + When a row in this table has a row in the active(1) + state, no objects in this row except this object + and the mplsLabelStackStorageType can be modified." + ::= { mplsLabelStackEntry 5 } + +mplsLabelStackStorageType OBJECT-TYPE SYNTAX StorageType MAX-ACCESS read-create STATUS current DESCRIPTION - " 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 } + "This variable indicates the storage type for this + object. This object cannot be modified if + mplsLabelStackRowStatus is active(1). If this + variable is set to readOnly(5), and the + corresponding LFIB entry is removed, then the agent + MUST remove this row shortly thereafter RFC2579. + No objects are required to be writable for + rows in this table with this object set to + permanent(4). The default value is volatile(2). + The agent MUST ensure that all related entries + in this table retain the same value for this + object. Agents MUST ensure that the storage type + for all entries related to a particular mplsXCEntry + retain the same value for this object as the + mplsXCEntry's StorageType." + DEFVAL { volatile } + ::= { mplsLabelStackEntry 6 } --- End of mplsTrafficParamTable +-- End of mplsLabelStackTable -- Notification Configuration 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." + REFERENCE + "See also RFC3413 for explanation that + notifications are under the ultimate control of the + MIB modules in this document." DEFVAL { false } - ::= { mplsLsrObjects 15 } + ::= { mplsLsrObjects 14 } -- Cross-connect. mplsXCUp NOTIFICATION-TYPE - OBJECTS { - mplsXCOperStatus, -- start of range + 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 entries in mplsXCTable are about to enter the up(1) - state from some other. The included values of + state from some other state. The included values of mplsXCOperStatus MUST both be set equal to this - other state. The two instances of mplsXCOperStatus - in this notification indicate the range of indexes - that are affected. Note that all the indexes of the - two ends of the range can be derived from the + new state (i.e: up(1)). The two instances of + mplsXCOperStatus in this notification indicate the range + of indexes that are affected. Note that all the indexes + of the two ends of the range can be derived from the 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." @@ -1990,602 +2022,579 @@ 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 entries in mplsXCTable are about to enter the - down(2) state from some other. The included values + down(2) state from some other state. The included values of mplsXCOperStatus MUST both be set equal to this - other state. The two instances of mplsXCOperStatus + down(2) state. The two instances of mplsXCOperStatus in this notification indicate the range of indexes that are affected. Note that all the indexes of the two ends of the range can be derived from the 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." + mplsXCOperStatus objects MUST be identical." ::= { mplsLsrNotifications 2 } -- End of notifications. -- Module compliance. mplsLsrGroups OBJECT IDENTIFIER ::= { mplsLsrConformance 1 } mplsLsrCompliances OBJECT IDENTIFIER ::= { mplsLsrConformance 2 } -mplsLsrModuleCompliance MODULE-COMPLIANCE +-- Compliance requirement for fully compliant implementations. +mplsLsrModuleFullCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION - "Compliance statement for agents that support the - MPLS-LSR-MIB." - MODULE -- this module + "Compliance statement for agents that provide full + support for MPLS-LSR-STD-MIB." - -- 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. + MODULE IF-MIB -- The Interfaces Group MIB, RFC 2863. + MANDATORY-GROUPS { + ifGeneralInformationGroup, + ifCounterDiscontinuityGroup + } + MODULE -- This module. MANDATORY-GROUPS { mplsInterfaceGroup, mplsInSegmentGroup, mplsOutSegmentGroup, mplsXCGroup, mplsPerfGroup, - mplsSegmentDiscontinuityGroup + mplsLsrNotificationGroup + } + + ::= { mplsLsrCompliances 1 } + +-- Compliance requirement for read-only implementations. +mplsLsrModuleReadOnlyCompliance MODULE-COMPLIANCE + STATUS current + DESCRIPTION + "Compliance requirement for implementations that only + provide read-only support for MPLS-LSR-STD-MIB. Such + devices can then be monitored but cannot be configured + using this MIB modules." + + MODULE IF-MIB -- The interfaces Group MIB, RFC 2863 + MANDATORY-GROUPS { + ifGeneralInformationGroup, + ifCounterDiscontinuityGroup } + MODULE -- This module + MANDATORY-GROUPS { + mplsInterfaceGroup, + mplsInSegmentGroup, + mplsOutSegmentGroup, + mplsXCGroup, + mplsPerfGroup + } + + GROUP mplsLabelStackGroup + DESCRIPTION + "This group is only mandatory for LSRs + that wish to support the modification + of LSP label stacks." + GROUP mplsHCInSegmentPerfGroup DESCRIPTION "This group is mandatory for those in-segment entries for which the object mplsInSegmentOutOctets wraps around too - quickly." + quickly based on the criteria specified in + RFC2863 for high-capacity counters." GROUP mplsHCOutSegmentPerfGroup DESCRIPTION "This group is mandatory for those out-segment entries for which the object - mplsOutSegmentOctets wraps around too quickly." - - GROUP mplsTrafficParamGroup - DESCRIPTION - "This group is mandatory for those LSRs that - support QoS resource reservation." - - -- Depending on whether the device implements - -- persistent cross-connects or not one of the - -- following two groups is mandatory. - - GROUP mplsXCIsPersistentGroup - DESCRIPTION - "This group is mandatory for devices which - support persistent cross-connects. The - following constraints apply: mplsXCIsPersistent - must at least be read-only returning true(2)." - - GROUP mplsXCIsNotPersistentGroup - DESCRIPTION - "This group is mandatory for devices which - support non-persistent cross-connects. The - following constraints apply: mplsXCIsPersistent - must at least be read-only returning false(1)." + mplsOutSegmentPerfOctets wraps around too quickly + based on the criteria specified in RFC2863 + for high-capacity counters." -- mplsInSegmentTable - - OBJECT mplsInSegmentXCIndex + OBJECT mplsInSegmentLabel + MIN-ACCESS read-only DESCRIPTION "Write access is not required." + OBJECT mplsInSegmentLabelPtr + MIN-ACCESS read-only + DESCRIPTION + "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." + SHOULD be set to 1 if it is read-only." OBJECT mplsInSegmentAddrFamily DESCRIPTION "Write access is not required. A value of other(0) should be supported because there may be cases where the agent may not know about or support any address types." + OBJECT mplsInSegmentRowStatus + SYNTAX RowStatus { active(1), notInService(2) } + WRITE-SYNTAX RowStatus { notInService(2), createAndGo(4), + destroy(6) } + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + OBJECT mplsInSegmentStorageType - SYNTAX INTEGER { other(1) } + MIN-ACCESS read-only DESCRIPTION - "Only other(1) needs to be supported." + "Only readOnly(5) needs to be supported." -- mplsOutSegmentTable - - OBJECT mplsOutSegmentIfIndex + OBJECT mplsOutSegmentInterface MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT mplsOutSegmentPushTopLabel MIN-ACCESS read-only DESCRIPTION "Write access is not required." + OBJECT mplsOutSegmentTopLabel MIN-ACCESS read-only DESCRIPTION "Write access is not required." - OBJECT mplsOutSegmentNextHopIpAddrType + OBJECT mplsOutSegmentTopLabelPtr + MIN-ACCESS read-only + DESCRIPTION + "Write access is not required." + + OBJECT mplsOutSegmentNextHopAddrType SYNTAX InetAddressType { unknown(0), ipv4(1), ipv6(2) } MIN-ACCESS read-only DESCRIPTION - "An implementation is only required to support - ipv4(1) and ipv6(2)." + "Write access is not required. Only + IPv4(1), IPv6(2) and unknown(3) sizes + are required." - OBJECT mplsOutSegmentNextHopIpAddr + OBJECT mplsOutSegmentNextHopAddr SYNTAX InetAddress (SIZE(0|4|16)) MIN-ACCESS read-only DESCRIPTION - "An implementation is only required to support - IPv4 and globally unique IPv6 addresses. Write - access is not required." + "An implementation is only required to support unknown(0), + IPv4(1) and IPv6(2) addresses. Write access is not + required." OBJECT mplsOutSegmentRowStatus - SYNTAX INTEGER { - active(1), - notInService(2), - createAndGo(4), - destroy(6) - } + SYNTAX RowStatus { active(1), notInService(2) } + WRITE-SYNTAX RowStatus { notInService(2), createAndGo(4), + destroy(6) } MIN-ACCESS read-only DESCRIPTION - "The notReady(3) and createAndWait(5) states need - not be supported." + "Read only support is required." + OBJECT mplsOutSegmentStorageType - SYNTAX INTEGER { other(1) } + MIN-ACCESS read-only DESCRIPTION - "Only other(1) needs to be supported." + "Only readOnly(5) needs to be supported." -- mplsXCTable - OBJECT mplsXCLabelStackIndex MIN-ACCESS read-only DESCRIPTION "Write access is not required." - OBJECT mplsXCIsPersistent + OBJECT mplsXCAdminStatus + MIN-ACCESS read-only + DESCRIPTION + "Read only support is required." + + OBJECT mplsXCOperStatus + MIN-ACCESS read-only + DESCRIPTION + "Read only support is required." + + OBJECT mplsXCRowStatus + SYNTAX RowStatus { active(1), notInService(2) } + WRITE-SYNTAX RowStatus { notInService(2), createAndGo(4), + destroy(6) } + MIN-ACCESS read-only + DESCRIPTION + "Read only support required." + OBJECT mplsXCStorageType MIN-ACCESS read-only DESCRIPTION "Write access is not required." - OBJECT mplsXCAdminStatus - SYNTAX INTEGER { up(1), down(2) } + OBJECT mplsLabelStackLabel MIN-ACCESS read-only DESCRIPTION - "A value of testing(3) need not be supported." + "Write access is not required." - OBJECT mplsXCOperStatus - SYNTAX INTEGER { up(1), down(2) } + OBJECT mplsLabelStackLabelPtr + MIN-ACCESS read-only DESCRIPTION - "Only up(1) and down(2) need to be supported." + "Write access is not required." - OBJECT mplsXCRowStatus - SYNTAX INTEGER { - active(1), - notInService(2), - createAndGo(4), - destroy(6) - } + OBJECT mplsLabelStackRowStatus + SYNTAX RowStatus { active(1), notInService(2) } + WRITE-SYNTAX RowStatus { notInService(2), createAndGo(4), + destroy(6) } MIN-ACCESS read-only DESCRIPTION - "The notReady(3) and createAndWait(5) states need - not be supported." + "Write access is not required." - OBJECT mplsXCStorageType - SYNTAX INTEGER { other(1) } + OBJECT mplsLabelStackStorageType + MIN-ACCESS read-only DESCRIPTION - "Only other(1) needs to be supported." + "Write access is not required." - ::= { mplsLsrCompliances 1 } + ::= { mplsLsrCompliances 2 } -- Units of conformance. mplsInterfaceGroup OBJECT-GROUP OBJECTS { mplsInterfaceLabelMinIn, mplsInterfaceLabelMaxIn, mplsInterfaceLabelMinOut, mplsInterfaceLabelMaxOut, mplsInterfaceTotalBandwidth, mplsInterfaceAvailableBandwidth, mplsInterfaceLabelParticipationType } STATUS current DESCRIPTION "Collection of objects needed for MPLS interface - configuration and performance information." + and interface performance information." ::= { mplsLsrGroups 1 } mplsInSegmentGroup OBJECT-GROUP OBJECTS { + mplsInSegmentIndexNext, + mplsInSegmentInterface, + mplsInSegmentLabel, + mplsInSegmentLabelPtr, mplsInSegmentNPop, mplsInSegmentAddrFamily, mplsInSegmentXCIndex, - mplsInSegmentOctets, - mplsInSegmentDiscards, mplsInSegmentOwner, mplsInSegmentRowStatus, mplsInSegmentStorageType, mplsInSegmentTrafficParamPtr } STATUS current DESCRIPTION "Collection of objects needed to implement an in- segment." ::= { mplsLsrGroups 2 } mplsOutSegmentGroup OBJECT-GROUP OBJECTS { mplsOutSegmentIndexNext, - mplsOutSegmentIfIndex, + mplsOutSegmentInterface, mplsOutSegmentPushTopLabel, mplsOutSegmentTopLabel, - mplsOutSegmentNextHopIpAddrType, - mplsOutSegmentNextHopIpAddr, + mplsOutSegmentTopLabelPtr, + mplsOutSegmentNextHopAddrType, + mplsOutSegmentNextHopAddr, mplsOutSegmentXCIndex, mplsOutSegmentOwner, - mplsOutSegmentOctets, - mplsOutSegmentDiscards, - mplsOutSegmentErrors, + mplsOutSegmentPerfOctets, + mplsOutSegmentPerfDiscards, + mplsOutSegmentPerfErrors, mplsOutSegmentRowStatus, mplsOutSegmentStorageType, mplsOutSegmentTrafficParamPtr } STATUS current DESCRIPTION "Collection of objects needed to implement an out- segment." ::= { mplsLsrGroups 3 } mplsXCGroup OBJECT-GROUP OBJECTS { mplsXCIndexNext, + mplsXCLspId, mplsXCLabelStackIndex, mplsXCOwner, + mplsXCStorageType, mplsXCAdminStatus, mplsXCOperStatus, mplsXCRowStatus, - mplsXCNotificationsEnable, - mplsXCStorageType + mplsXCNotificationsEnable } STATUS current DESCRIPTION "Collection of objects needed to implement a cross-connect entry." ::= { mplsLsrGroups 4 } -mplsXCOptionalGroup OBJECT-GROUP - OBJECTS { mplsXCLspId } - STATUS current - DESCRIPTION - "Collection of optional objects for implementing - a cross-connect entry." - ::= { mplsLsrGroups 5 } - mplsPerfGroup OBJECT-GROUP OBJECTS { - mplsInSegmentOctets, - mplsInSegmentPackets, - mplsInSegmentErrors, - mplsInSegmentDiscards, - mplsOutSegmentOctets, - mplsOutSegmentPackets, - mplsOutSegmentDiscards, - mplsInterfaceInLabelsUsed, - mplsInterfaceLabelLookupFailures , - mplsInterfaceOutFragments, - mplsInterfaceOutLabelsUsed + mplsInSegmentPerfOctets, + mplsInSegmentPerfPackets, + mplsInSegmentPerfErrors, + mplsInSegmentPerfDiscards, + mplsInSegmentPerfDiscontinuityTime, + mplsOutSegmentPerfOctets, + mplsOutSegmentPerfPackets, + mplsOutSegmentPerfDiscards, + mplsOutSegmentPerfDiscontinuityTime, + mplsInterfacePerfInLabelsInUse, + mplsInterfacePerfInLabelLookupFailures, + mplsInterfacePerfOutFragmentedPkts, + mplsInterfacePerfOutLabelsInUse } STATUS current DESCRIPTION "Collection of objects providing performance information about an LSR." - ::= { mplsLsrGroups 6 } + ::= { mplsLsrGroups 5 } mplsHCInSegmentPerfGroup OBJECT-GROUP - OBJECTS { mplsInSegmentHCOctets } + OBJECTS { mplsInSegmentPerfHCOctets } STATUS current DESCRIPTION "Object(s) providing performance information specific to out-segments for which the object mplsInterfaceInOctets wraps around too quickly." - ::= { mplsLsrGroups 7 } + ::= { mplsLsrGroups 6 } mplsHCOutSegmentPerfGroup OBJECT-GROUP - OBJECTS { mplsOutSegmentHCOctets } + OBJECTS { mplsOutSegmentPerfHCOctets } STATUS current DESCRIPTION "Object(s) providing performance information specific to out-segments for which the object mplsInterfaceOutOctets wraps around too quickly." - ::= { mplsLsrGroups 8 } - -mplsTrafficParamGroup OBJECT-GROUP - OBJECTS { - mplsTrafficParamIndexNext, - mplsTrafficParamMaxRate, - mplsTrafficParamMeanRate, - mplsTrafficParamMaxBurstSize, - mplsTrafficParamRowStatus, - mplsTrafficParamStorageType - } - STATUS current - DESCRIPTION - "Object(s) required for supporting QoS resource - reservation." - ::= { mplsLsrGroups 9 } - -mplsXCIsPersistentGroup OBJECT-GROUP - OBJECTS { mplsXCIsPersistent } - STATUS current - DESCRIPTION - "Objects needed to support persistent cross- - connects." - ::= { mplsLsrGroups 10 } - -mplsXCIsNotPersistentGroup OBJECT-GROUP - OBJECTS { mplsXCIsPersistent } - STATUS current - DESCRIPTION - "Objects needed to support non-persistent cross- - connects." - ::= { mplsLsrGroups 11 } + ::= { mplsLsrGroups 7 } mplsLabelStackGroup OBJECT-GROUP OBJECTS { mplsLabelStackLabel, + mplsLabelStackLabelPtr, mplsLabelStackRowStatus, mplsLabelStackStorageType, mplsMaxLabelStackDepth, mplsLabelStackIndexNext } STATUS current DESCRIPTION "Objects needed to support label stacking which is an optional feature for an LSR." - ::= { mplsLsrGroups 12 } - -mplsSegmentDiscontinuityGroup OBJECT-GROUP - OBJECTS { - mplsInSegmentPerfDiscontinuityTime, - mplsOutSegmentPerfDiscontinuityTime - } - STATUS current - DESCRIPTION - " A collection of objects providing information - specific to segment discontinuities.." - ::= { mplsLsrGroups 13 } + ::= { mplsLsrGroups 8 } mplsLsrNotificationGroup NOTIFICATION-GROUP NOTIFICATIONS { mplsXCUp, mplsXCDown } STATUS current DESCRIPTION "Set of notifications implemented in this module. None is mandatory." - ::= { mplsLsrGroups 14 } - + ::= { mplsLsrGroups 9 } END -12. Security Considerations - - It is clear that this MIB is potentially useful for monitoring of - MPLS LSRs. This MIB can also be used for configuration of certain - objects, and anything that can be configured can be incorrectly - configured, with potentially disastrous results. +11. Security Considerations - At this writing, no security holes have been identified beyond - those that SNMP Security [RFC2571] is itself intended to address. - These relate to primarily controlled access to sensitive - information and the ability to configure a device - or which might - result from operator error, which is beyond the scope of any - security architecture. + It is clear that this MIB module is potentially useful for + monitoring of MPLS LSRs. This MIB can also be used for + configuration of certain objects, and anything that can be + configured can be incorrectly configured, with potentially + disastrous results. - There are a number of management objects defined in this MIB which - have a MAX-ACCESS clause of read-write and/or read-create. Such + There are a number of management objects defined in this MIB module + with a MAX-ACCESS clause of read-write and/or read-create. Such objects may be considered sensitive or vulnerable in some network environments. The support for SET operations in a non-secure - environment without proper protection can have a negative effect - on network operations. The use of SNMP Version 3 is recommended - over prior versions, for configuration control, as its security - model is improved. - - SNMPv1 or SNMPv2 are by themselves not a secure environment. Even - if the network itself is secure (for example by using IPSec - [RFC2401]), there is no control as to who on the secure network is - allowed to access and GET/SET (read/change/create/delete) the - objects in this MIB. It is recommended that the implementers - consider the security features as provided by the SNMPv3 - framework. Specifically, the use of the User-based Security Model - [RFC2574] and the View-based Access Control [RFC2575] is - recommended. It is then a customer/user responsibility to ensure - that the SNMP entity giving access to an instance of this MIB is - properly configured to give access to the objects only to those - principals (users) that have legitimate rights to indeed GET or - SET (change/create/delete) them. - - There are a number of managed objects in this MIB that may contain - information that may be sensitive from a business perspective, in - that they represent a customer's interface to the MPLS network. - Allowing uncontrolled access to these objects could result in - malicious and unwanted disruptions of network traffic or incorrect - configurations for these customers. There are no objects that are - particularly sensitive in their own right, such as passwords or - monetary amounts. - -13. Acknowledgments - - We wish to thank Ron Bonica, Adrian Farrel, Eric Gray, Tim - Mancour, Keith McCloghrie, Bala Rajagopalan, Dan Tappan, Vasanthi - Thirumalai, Joseph Benoit and Joan Cucchiara. + environment without proper protection can have a negative effect on + network operations. These are the tables and objects and their + sensitivity/vulnerability: -14. References + o the mplsLsrInSegmentTable, mplsLsrOutSegmentTable, + mplsXCTable, mplsOutSegmentPerfTable, mplsInterfacePerfTable, + and mplsInSegmentPerfTable collectively contain objects to + provision MPLS interfaces, LSPs and their associated parameters + on an Label Switching Router (LSR). Unauthorized access to + objects in these tables, could result in disruption of traffic + on the network. This is especially true if an LSP has been + established. The use of stronger mechanisms such as SNMPv3 + security should be considered where possible. Specifically, + SNMPv3 VACM and USM MUST be used with any v3 agent which + implements this MIB module. Administrators should consider + whether read access to these objects should be allowed, + since read access may be undesirable under certain circumstances. - [Assigned] Reynolds, J., and J. Postel, "Assigned Numbers", - RFC 1700, October 1994. See also: - http://www.isi.edu/in-notes/iana/assignments/smi- - numbers + Some of the readable objects in this MIB module "i.e., objects with a + MAX-ACCESS other than not-accessible" may be considered sensitive or + vulnerable in some network environments. It is thus important to + control even GET and/or NOTIFY access to these objects and possibly + to even encrypt the values of these objects when sending them over + the network via SNMP. These are the tables and objects and their + sensitivity/vulnerability: - [IANAFamily] Internet Assigned Numbers Authority (IANA), ADDRESS - FAMILY NUMBERS, (http://www.isi.edu/in- - notes/iana/assignements/address-family-numbers), - for MIB see: - ftp://ftp.isi.edu/mib/iana.mib/ianaaddressfamilynum - bers.mib + o the mplsLsrInSegmentTable, mplsLsrOutSegmentTable, + mplsXCTable, mplsOutSegmentPerfTable, mplsInterfacePerfTable, + and mplsInSegmentPerfTable collectively show the LSP network + topology and its performance characteristics. + If an Administrator does not want to reveal this + information, then these tables should be + considered sensitive/vulnerable. - [TCMIB] Nadeau, T., Cucchiara, J., Srinivasan, C, - Viswanathan, A. and H. Sjostrand, "Definition of - Textual Conventions and OBJECT-IDENTITIES for Multi- - Protocol Label Switching (MPLS) Management", - Internet Draft , - January 2002. + SNMP versions prior to SNMPv3 did not include adequate security. + Even if the network itself is secure "for example by using IPSec", + even then, there is no control as to who on the secure network is + allowed to access and GET/SET "read/change/create/delete" the objects + in this MIB module. - [RFC1155] Rose, M., and K. McCloghrie, "Structure and - Identification of Management Information for TCP/IP- - based Internets", RFC 1155, May 1990. + It is RECOMMENDED that implementers consider the security features as + provided by the SNMPv3 framework "see [RFC3410], section 8", + including full support for the SNMPv3 cryptographic mechanisms "for + authentication and privacy". - [RFC1157] Case, J., Fedor, M., Schoffstall, M., and J. Davin, - "Simple Network Management Protocol", RFC 1157, May - 1990. + Further, deployment of SNMP versions prior to SNMPv3 is NOT + RECOMMENDED. Instead, it is RECOMMENDED to deploy SNMPv3 and to + enable cryptographic security. It is then a customer/operator + responsibility to ensure that the SNMP entity giving access to an + instance of this MIB module, is properly configured to give access to + the objects only to those principals "users" that have legitimate - [RFC1215] M. Rose, "A Convention for Defining Traps for use - with the SNMP", RFC 1215, March 1991. +12. Acknowledgments - [RFC1901] Case, J., McCloghrie, K., Rose, M., and S. - Waldbusser, "Introduction to Community-based - SNMPv2", RFC 1901, January 1996. + We wish to thank Ron Bonica, Adrian Farrel, Eric Gray, Tim + Mancour, Keith McCloghrie, Bala Rajagopalan, Dan Tappan, Vasanthi + Thirumalai, Joseph Benoit, Mike Piecuch, Joan Cucchiara. + A special thanks to Bert Wijnen and Mike MacFaden for really + getting the MIB module into shape. - [RFC1905] Case, J., McCloghrie, K., Rose, M., and S. - Waldbusser, "Protocol Operations for Version 2 of - the Simple Network Management Protocol (SNMPv2)", - RFC 1905, January 1996. +13. References - [RFC1906] Case, J., McCloghrie, K., Rose, M., and S. - Waldbusser, "Transport Mappings for Version 2 of - the Simple Network Management Protocol (SNMPv2)", - RFC 1906, January 1996. +13.1. Normative References - [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate - Requirement Levels", BCP 14, RFC 2119, March 1997. + [RFC2119] S. Bradner, "Key Words for use in RFCs to Indicate + Requirement Levels", RFC 2119, BCP 14, March 1997. - [RFC2863] McCloghrie, K., and F. Kastenholtz, "The Interfaces - Group MIB using SMIv2", RFC 2863, June 2000 + [RFC2515] Tesink, K., et al., "Definitions of Managed Objects + for ATM Management", RFC 2515, February 1999. - [RFC2401] Kent, S., and Atkinson, R., "Security Architecture - for the Internet Protocol", RFC 2401, November - 1998. + [RFC2578] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, + J., Rose, M., and S. Waldbusser, "Structure of + Management Information Version 2 (SMIv2)", STD 58, RFC + 2578, April 1999. - [RFC2515] Tesink, K., "Definitions of Managed Objects for ATM - Management", RFC 2515, Feb. 1999 + [RFC2579] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, + J., Rose, M., and S. Waldbusser, "Textual Conventions + for SMIv2", STD 58, RFC 2579, April 1999. - [RFC2570] Case, J., Mundy, R., Partain, D., and B. Stewart, - "Introduction to Version 3 of the Internet-standard - Network Management Framework", RFC 2570, April - 1999. + [RFC2580] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, + J., Rose, M., and S. Waldbusser, "Conformance + Statements for SMIv2", STD 58, RFC 2580, April 1999. - [RFC2571] Harrington, D., Presuhn, R., and B. Wijnen, "An - Architecture for Describing SNMP Management - Frameworks", RFC 2571, April 1999. + [RFC2863] McCloghrie, K. and F. Kastenholz, "The Interfaces + Group MIB", RFC 2863, June 2000. - [RFC2572] Case, J., Harrington D., Presuhn R., and B. Wijnen, - "Message Processing and Dispatching for the Simple - Network Management Protocol (SNMP)", RFC 2572, - April 1999. + [RFC3031] Rosen, E., Viswanathan, A., and R. Callon, + "Multiprotocol Label Switching Architecture", RFC + 3031, January 2001. - [RFC2573] Levi, D., Meyer, P., and B. Stewart, "SNMPv3 - Applications", RFC 2573, April 1999. + [RFC3291] Daniele, M., Haberman, B., Routhier., S., + Schoenwaelder., J., "Textual Conventions + for Internet Network Addresses", RFC3291, + May 2002. - [RFC2574] Blumenthal, U., and B. Wijnen, "User-based Security - Model (USM) for version 3 of the Simple Network - Management Protocol (SNMPv3)", RFC 2574, April - 1999. + [RFC3411] Harrington, D., Presuhn, R., and B. Wijnen, "An + Architecture for Describing Simple Network Management + Protocol (SNMP) Management Frameworks", RFC 3411, + December 2002. - [RFC2575] Wijnen, B., Presuhn, R., and K. McCloghrie, "View- - based Access Control Model (VACM) for the Simple - Network Management Protocol (SNMP)", RFC 2575, - April 1999. + [TEMIB] Srinivasan, C., Viswanathan, A. and Nadeau, T., "MPLS + Traffic Engineering Management Information Base ", + Internet Draft , + November 2002. - [RFC2578] McCloghrie, K., Perkins, D., Schoenwaelder, J., - Case, J., Rose, M., and S. Waldbusser, "Structure - of Management Information Version 2 (SMIv2)", STD - 58, RFC 2578, April 1999. + [TCMIB] Nadeau, T., Cucchiara, J., Srinivasan, C., + Viswanathan, A., Sjostrand, H. and K. Kompella, + "Definition of Textual Conventions and OBJECT- + IDENTITIES for Multi-Protocol Label Switching (MPLS) + Management", Internet Draft , April 2003. - [RFC2579] McCloghrie, K., Perkins, D., Schoenwaelder, J., - Case, J., Rose, M., and S. Waldbusser, "Textual - Conventions for SMIv2", STD 58, RFC 2579, April - 1999. + [IANAFamily] Internet Assigned Numbers Authority (IANA), ADDRESS + FAMILY NUMBERS, (http://www.isi.edu/in- + notes/iana/assignements/address-family-numbers), + for MIB see: + ftp://ftp.isi.edu/mib/iana.mib/ianaaddressfamilynum + bers.mib - [RFC2702] Awduche, D., Malcolm, J., Agogbua, J., O'Dell, M., - and J. McManus, "Requirements for Traffic - Engineering Over MPLS", RFC 2702, September 1999. +13.2. Informative References - [RFC2580] McCloghrie, K., Perkins, D., Schoenwaelder, J., - Case, J., Rose, M., and S. Waldbusser, "Conformance - Statements for SMIv2", STD 58, RFC 2580, April - 1999. + [RFC2026] S. Bradner, "The Internet Standards Process -- + Revision 3", RFC 2026, October 1996. - [RFC3031] Rosen, E., Viswanathan, A., and R. Callon, - "Multiprotocol Label Switching Architecture", RFC - 3031, January 2001. + [RFC3413] Levi, D., Meyer, P., Stewart, B., + "SNMP Applications", RFC 3413, December 2002. - [RFC3032] Rosen, E., Rekhter, Y., Tappan, D., Farinacci, D., - Federokow, G., Li, T., and A. Conta, "MPLS Label - Stack Encoding", RFC 3032, January 2001. + [RFC3410] Case, J., Mundy, R., Partain, D. and B. Stewart, + "Introduction and Applicability Statements for + Internet-Standard Management Framework", RFC 3410, + December 2002. -15. Authors' Addresses +14. Authors' Addresses Cheenu Srinivasan Parama Networks, Inc. 1030 Broad Street Shrewsbury, NJ 07702 Phone: +1-732-544-9120 x731 Email: cheenu@paramanet.com + Arun Viswanathan Force10 Networks, Inc. 1440 McCarthy Blvd Milpitas, CA 95035 Phone: +1-408-571-3516 Email: arun@force10networks.com Thomas D. Nadeau Cisco Systems, Inc. - 250 Apollo Drive - Chelmsford, MA 01824 - Phone: +1-978-244-3051 + + 300 Beaver Brook Road + Boxboro, MA 01719 + +1-978-936-1470 Email: tnadeau@cisco.com -16. Full Copyright Statement +15. Full Copyright Statement - Copyright (C) The Internet Society (2001). All Rights Reserved. + Copyright (C) The Internet Society (2003). All Rights Reserved. This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed @@ -2595,10 +2604,31 @@ languages other than English. The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns. This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + +16. Intellectual Property Notice + + The IETF takes no position regarding the validity or scope of any + intellectual property or other rights that might be claimed to + pertain to the implementation or use of the technology described in + this document or the extent to which any license under such rights + might or might not be available; neither does it represent that it + has made any effort to identify any such rights. Information on the + IETF's procedures with respect to rights in standards-track and + standards-related documentation can be found in BCP-11 [RFC2028]. + Copies of claims of rights made available for publication and any + assurances of licenses to be made available, or the result of an + attempt made to obtain a general license or permission for the use of + such proprietary rights by implementors or users of this + specification can be obtained from the IETF Secretariat. + The IETF invites any interested party to bring to its attention any + copyrights, patents or patent applications, or other proprietary + rights that may cover technology that may be required to practice + this standard. Please address the information to the IETF Executive + Director.