MPLS-FRR-GENERAL-STD-MIB DEFINITIONS ::= BEGIN IMPORTS MODULE-IDENTITY, OBJECT-TYPE, mib-2, Unsigned32, Counter32 FROM SNMPv2-SMI -- [RFC2578] MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF -- [RFC2580] RowStatus, StorageType FROM SNMPv2-TC -- [RFC2579] InterfaceIndexOrZero, ifGeneralInformationGroup, ifCounterDiscontinuityGroup FROM IF-MIB -- [RFC2863] MplsTunnelIndex, MplsTunnelInstanceIndex, MplsBitRate, MplsTunnelAffinity FROM MPLS-TC-STD-MIB -- [RFC3811] mplsTunnelGroup, mplsTunnelScalarGroup, mplsTunnelARHopListIndex, mplsTunnelARHopIndex FROM MPLS-TE-STD-MIB -- [RFC3812] ; mplsFrrGeneralMIB MODULE-IDENTITY LAST-UPDATED "201111030000Z" -- 03 Nov 2011 00:00:00 GMT ORGANIZATION "Multiprotocol Label Switching (MPLS) Working Group" CONTACT-INFO " Riza Cetin Email: [email protected] Thomas D. Nadeau Email: [email protected] A S Kiran Koushik Email: [email protected] Stefaan De Cnodder Email: [email protected] Der-Hwa Gan Email: [email protected] " DESCRIPTION "Copyright (c) 2011 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This MIB module contains generic object definitions for MPLS Traffic Engineering Fast Reroute as defined in RFC 4090." -- Revision history. REVISION "201111030000Z" -- 03 Nov 2011 00:00:00 GMT DESCRIPTION "Initial version. Published as RFC 6445." ::= { mib-2 202 } -- Top-level components of this MIB module mplsFrrGeneralObjects OBJECT IDENTIFIER ::= { mplsFrrGeneralMIB 1 } mplsFrrGeneralConformance OBJECT IDENTIFIER ::= { mplsFrrGeneralMIB 2 } -- MPLS Fast-Reroute generic scalars mplsFrrGeneralProtectionMethod OBJECT-TYPE SYNTAX INTEGER { unknown(1), oneToOneBackup(2), facilityBackup(3) } MAX-ACCESS read-write STATUS current DESCRIPTION "Indicates which protection method is to be used for fast reroute on this device. Some devices may require a reboot if this variable is to take effect after being modified." ::= { mplsFrrGeneralObjects 1 } mplsFrrGeneralIngressTunnelInstances OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of tunnel instances for either detour LSPs or bypass tunnels for which this LSR is the ingress." ::= { mplsFrrGeneralObjects 2 } -- -- General FRR Table section -- -- These tables apply to both types of FRR -- and should be implemented by all LSRs supporting -- FRR. -- -- MPLS Fast-Reroute Constraints table mplsFrrGeneralConstraintsTable OBJECT-TYPE SYNTAX SEQUENCE OF MplsFrrGeneralConstraintsEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table shows detour LSP or bypass tunnel setup constraints." ::= { mplsFrrGeneralObjects 3 } mplsFrrGeneralConstraintsEntry OBJECT-TYPE SYNTAX MplsFrrGeneralConstraintsEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry in this table represents detour LSP or bypass tunnel setup constraints for an interface or link to be protected by detour LSPs or a bypass tunnel. Once the LSP or tunnel instance to be protected is identified in the mplsTunnelTable, the corresponding mplsTunnelIfIndex value of that tunnel can be used to get the ifIndex of the underlying physical interface using the ifStackTable. That ifIndex of the underlying physical interface will be used as mplsFrrGeneralConstraintsIfIndexOrZero in this table to protect the LSPs or tunnel instances determined earlier. It is recommended that ifIndex persistence be enabled across re-initializations. If persistence is not implemented, then the value of mplsFrrGeneralConstraintsIfIndexOrZero in this table cannot be guaranteed across restarts and all entries in this table MUST NOT be persistent, or the values of mplsFrrGeneralConstraintsIfIndexOrZero MUST be reconstructed on restart. SNMP engines must only allow entries in this table to be created for tunnel instances that require fast reroute as indicated by the presence of the FAST_REROUTE object in the signaling for the LSP in question. An entry in this table can be created only if a corresponding entry in mplsTunnelTable exists with the same mplsTunnelIndex as mplsFrrGeneralConstraintsTunnelIndex. Entries in this table are deleted when the corresponding entries in mplsTunnelTable are deleted. It is recommended that entries in this table be persistent across reboots. Entries indexed with mplsFrrGeneralConstraintsIfIndexOrZero and set to 0 apply to all interfaces on this device for which the FRR feature can operate. If the mplsTunnelInstance object is set to a value of 0, it indicates that the mplsTunnelEntry contains a tunnel ingress. This is typically how configuration of this feature is performed on devices where the actual protection LSP used is left up to the protecting tunnel. However, in cases where static configuration is possible, any valid tunnel instance is possible; however, it is strongly RECOMMENDED that the instance index SHOULD use the following convention to identify backup LSPs: - lower 16 bits : protected tunnel instance - higher 16 bits: must be all zeros" REFERENCE "Section 4.1 of RFC 4090 and Section 6.1 of RFC 3812." INDEX { mplsFrrGeneralConstraintsIfIndexOrZero, mplsFrrGeneralConstraintsTunnelIndex, mplsFrrGeneralConstraintsTunnelInstance } ::= { mplsFrrGeneralConstraintsTable 1 } MplsFrrGeneralConstraintsEntry ::= SEQUENCE { mplsFrrGeneralConstraintsIfIndexOrZero InterfaceIndexOrZero, mplsFrrGeneralConstraintsTunnelIndex MplsTunnelIndex, mplsFrrGeneralConstraintsTunnelInstance MplsTunnelInstanceIndex, mplsFrrGeneralConstraintsProtectionType INTEGER, mplsFrrGeneralConstraintsSetupPrio Unsigned32, mplsFrrGeneralConstraintsHoldingPrio Unsigned32, mplsFrrGeneralConstraintsInclAnyAffinity MplsTunnelAffinity, mplsFrrGeneralConstraintsInclAllAffinity MplsTunnelAffinity, mplsFrrGeneralConstraintsExclAnyAffinity MplsTunnelAffinity, mplsFrrGeneralConstraintsHopLimit Unsigned32, mplsFrrGeneralConstraintsBandwidth MplsBitRate, mplsFrrGeneralConstraintsStorageType StorageType, mplsFrrGeneralConstraintsRowStatus RowStatus } mplsFrrGeneralConstraintsIfIndexOrZero OBJECT-TYPE SYNTAX InterfaceIndexOrZero MAX-ACCESS not-accessible STATUS current DESCRIPTION "Uniquely identifies an interface that a fast-reroute protection tunnel is configured to potentially protect in the event of a fault. Entries with this index set to 0 indicate that the configured protection tunnel protects all interfaces on this device (i.e., node protection)." ::= { mplsFrrGeneralConstraintsEntry 1 } mplsFrrGeneralConstraintsTunnelIndex OBJECT-TYPE SYNTAX MplsTunnelIndex MAX-ACCESS not-accessible STATUS current DESCRIPTION "Uniquely identifies a tunnel in the mplsTunnelTable that is configured to possibly protect the interface(s) specified by mplsFrrGeneralConstraintsIfIndexOrZero in the event of a fault." REFERENCE "mplsTunnelTable from RFC 3812." ::= { mplsFrrGeneralConstraintsEntry 2 } mplsFrrGeneralConstraintsTunnelInstance OBJECT-TYPE SYNTAX MplsTunnelInstanceIndex MAX-ACCESS not-accessible STATUS current DESCRIPTION "Uniquely identifies an existing instance of this tunnel for which fast reroute is requested. Note that a value of 0 indicates that the configuration points at a tunnel head (as specified in RFC 3812). This is typically how configuration of this feature is performed on devices where the actual protection LSP used is left up to the protecting tunnel. However, in cases where static configuration is possible, any valid tunnel instance is permissible. In these cases, it is recommended that the instance index follow the following convention so as to make identification of backup LSPs easier: - lower 16 bits : protected tunnel instance - higher 16 bits: must be all zeros" ::= { mplsFrrGeneralConstraintsEntry 3 } mplsFrrGeneralConstraintsProtectionType OBJECT-TYPE SYNTAX INTEGER { linkProtection(1), nodeProtection(2) } MAX-ACCESS read-create STATUS current DESCRIPTION "Indicates type of the resource protection: linkProtection(1) indicates that this tunnel is set up to protect a particular link's resources. nodeProtection(2) indicates that this tunnel is set up to protect an entire node from failure." REFERENCE "Section 3 of RFC 4090." DEFVAL { nodeProtection } ::= { mplsFrrGeneralConstraintsEntry 4 } mplsFrrGeneralConstraintsSetupPrio OBJECT-TYPE SYNTAX Unsigned32 (0..7) MAX-ACCESS read-create STATUS current DESCRIPTION "Indicates the setup priority of the detour LSP or bypass tunnel." REFERENCE "Section 4.7 of RFC 3209." DEFVAL { 7 } ::= { mplsFrrGeneralConstraintsEntry 5 } mplsFrrGeneralConstraintsHoldingPrio OBJECT-TYPE SYNTAX Unsigned32 (0..7) MAX-ACCESS read-create STATUS current DESCRIPTION "Indicates the holding priority for the detour LSP or bypass tunnel." REFERENCE "Section 4.7 of RFC 3209." DEFVAL { 0 } ::= { mplsFrrGeneralConstraintsEntry 6 } mplsFrrGeneralConstraintsInclAnyAffinity OBJECT-TYPE SYNTAX MplsTunnelAffinity MAX-ACCESS read-create STATUS current DESCRIPTION "Indicates the include-any link constraint for the detour LSP or bypass tunnel. A link satisfies the include-any constraint if and only if the constraint is zero, or the link and the constraint have a resource class in common." REFERENCE "Section 4.7 of RFC 3209." DEFVAL { 0 } ::= { mplsFrrGeneralConstraintsEntry 7 } mplsFrrGeneralConstraintsInclAllAffinity OBJECT-TYPE SYNTAX MplsTunnelAffinity MAX-ACCESS read-create STATUS current DESCRIPTION "Indicates the include-all link constraint for the detour LSP or bypass tunnel. A link satisfies the include-all constraint if and only if the link contains all of the administrative groups specified in the constraint." REFERENCE "Section 4.7 of RFC 3209." DEFVAL { 0 } ::= { mplsFrrGeneralConstraintsEntry 8 } mplsFrrGeneralConstraintsExclAnyAffinity OBJECT-TYPE SYNTAX MplsTunnelAffinity MAX-ACCESS read-create STATUS current DESCRIPTION "Indicates the exclude-any link constraint for the detour LSP or bypass tunnel. A link satisfies the exclude-any constraint if and only if the link contains none of the administrative groups specified in the constraint." REFERENCE "Section 4.7 of RFC 3209." DEFVAL { 0 } ::= { mplsFrrGeneralConstraintsEntry 9 } mplsFrrGeneralConstraintsHopLimit OBJECT-TYPE SYNTAX Unsigned32(0..255) MAX-ACCESS read-create STATUS current DESCRIPTION "The maximum number of hops that the detour LSP or bypass tunnel may traverse." REFERENCE "Section 4.1 of RFC 4090." DEFVAL { 32 } ::= { mplsFrrGeneralConstraintsEntry 10 } mplsFrrGeneralConstraintsBandwidth OBJECT-TYPE SYNTAX MplsBitRate UNITS "kilobits per second" MAX-ACCESS read-create STATUS current DESCRIPTION "The maximum bandwidth specifically reserved for a detour LSP or bypass tunnel, in units of thousands of bits per second (kbps). Note that setting this value to 0 indicates best-effort treatment." DEFVAL { 0 } ::= { mplsFrrGeneralConstraintsEntry 11 } mplsFrrGeneralConstraintsStorageType OBJECT-TYPE SYNTAX StorageType MAX-ACCESS read-create STATUS current DESCRIPTION "The storage type for this configuration entry. Conceptual rows having the value 'permanent' need not allow write access to any columnar objects in the row." DEFVAL { volatile } ::= { mplsFrrGeneralConstraintsEntry 12 } mplsFrrGeneralConstraintsRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "This object is used to create, modify, and/or delete a row in this table. When a row in this table is in active(1) state, no objects in that row can be modified except mplsFrrGeneralConstraintsRowStatus and mplsFrrGeneralConstraintsStorageType." ::= { mplsFrrGeneralConstraintsEntry 13 } -- MPLS Fast-Reroute Tunnel Actual Route Hop table mplsFrrGeneralTunnelARHopTable OBJECT-TYPE SYNTAX SEQUENCE OF MplsFrrGeneralTunnelARHopEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table sparsely extends mplsTunnelARHopTable defined in the MPLS-TE-STD-MIB module with fast-reroute objects. These objects specify the status of local protection, including availability and active use, on a per-hop basis, of hops traversed by a protected tunnel." ::= { mplsFrrGeneralObjects 4 } mplsFrrGeneralTunnelARHopEntry OBJECT-TYPE SYNTAX MplsFrrGeneralTunnelARHopEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This entry contains fast-reroute protection status of a single protected tunnel hop." INDEX { mplsTunnelARHopListIndex, mplsTunnelARHopIndex } ::= { mplsFrrGeneralTunnelARHopTable 1 } MplsFrrGeneralTunnelARHopEntry ::= SEQUENCE { mplsFrrGeneralTunnelARHopSessionAttributeFlags BITS, mplsFrrGeneralTunnelARHopRROSubObjectFlags BITS } mplsFrrGeneralTunnelARHopSessionAttributeFlags OBJECT-TYPE SYNTAX BITS { arHopSessionAttrFlagsUnsupported(0), localProtectionDesired(1), labelRecordingDesired(2), sestyleDesired(3), bandwidthProtectionDesired(4), nodeProtectionDesired(5) } MAX-ACCESS read-only STATUS current DESCRIPTION "This object indicates the desired values for the associated SESSION_ATTRIBUTE flags. Note that since this object is a BITS type, the bits may be set to indicate various desired combinations of the SESSION_ATTRIBUTE flags. If SESSION_ATTRIBUTE flags are not supported, then this object contains the value of arHopSessionAttrFlagsUnsupported(0)." REFERENCE "See Section 4.3 of RFC 4090 for SESSION_ATTRIBUTE flags." ::= { mplsFrrGeneralTunnelARHopEntry 1 } mplsFrrGeneralTunnelARHopRROSubObjectFlags OBJECT-TYPE SYNTAX BITS { arHopRROSubObjectFlagsUnsupported(0), localProtectionAvailable(1), localProtectionInUse(2), bandwidthProtection(3), nodeProtection(4) } MAX-ACCESS read-only STATUS current DESCRIPTION "This object indicates the flags that are currently in use by the associated Record Route Object (RRO) sub-object. Note that since this object is a BITS type, the bits may be set to indicate various combinations of the flags. If the RRO sub-object is not supported, then this object contains the value of arHopRROSubObjectFlagsUnsupported(0)." REFERENCE "Section 4.4 of RFC 4090." ::= { mplsFrrGeneralTunnelARHopEntry 2 } -- Notifications -- Module Conformance Statement mplsFrrGeneralCompliances OBJECT IDENTIFIER ::= {mplsFrrGeneralConformance 1 } mplsFrrGeneralGroups OBJECT IDENTIFIER ::= {mplsFrrGeneralConformance 2 } mplsFrrGeneralModuleFullCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "Compliance statements for SNMP engines that support the MPLS-FRR-GENERAL-STD-MIB module." MODULE IF-MIB -- The Interfaces Group MIB module, RFC 2863. MANDATORY-GROUPS { ifGeneralInformationGroup, ifCounterDiscontinuityGroup } MODULE MPLS-TE-STD-MIB -- The MPLS Traffic Engineering -- MIB module, RFC 3812 MANDATORY-GROUPS { mplsTunnelGroup, mplsTunnelScalarGroup } MODULE -- this module MANDATORY-GROUPS { mplsFrrGeneralScalarGroup, mplsFrrGeneralTunnelARHopGroup, mplsFrrGeneralConstraintsGroup } OBJECT mplsFrrGeneralConstraintsRowStatus 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." ::= { mplsFrrGeneralCompliances 1 } mplsFrrGeneralModuleReadOnlyCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "Compliance statements for SNMP engines that support the MPLS-FRR-GENERAL-STD-MIB module." MODULE MANDATORY-GROUPS { mplsFrrGeneralScalarGroup, mplsFrrGeneralTunnelARHopGroup, mplsFrrGeneralConstraintsGroup } -- Scalars OBJECT mplsFrrGeneralProtectionMethod MIN-ACCESS read-only DESCRIPTION "Write access is not required." -- mplsFrrGeneralConstraintsTable OBJECT mplsFrrGeneralConstraintsSetupPrio MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT mplsFrrGeneralConstraintsHoldingPrio MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT mplsFrrGeneralConstraintsInclAnyAffinity MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT mplsFrrGeneralConstraintsInclAllAffinity MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT mplsFrrGeneralConstraintsExclAnyAffinity MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT mplsFrrGeneralConstraintsBandwidth MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT mplsFrrGeneralConstraintsProtectionType MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT mplsFrrGeneralConstraintsHopLimit MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT mplsFrrGeneralConstraintsStorageType MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT mplsFrrGeneralConstraintsRowStatus SYNTAX RowStatus { active(1) } MIN-ACCESS read-only DESCRIPTION "Write access is not required." ::= { mplsFrrGeneralCompliances 2 } -- Units of conformance mplsFrrGeneralScalarGroup OBJECT-GROUP OBJECTS { mplsFrrGeneralIngressTunnelInstances, mplsFrrGeneralProtectionMethod } STATUS current DESCRIPTION "Objects that are required to display general fast-reroute information." ::= { mplsFrrGeneralGroups 1 } mplsFrrGeneralConstraintsGroup OBJECT-GROUP OBJECTS { mplsFrrGeneralConstraintsProtectionType, mplsFrrGeneralConstraintsSetupPrio, mplsFrrGeneralConstraintsHoldingPrio, mplsFrrGeneralConstraintsInclAnyAffinity, mplsFrrGeneralConstraintsInclAllAffinity, mplsFrrGeneralConstraintsExclAnyAffinity, mplsFrrGeneralConstraintsHopLimit, mplsFrrGeneralConstraintsBandwidth, mplsFrrGeneralConstraintsStorageType, mplsFrrGeneralConstraintsRowStatus } STATUS current DESCRIPTION "Objects that are required to configure fast-reroute constraints at the ingress LSR of the tunnel that requires fast-reroute service." ::= { mplsFrrGeneralGroups 2 } mplsFrrGeneralTunnelARHopGroup OBJECT-GROUP OBJECTS { mplsFrrGeneralTunnelARHopSessionAttributeFlags, mplsFrrGeneralTunnelARHopRROSubObjectFlags } STATUS current DESCRIPTION "Objects that are required to present per-hop fast-reroute protection status." ::= { mplsFrrGeneralGroups 3} END