MPLS-LSR-STD-MIB DEFINITIONS ::= BEGIN IMPORTS MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, Integer32, Counter32, Unsigned32, Counter64, Gauge32, zeroDotZero FROM SNMPv2-SMI -- [RFC2578] MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP FROM SNMPv2-CONF -- [RFC2580] TruthValue, RowStatus, StorageType, RowPointer, TimeStamp, TEXTUAL-CONVENTION FROM SNMPv2-TC -- [RFC2579] InterfaceIndexOrZero, ifGeneralInformationGroup, ifCounterDiscontinuityGroup FROM IF-MIB -- [RFC2863] mplsStdMIB, MplsLSPID, MplsLabel, MplsBitRate, MplsOwner FROM MPLS-TC-STD-MIB -- [RFC3811] AddressFamilyNumbers FROM IANA-ADDRESS-FAMILY-NUMBERS-MIB -- [IANAFamily] InetAddress, InetAddressType FROM INET-ADDRESS-MIB -- [RFC3291] ; mplsLsrStdMIB MODULE-IDENTITY LAST-UPDATED "200406030000Z" -- June 3, 2004 ORGANIZATION "Multiprotocol Label Switching (MPLS) Working Group" CONTACT-INFO " Cheenu Srinivasan Bloomberg L.P. Email: [email protected] Arun Viswanathan Force10 Networks, Inc. Email: [email protected] Thomas D. Nadeau Cisco Systems, Inc. Email: [email protected] Comments about this document should be emailed directly to the MPLS working group mailing list at [email protected]." DESCRIPTION "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. Copyright (C) The Internet Society (2004). The initial version of this MIB module was published in RFC 3812. For full legal notices see the RFC itself or see: http://www.ietf.org/copyrights/ianamib.html" -- Revision history. REVISION "200406030000Z" -- June 3, 2004 DESCRIPTION "Initial revision, published as part of RFC 3813." ::= { mplsStdMIB 2 } -- TEXTUAL-CONVENTIONs MplsIndexType ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "This is an octet string that can be used as a table index in cases where a large addressable space is required such as on an LSR where many applications may be provisioning labels. Note that the string containing the single octet with the value 0x00 is a reserved value used to represent special cases. When this TEXTUAL-CONVENTION is used as the SYNTAX of an object, the DESCRIPTION clause MUST specify if this special value is valid and if so what the special meaning is. In systems that provide write access to the MPLS-LSR-STD MIB, mplsIndexType SHOULD be used as a simple multi-digit integer encoded as an octet string. No further overloading of the meaning of an index SHOULD be made. In systems that do not offer write access to the MPLS-LSR-STD MIB, the mplsIndexType may contain implicit formatting that is specific to the implementation to convey additional information such as interface index, physical card or device, or application id. The interpretation of this additional formatting is implementation dependent and not covered in this document. Such formatting MUST NOT impact the basic functionality of read-only access to the MPLS-LSR-STD MIB by management applications that are not aware of the formatting rules." SYNTAX OCTET STRING (SIZE(1..24)) MplsIndexNextType ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "When a MIB module is used for configuration, an object with this SYNTAX always contains a legal value (a non-zero-length string) for an index that is not currently used in the relevant table. The Command Generator (Network Management Application) reads this variable and uses the (non-zero-length string) value read when creating a new row with an SNMP SET. When the SET is performed, the Command Responder (agent) must determine whether the value is indeed still unused; Two Network Management Applications may attempt to create a row (configuration entry) simultaneously and use the same value. If it is currently unused, the SET succeeds and the Command Responder (agent) changes the value of this object, according to an implementation-specific algorithm. If the value is in use, however, the SET fails. The Network Management Application must then re-read this variable to obtain a new usable value. Note that the string containing the single octet with the value 0x00 is a reserved value used to represent the special case where no additional indexes can be provisioned, or in systems that do not offer write access, objects defined using this TEXTUAL-CONVENTION MUST return the string containing the single octet with the value 0x00." SYNTAX OCTET STRING (SIZE(1..24)) -- Top level components of this MIB module. -- Notifications mplsLsrNotifications OBJECT IDENTIFIER ::= { mplsLsrStdMIB 0 } -- Tables, Scalars mplsLsrObjects OBJECT IDENTIFIER ::= { mplsLsrStdMIB 1 } -- Conformance mplsLsrConformance OBJECT IDENTIFIER ::= { mplsLsrStdMIB 2 } -- MPLS Interface Table. mplsInterfaceTable OBJECT-TYPE SYNTAX SEQUENCE OF MplsInterfaceEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table specifies per-interface MPLS capability and associated information." ::= { mplsLsrObjects 1 } mplsInterfaceEntry OBJECT-TYPE SYNTAX MplsInterfaceEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A conceptual row in this table is created automatically by an LSR for every interface capable of supporting MPLS and which is configured to do so. A conceptual row in this table will exist if and only if a corresponding entry in ifTable exists with ifType = mpls(166). If this associated entry in ifTable is operationally disabled (thus removing MPLS capabilities on that interface), the corresponding entry in this table MUST be deleted shortly thereafter. An conceptual row with index 0 is created if the LSR supports per-platform labels. This conceptual row represents the per-platform label space and contains parameters that apply to all interfaces that participate in the per-platform label space. Other conceptual rows in this table represent MPLS interfaces that may participate in either the per-platform or per- interface label spaces, or both. Implementations that either only support per-platform labels, or have only them configured, may choose to return just the mplsInterfaceEntry of 0 and not return the other rows. This will greatly reduce the number of objects returned. Further information about label space participation of an interface is provided in the DESCRIPTION clause of mplsInterfaceLabelParticipationType." INDEX { mplsInterfaceIndex } ::= { mplsInterfaceTable 1 } MplsInterfaceEntry ::= SEQUENCE { mplsInterfaceIndex InterfaceIndexOrZero, mplsInterfaceLabelMinIn MplsLabel, mplsInterfaceLabelMaxIn MplsLabel, mplsInterfaceLabelMinOut MplsLabel, mplsInterfaceLabelMaxOut MplsLabel, mplsInterfaceTotalBandwidth MplsBitRate, mplsInterfaceAvailableBandwidth MplsBitRate, mplsInterfaceLabelParticipationType BITS } mplsInterfaceIndex OBJECT-TYPE SYNTAX InterfaceIndexOrZero MAX-ACCESS not-accessible STATUS current DESCRIPTION "This is a unique index for an entry in the MplsInterfaceTable. A non-zero index for an entry indicates the ifIndex for the corresponding interface entry of the MPLS-layer in the ifTable. The entry with index 0 represents the per-platform label space and contains parameters that apply to all interfaces that participate in the per-platform label space. Other entries defined in this table represent additional MPLS interfaces that may participate in either the per-platform or per-interface label spaces, or both." REFERENCE "RFC 2863 - The Interfaces Group MIB, McCloghrie, K., and F. Kastenholtz, June 2000" ::= { mplsInterfaceEntry 1 } mplsInterfaceLabelMinIn OBJECT-TYPE SYNTAX MplsLabel MAX-ACCESS read-only STATUS current DESCRIPTION "This is the minimum value of an MPLS label that this LSR is willing to receive on this interface." ::= { mplsInterfaceEntry 2 } mplsInterfaceLabelMaxIn OBJECT-TYPE SYNTAX MplsLabel MAX-ACCESS read-only STATUS current DESCRIPTION "This is the maximum value of an MPLS label that this LSR is willing to receive on this interface." ::= { mplsInterfaceEntry 3 } mplsInterfaceLabelMinOut OBJECT-TYPE SYNTAX MplsLabel MAX-ACCESS read-only STATUS current DESCRIPTION "This is the minimum value of an MPLS label that this LSR is willing to send on this interface." ::= { mplsInterfaceEntry 4 } mplsInterfaceLabelMaxOut OBJECT-TYPE SYNTAX MplsLabel MAX-ACCESS read-only STATUS current DESCRIPTION "This is the maximum value of an MPLS label that this LSR is willing to send on this interface." ::= { mplsInterfaceEntry 5 } mplsInterfaceTotalBandwidth OBJECT-TYPE SYNTAX MplsBitRate UNITS "kilobits per second" MAX-ACCESS read-only STATUS current DESCRIPTION "This value indicates the total amount of usable bandwidth on this interface and is specified in kilobits per second (Kbps). This variable is not applicable when applied to the interface with index 0. When this value cannot be measured, this value should contain the nominal bandwidth." ::= { mplsInterfaceEntry 6 } mplsInterfaceAvailableBandwidth OBJECT-TYPE SYNTAX MplsBitRate MAX-ACCESS read-only STATUS current DESCRIPTION "This value indicates the total amount of available bandwidth available on this interface and is specified in kilobits per second (Kbps). This value is calculated as the difference between the amount of bandwidth currently in use and that specified in mplsInterfaceTotalBandwidth. This variable is not applicable when applied to the interface with index 0. When this value cannot be measured, this value should contain the nominal bandwidth." ::= { mplsInterfaceEntry 7 } mplsInterfaceLabelParticipationType OBJECT-TYPE SYNTAX BITS { perPlatform (0), perInterface (1) } MAX-ACCESS read-only STATUS current DESCRIPTION "If the value of the mplsInterfaceIndex for this entry is zero, then this entry corresponds to the per-platform label space for all interfaces configured to use that label space. In this case the perPlatform(0) bit MUST be set; the perInterface(1) bit is meaningless and MUST be ignored. The remainder of this description applies to entries with a non-zero value of mplsInterfaceIndex. If the perInterface(1) bit is set then the value of mplsInterfaceLabelMinIn, mplsInterfaceLabelMaxIn, mplsInterfaceLabelMinOut, and mplsInterfaceLabelMaxOut for this entry reflect the label ranges for this interface. If only the perPlatform(0) bit is set, then the value of mplsInterfaceLabelMinIn, mplsInterfaceLabelMaxIn, mplsInterfaceLabelMinOut, and mplsInterfaceLabelMaxOut for this entry MUST be identical to the instance of these objects with index 0. These objects may only vary from the entry with index 0 if both the perPlatform(0) and perInterface(1) bits are set. In all cases, at a minimum one of the perPlatform(0) or perInterface(1) bits MUST be set to indicate that at least one label space is in use by this interface. In all cases, agents MUST ensure that label ranges are specified consistently and MUST return an inconsistentValue error when they do not." REFERENCE "Rosen, E., Viswanathan, A., and R. Callon, Multiprotocol Label Switching Architecture, RFC 3031, January 2001." ::= { mplsInterfaceEntry 8 } -- End of mplsInterfaceTable -- MPLS Interface Performance Table. mplsInterfacePerfTable OBJECT-TYPE SYNTAX SEQUENCE OF MplsInterfacePerfEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table provides MPLS performance information on a per-interface basis." ::= { mplsLsrObjects 2 } mplsInterfacePerfEntry OBJECT-TYPE SYNTAX MplsInterfacePerfEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry in this table is created by the LSR for every interface capable of supporting MPLS. Its is an extension to the mplsInterfaceEntry table. Note that the discontinuity behavior of entries in this table MUST be based on the corresponding ifEntry's ifDiscontinuityTime." AUGMENTS { mplsInterfaceEntry } ::= { mplsInterfacePerfTable 1 } MplsInterfacePerfEntry ::= SEQUENCE { -- incoming direction mplsInterfacePerfInLabelsInUse Gauge32, mplsInterfacePerfInLabelLookupFailures Counter32, -- outgoing direction mplsInterfacePerfOutLabelsInUse Gauge32, mplsInterfacePerfOutFragmentedPkts Counter32 } mplsInterfacePerfInLabelsInUse OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "This object counts the number of labels that are in use at this point in time on this interface in the incoming direction. If the interface participates in only the per-platform label space, then the value of the instance of this object MUST be identical to the value of the instance with index 0. If the interface participates in the per-interface label space, then the instance of this object MUST represent the number of per-interface labels that are in use on this interface." ::= { mplsInterfacePerfEntry 1 } mplsInterfacePerfInLabelLookupFailures OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "This object counts the number of labeled packets that have been received on this interface and which were discarded because there was no matching cross- connect entry. This object MUST count on a per- interface basis regardless of which label space the interface participates in." ::= { mplsInterfacePerfEntry 2 } mplsInterfacePerfOutLabelsInUse OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "This object counts the number of top-most labels in the outgoing label stacks that are in use at this point in time on this interface. This object MUST count on a per-interface basis regardless of which label space the interface participates in." ::= { mplsInterfacePerfEntry 3 } mplsInterfacePerfOutFragmentedPkts OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "This object counts the number of outgoing MPLS packets that required fragmentation before transmission on this interface. This object MUST count on a per-interface basis regardless of which label space the interface participates in." ::= { mplsInterfacePerfEntry 4 } -- mplsInterfacePerf Table end. mplsInSegmentIndexNext OBJECT-TYPE SYNTAX MplsIndexNextType MAX-ACCESS read-only STATUS current DESCRIPTION "This object contains the next available value to be used for mplsInSegmentIndex when creating entries in the mplsInSegmentTable. The special value of a string containing the single octet 0x00 indicates that no new entries can be created in this table. Agents not allowing managers to create entries in this table MUST set this object to this special value." ::= { mplsLsrObjects 3 } -- in-segment table. mplsInSegmentTable OBJECT-TYPE SYNTAX SEQUENCE OF MplsInSegmentEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table contains a description of the incoming MPLS segments (labels) to an LSR and their associated parameters. The index for this table is mplsInSegmentIndex. The index structure of this table is specifically designed to handle many different MPLS implementations that manage their labels both in a distributed and centralized manner. The table is also designed to handle existing MPLS labels as defined in RFC3031 as well as longer ones that may be necessary in the future. In cases where the label cannot fit into the mplsInSegmentLabel object, the mplsInSegmentLabelPtr will indicate this by being set to the first accessible column in the appropriate extension table's row. In this case an additional table MUST be provided and MUST be indexed by at least the indexes used by this table. In all other cases when the label is represented within the mplsInSegmentLabel object, the mplsInSegmentLabelPtr MUST be set to 0.0. Due to the fact that MPLS labels may not exceed 24 bits, the mplsInSegmentLabelPtr object is only a provision for future-proofing the MIB module. Thus, the definition of any extension tables is beyond the scope of this MIB module." ::= { mplsLsrObjects 4 } mplsInSegmentEntry OBJECT-TYPE SYNTAX MplsInSegmentEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry in this table represents one incoming segment as is represented in an LSR's LFIB. An entry can be created by a network administrator or an SNMP agent, or an MPLS signaling protocol. The creator of the entry is denoted by mplsInSegmentOwner. The value of mplsInSegmentRowStatus cannot be active(1) unless the ifTable entry corresponding to mplsInSegmentInterface exists. An entry in this table must match any incoming packets, and indicates an instance of mplsXCEntry based on which forwarding and/or switching actions are taken." INDEX { mplsInSegmentIndex } ::= { mplsInSegmentTable 1 } MplsInSegmentEntry ::= SEQUENCE { mplsInSegmentIndex MplsIndexType, mplsInSegmentInterface InterfaceIndexOrZero, mplsInSegmentLabel MplsLabel, mplsInSegmentLabelPtr RowPointer, mplsInSegmentNPop Integer32, mplsInSegmentAddrFamily AddressFamilyNumbers, mplsInSegmentXCIndex MplsIndexType, mplsInSegmentOwner MplsOwner , mplsInSegmentTrafficParamPtr RowPointer, mplsInSegmentRowStatus RowStatus, mplsInSegmentStorageType StorageType } mplsInSegmentIndex OBJECT-TYPE SYNTAX MplsIndexType MAX-ACCESS not-accessible STATUS current DESCRIPTION "The index for this in-segment. The string containing the single octet 0x00 MUST not be used as an index." ::= { mplsInSegmentEntry 1 } mplsInSegmentInterface OBJECT-TYPE SYNTAX InterfaceIndexOrZero MAX-ACCESS read-create STATUS current DESCRIPTION "This object represents the interface index for the incoming MPLS interface. A value of zero represents all interfaces participating in the per-platform label space. This may only be used in cases where the incoming interface and label are associated with the same mplsXCEntry. Specifically, given a label and any incoming interface pair from the per-platform label space, the outgoing label/interface mapping remains the same. If this is not the case, then individual entries MUST exist that can then be mapped to unique mplsXCEntries." ::= { mplsInSegmentEntry 2 } mplsInSegmentLabel OBJECT-TYPE SYNTAX MplsLabel MAX-ACCESS read-create STATUS current DESCRIPTION "If the corresponding instance of mplsInSegmentLabelPtr is zeroDotZero then this object MUST contain the incoming label associated with this in-segment. If not this object SHOULD be zero and MUST be ignored." ::= { mplsInSegmentEntry 3 } mplsInSegmentLabelPtr OBJECT-TYPE SYNTAX RowPointer MAX-ACCESS read-create STATUS current DESCRIPTION "If the label for this segment cannot be represented fully within the mplsInSegmentLabel object, this object MUST point to the first accessible column of a conceptual row in an external table containing the label. In this case, the mplsInSegmentTopLabel object SHOULD be set to 0 and ignored. This object MUST be set to zeroDotZero otherwise." DEFVAL { zeroDotZero } ::= { mplsInSegmentEntry 4 } mplsInSegmentNPop OBJECT-TYPE SYNTAX Integer32 (1..2147483647) MAX-ACCESS read-create STATUS current DESCRIPTION "The number of labels to pop from the incoming packet. Normally only the top label is popped from the packet and used for all switching decisions for that packet. This is indicated by setting this object to the default value of 1. If an LSR supports popping of more than one label, this object MUST be set to that number. This object cannot be modified if mplsInSegmentRowStatus is active(1)." DEFVAL { 1 } ::= { mplsInSegmentEntry 5 } mplsInSegmentAddrFamily OBJECT-TYPE SYNTAX AddressFamilyNumbers MAX-ACCESS read-create STATUS current DESCRIPTION "The IANA address family [IANAFamily] of packets received on this segment, which is used at an egress LSR to deliver them to the appropriate layer 3 entity. A value of other(0) indicates that the family type is either unknown or undefined; this SHOULD NOT be used at an egress LSR. This object cannot be modified if mplsInSegmentRowStatus is active(1)." REFERENCE "Internet Assigned Numbers Authority (IANA), ADDRESS FAMILY NUMBERS, (http://www.iana.org/assignments/ address-family-numbers), for MIB see: http://www.iana.org/assignments/ ianaaddressfamilynumbers-mib " DEFVAL { other } ::= { mplsInSegmentEntry 6 } mplsInSegmentXCIndex OBJECT-TYPE SYNTAX MplsIndexType MAX-ACCESS read-only STATUS current DESCRIPTION "Index into mplsXCTable which identifies which cross- 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 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 value may point at an entry in the mplsTunnelResourceTable in the MPLS-TE-STD-MIB (RFC3812) 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 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 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. 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 STATUS current DESCRIPTION "This variable indicates the storage type for this object. 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." REFERENCE "See RFC2579." DEFVAL { volatile } ::= { mplsInSegmentEntry 11 } -- End of mplsInSegmentTable -- 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 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 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 all of these objects." AUGMENTS { mplsInSegmentEntry } ::= { mplsInSegmentPerfTable 1 } MplsInSegmentPerfEntry ::= SEQUENCE { mplsInSegmentPerfOctets Counter32, mplsInSegmentPerfPackets Counter32, mplsInSegmentPerfErrors Counter32, mplsInSegmentPerfDiscards Counter32, -- high capacity counter mplsInSegmentPerfHCOctets Counter64, mplsInSegmentPerfDiscontinuityTime TimeStamp } 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 mplsInSegmentPerfHCOctets if mplsInSegmentPerfHCOctets is supported according to the rules spelled out in RFC2863." ::= { mplsInSegmentPerfEntry 1 } mplsInSegmentPerfPackets OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "Total number of packets received by this segment." ::= { mplsInSegmentPerfEntry 2 } mplsInSegmentPerfErrors OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of errored packets received on this segment." ::= { mplsInSegmentPerfEntry 3 } 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 } 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 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. mplsOutSegmentIndexNext OBJECT-TYPE SYNTAX MplsIndexNextType MAX-ACCESS read-only STATUS current DESCRIPTION "This object contains the next available value to be used for mplsOutSegmentIndex when creating entries in the mplsOutSegmentTable. The special value of a string containing the single octet 0x00 indicates that no new entries can be created in this table. Agents not allowing managers to create entries in this table MUST set this object to this special value." ::= { mplsLsrObjects 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 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, 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 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 MplsIndexType, mplsOutSegmentInterface InterfaceIndexOrZero, mplsOutSegmentPushTopLabel TruthValue, mplsOutSegmentTopLabel MplsLabel, mplsOutSegmentTopLabelPtr RowPointer, mplsOutSegmentNextHopAddrType InetAddressType, mplsOutSegmentNextHopAddr InetAddress, mplsOutSegmentXCIndex MplsIndexType, mplsOutSegmentOwner MplsOwner, mplsOutSegmentTrafficParamPtr RowPointer, mplsOutSegmentRowStatus RowStatus, mplsOutSegmentStorageType StorageType } mplsOutSegmentIndex OBJECT-TYPE SYNTAX MplsIndexType MAX-ACCESS not-accessible STATUS current DESCRIPTION "This value contains a unique index for this row. 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 } 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(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 STATUS current DESCRIPTION "If mplsOutSegmentPushTopLabel is true then this represents the label that should be pushed onto the top of the outgoing packet's label stack. Otherwise 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 } mplsOutSegmentTopLabelPtr OBJECT-TYPE SYNTAX RowPointer MAX-ACCESS read-create STATUS current DESCRIPTION "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 } 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 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 7 } mplsOutSegmentXCIndex OBJECT-TYPE 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 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 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 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 MplsTunnelResourceEntry in the MPLS-TE-STD-MIB (RFC3812) 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 of such things as LSP queue space, etc. This object cannot be modified if 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 10 } mplsOutSegmentRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "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 STATUS current DESCRIPTION "This variable indicates the storage type for this object. 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." DEFVAL { volatile } ::= { mplsOutSegmentEntry 12 } -- End of mplsOutSegmentTable -- 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 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. The object mplsOutSegmentPerfDiscontinuityTime indicates the time of the last discontinuity in these objects. " AUGMENTS { mplsOutSegmentEntry } ::= { mplsOutSegmentPerfTable 1 } MplsOutSegmentPerfEntry ::= SEQUENCE { mplsOutSegmentPerfOctets Counter32, mplsOutSegmentPerfPackets Counter32, mplsOutSegmentPerfErrors Counter32, mplsOutSegmentPerfDiscards Counter32, -- HC counter mplsOutSegmentPerfHCOctets Counter64, mplsOutSegmentPerfDiscontinuityTime TimeStamp } 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 mplsOutSegmentPerfHCOctets if mplsOutSegmentPerfHCOctets is supported according to the rules spelled out in RFC2863." ::= { mplsOutSegmentPerfEntry 1 } 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 } 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 } mplsOutSegmentPerfDiscards OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "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 } mplsOutSegmentPerfHCOctets OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-only STATUS current DESCRIPTION "Total number of octets sent. This is the 64 bit 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 MplsIndexNextType MAX-ACCESS read-only STATUS current DESCRIPTION "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 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 - in-segment index, mplsXCInSegmentIndex - out-segment index, mplsXCOutSegmentIndex LSPs originating at this LSR: These are represented by using the special 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 set to the string containing a single octet 0x00. Special labels: 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, mplsXCInSegmentIndex, mplsXCOutSegmentIndex } ::= { mplsXCTable 1 } MplsXCEntry ::= SEQUENCE { mplsXCIndex MplsIndexType, mplsXCInSegmentIndex MplsIndexType, mplsXCOutSegmentIndex MplsIndexType, mplsXCLspId MplsLSPID, mplsXCLabelStackIndex MplsIndexType, mplsXCOwner MplsOwner , mplsXCRowStatus RowStatus, mplsXCStorageType StorageType, mplsXCAdminStatus INTEGER, mplsXCOperStatus INTEGER } mplsXCIndex OBJECT-TYPE SYNTAX MplsIndexType MAX-ACCESS not-accessible STATUS current DESCRIPTION "Primary index for the conceptual row identifying a group of cross-connect segments. The string containing a single octet 0x00 is an invalid index." ::= { mplsXCEntry 1 } mplsXCInSegmentIndex OBJECT-TYPE SYNTAX MplsIndexType MAX-ACCESS not-accessible STATUS current DESCRIPTION "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 } mplsXCOutSegmentIndex OBJECT-TYPE SYNTAX MplsIndexType MAX-ACCESS not-accessible STATUS current DESCRIPTION "Index of out-segment for LSPs not terminating on 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) except for this object." ::= { mplsXCEntry 4 } mplsXCLabelStackIndex OBJECT-TYPE 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 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 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." ::= { mplsXCEntry 6 } mplsXCRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "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. " ::= { mplsXCEntry 7 } mplsXCStorageType OBJECT-TYPE SYNTAX StorageType MAX-ACCESS read-create STATUS current DESCRIPTION "This variable indicates the storage type for this object. 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." 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 10 } -- End of mplsXCTable -- Label stack table. mplsMaxLabelStackDepth OBJECT-TYPE SYNTAX Unsigned32 (1..2147483647) MAX-ACCESS read-only STATUS current DESCRIPTION "The maximum stack depth supported by this LSR." ::= { mplsLsrObjects 11 } mplsLabelStackIndexNext OBJECT-TYPE SYNTAX MplsIndexNextType MAX-ACCESS read-only STATUS current DESCRIPTION "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 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 MplsIndexType, mplsLabelStackLabelIndex Unsigned32, mplsLabelStackLabel MplsLabel, mplsLabelStackLabelPtr RowPointer, mplsLabelStackRowStatus RowStatus, mplsLabelStackStorageType StorageType } mplsLabelStackIndex OBJECT-TYPE 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. 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 higher up the label stack and would be popped at a downstream LSR before a label represented by a higher mplsLabelStackLabelIndex at a downstream LSR." ::= { mplsLabelStackEntry 2 } mplsLabelStackLabel OBJECT-TYPE SYNTAX MplsLabel MAX-ACCESS read-create STATUS current DESCRIPTION "The label to pushed." ::= { mplsLabelStackEntry 3 } mplsLabelStackLabelPtr OBJECT-TYPE SYNTAX RowPointer MAX-ACCESS read-create STATUS current DESCRIPTION "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 } mplsLabelStackRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "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 mplsLabelStackStorageType can be modified." ::= { mplsLabelStackEntry 5 } mplsLabelStackStorageType OBJECT-TYPE SYNTAX StorageType MAX-ACCESS read-create STATUS current DESCRIPTION "This variable indicates the storage type for this object. This object cannot be modified if mplsLabelStackRowStatus is active(1). No objects are required to be writable for rows in this table with this object set to permanent(4). 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 mplsLabelStackTable -- Begin mplsInSegmentMapTable mplsInSegmentMapTable OBJECT-TYPE SYNTAX SEQUENCE OF MplsInSegmentMapEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table specifies the mapping from the mplsInSegmentIndex to the corresponding mplsInSegmentInterface and mplsInSegmentLabel objects. The purpose of this table is to provide the manager with an alternative means by which to locate in-segments." ::= { mplsLsrObjects 14 } mplsInSegmentMapEntry OBJECT-TYPE SYNTAX MplsInSegmentMapEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry in this table represents one interface and incoming label pair. In cases where the label cannot fit into the mplsInSegmentLabel object, the mplsInSegmentLabelPtr will indicate this by being set to the first accessible column in the appropriate extension table's row, and the mplsInSegmentLabel SHOULD be set to 0. In all other cases when the label is represented within the mplsInSegmentLabel object, the mplsInSegmentLabelPtr MUST be 0.0. Implementors need to be aware that if the value of the mplsInSegmentMapLabelPtrIndex (an OID) has more that 111 sub-identifiers, then OIDs of column instances in this table will have more than 128 sub-identifiers and cannot be accessed using SNMPv1, SNMPv2c, or SNMPv3." INDEX { mplsInSegmentMapInterface, mplsInSegmentMapLabel, mplsInSegmentMapLabelPtrIndex } ::= { mplsInSegmentMapTable 1 } MplsInSegmentMapEntry ::= SEQUENCE { mplsInSegmentMapInterface InterfaceIndexOrZero, mplsInSegmentMapLabel MplsLabel, mplsInSegmentMapLabelPtrIndex RowPointer, mplsInSegmentMapIndex MplsIndexType } mplsInSegmentMapInterface OBJECT-TYPE SYNTAX InterfaceIndexOrZero MAX-ACCESS not-accessible STATUS current DESCRIPTION "This index contains the same value as the mplsInSegmentIndex in the mplsInSegmentTable." ::= { mplsInSegmentMapEntry 1 } mplsInSegmentMapLabel OBJECT-TYPE SYNTAX MplsLabel MAX-ACCESS not-accessible STATUS current DESCRIPTION "This index contains the same value as the mplsInSegmentLabel in the mplsInSegmentTable." ::= { mplsInSegmentMapEntry 2 } mplsInSegmentMapLabelPtrIndex OBJECT-TYPE SYNTAX RowPointer MAX-ACCESS not-accessible STATUS current DESCRIPTION "This index contains the same value as the mplsInSegmentLabelPtr. If the label for the InSegment cannot be represented fully within the mplsInSegmentLabel object, this index 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." ::= { mplsInSegmentMapEntry 3 } mplsInSegmentMapIndex OBJECT-TYPE SYNTAX MplsIndexType MAX-ACCESS read-only STATUS current DESCRIPTION "The mplsInSegmentIndex that corresponds to the mplsInSegmentInterface and mplsInSegmentLabel, or the mplsInSegmentInterface and mplsInSegmentLabelPtr, if applicable. The string containing the single octet 0x00 MUST not be returned." ::= { mplsInSegmentMapEntry 4 } -- End mplsInSegmentMapTable -- 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 module in this document." DEFVAL { false } ::= { mplsLsrObjects 15 } -- Cross-connect. mplsXCUp 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 up(1) state from some other state. The included values of mplsXCOperStatus MUST both be set equal to this 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." ::= { mplsLsrNotifications 1 } mplsXCDown NOTIFICATION-TYPE OBJECTS { mplsXCOperStatus, -- start of range mplsXCOperStatus -- end of range } STATUS current DESCRIPTION "This notification is generated when the mplsXCOperStatus object for one or more contiguous entries in mplsXCTable are about to enter the down(2) state from some other state. The included values of mplsXCOperStatus MUST both be set equal to this 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 identical." ::= { mplsLsrNotifications 2 } -- End of notifications. -- Module compliance. mplsLsrGroups OBJECT IDENTIFIER ::= { mplsLsrConformance 1 } mplsLsrCompliances OBJECT IDENTIFIER ::= { mplsLsrConformance 2 } -- Compliance requirement for fully compliant implementations. mplsLsrModuleFullCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "Compliance statement for agents that provide full support for MPLS-LSR-STD-MIB. Such devices can then be monitored and also be configured using this MIB module." 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 based on the criteria specified in RFC 2863 for high-capacity counters. " GROUP mplsHCOutSegmentPerfGroup DESCRIPTION "This group is mandatory for those out-segment entries for which the object mplsOutSegmentPerfOctets wraps around too quickly based on the criteria specified in RFC 2863 for high-capacity counters. " GROUP mplsLsrNotificationGroup DESCRIPTION "This group is only mandatory for those implementations which can efficiently implement the notifications contained in this group." OBJECT mplsInSegmentRowStatus SYNTAX RowStatus { active(1), notInService(2) } WRITE-SYNTAX RowStatus { active(1), notInService(2), createAndGo(4), destroy(6) } DESCRIPTION "Support for createAndWait and notReady is not required." OBJECT mplsOutSegmentNextHopAddrType SYNTAX InetAddressType { unknown(0), ipv4(1), ipv6(2) } DESCRIPTION "Only unknown(0), ipv4(1) and ipv6(2) support is required." OBJECT mplsOutSegmentNextHopAddr SYNTAX InetAddress (SIZE(0|4|16)) DESCRIPTION "An implementation is only required to support unknown(0), ipv4(1) and ipv6(2) sizes." OBJECT mplsOutSegmentRowStatus SYNTAX RowStatus { active(1), notInService(2) } WRITE-SYNTAX RowStatus { active(1), notInService(2), createAndGo(4), destroy(6) } DESCRIPTION "Support for createAndWait and notReady is not required." OBJECT mplsLabelStackRowStatus SYNTAX RowStatus { active(1), notInService(2) } WRITE-SYNTAX RowStatus { active(1), notInService(2), createAndGo(4), destroy(6) } DESCRIPTION "Support for createAndWait and notReady is not required." OBJECT mplsXCRowStatus SYNTAX RowStatus { active(1), notInService(2) } WRITE-SYNTAX RowStatus { active(1), notInService(2), createAndGo(4), destroy(6) } DESCRIPTION "Support for createAndWait and notReady is not required." ::= { 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 module. " 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 based on the criteria specified in RFC 2863 for high-capacity counters. " GROUP mplsHCOutSegmentPerfGroup DESCRIPTION "This group is mandatory for those out-segment entries for which the object mplsOutSegmentPerfOctets wraps around too quickly based on the criteria specified in RFC 2863 for high-capacity counters. " GROUP mplsLsrNotificationGroup DESCRIPTION "This group is only mandatory for those implementations which can efficiently implement the notifications contained in this group. " -- mplsInSegmentTable 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 SYNTAX Integer32 (1..1) MIN-ACCESS read-only DESCRIPTION "Write access is not required. This object SHOULD be set to 1 if it is read-only. " OBJECT mplsInSegmentAddrFamily MIN-ACCESS read-only 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) } MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT mplsInSegmentStorageType MIN-ACCESS read-only DESCRIPTION "Write access is not required." -- mplsOutSegmentTable 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 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 "Write access is not required. Only unknown(0), ipv4(1) and ipv6(2) support is required. " OBJECT mplsOutSegmentNextHopAddr SYNTAX InetAddress (SIZE(0|4|16)) MIN-ACCESS read-only DESCRIPTION "Write access is not required. An implementation is only required to support unknown(0), ipv4(1) and ipv6(2) sizes." OBJECT mplsOutSegmentRowStatus SYNTAX RowStatus { active(1) } MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT mplsOutSegmentStorageType MIN-ACCESS read-only DESCRIPTION "Write access is not required." -- mplsXCTable OBJECT mplsXCLabelStackIndex MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT mplsXCAdminStatus MIN-ACCESS read-only DESCRIPTION "Read only support is required." OBJECT mplsXCRowStatus SYNTAX RowStatus { active(1) } MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT mplsXCStorageType MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT mplsLabelStackLabel MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT mplsLabelStackLabelPtr MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT mplsLabelStackRowStatus MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT mplsLabelStackStorageType MIN-ACCESS read-only DESCRIPTION "Write access is not required." ::= { 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 and interface performance information." ::= { mplsLsrGroups 1 } mplsInSegmentGroup OBJECT-GROUP OBJECTS { mplsInSegmentIndexNext, mplsInSegmentInterface, mplsInSegmentLabel, mplsInSegmentLabelPtr, mplsInSegmentNPop, mplsInSegmentAddrFamily, mplsInSegmentXCIndex, mplsInSegmentOwner, mplsInSegmentRowStatus, mplsInSegmentStorageType, mplsInSegmentTrafficParamPtr, mplsInSegmentMapIndex } STATUS current DESCRIPTION "Collection of objects needed to implement an in- segment." ::= { mplsLsrGroups 2 } mplsOutSegmentGroup OBJECT-GROUP OBJECTS { mplsOutSegmentIndexNext, mplsOutSegmentInterface, mplsOutSegmentPushTopLabel, mplsOutSegmentTopLabel, mplsOutSegmentTopLabelPtr, mplsOutSegmentNextHopAddrType, mplsOutSegmentNextHopAddr, mplsOutSegmentXCIndex, mplsOutSegmentOwner, 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 } STATUS current DESCRIPTION "Collection of objects needed to implement a cross-connect entry." ::= { mplsLsrGroups 4 } mplsPerfGroup OBJECT-GROUP OBJECTS { 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 5 } mplsHCInSegmentPerfGroup OBJECT-GROUP OBJECTS { mplsInSegmentPerfHCOctets } STATUS current DESCRIPTION "Object(s) providing performance information specific to out-segments for which the object mplsInterfaceInOctets wraps around too quickly." ::= { mplsLsrGroups 6 } mplsHCOutSegmentPerfGroup OBJECT-GROUP OBJECTS { mplsOutSegmentPerfHCOctets } STATUS current DESCRIPTION "Object(s) providing performance information specific to out-segments for which the object mplsInterfaceOutOctets wraps around too quickly." ::= { mplsLsrGroups 7 } mplsLabelStackGroup OBJECT-GROUP OBJECTS { mplsLabelStackLabel, mplsLabelStackLabelPtr, mplsLabelStackRowStatus, mplsLabelStackStorageType, mplsMaxLabelStackDepth, mplsLabelStackIndexNext } STATUS current DESCRIPTION "Objects needed to support label stacking." ::= { mplsLsrGroups 8 } mplsLsrNotificationGroup NOTIFICATION-GROUP NOTIFICATIONS { mplsXCUp, mplsXCDown } STATUS current DESCRIPTION "Set of notifications implemented in this module." ::= { mplsLsrGroups 9 } END