-- Network Working Group K. Kompella -- Request for Comments: 3970 Juniper Networks -- Category: Standards Track January 2005 -- A Traffic Engineering (TE) MIB TE-MIB DEFINITIONS ::= BEGIN IMPORTS MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, mib-2, Integer32, Gauge32, Counter32, Counter64, Unsigned32, TimeTicks FROM SNMPv2-SMI RowStatus, StorageType, TimeStamp, TruthValue FROM SNMPv2-TC SnmpAdminString FROM SNMP-FRAMEWORK-MIB MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP FROM SNMPv2-CONF TeHopAddress, TeHopAddressType, MplsBitRate FROM MPLS-TC-STD-MIB; teMIB MODULE-IDENTITY LAST-UPDATED "200501040000Z" -- 01 January 2005 ORGANIZATION "IETF Traffic Engineering Working Group" CONTACT-INFO " Editor: Kireeti Kompella Postal: Juniper Networks, Inc. 1194 Mathilda Ave Sunnyvale, CA 94089 Tel: +1 408 745 2000 E-mail: kireeti@juniper.net The IETF Traffic Engineering Working Group is chaired by Jim Boyle and Ed Kern. WG Mailing List information: General Discussion: te-wg@ops.ietf.org To Subscribe: te-wg-request@ops.ietf.org In Body: subscribe Archive: ftp://ops.ietf.org/pub/lists Comments on the MIB module should be sent to the mailing list. The archives for this mailing list should be consulted for previous discussion on this MIB. " DESCRIPTION "The Traffic Engineering MIB module. Copyright (C) The Internet Society (2005). This version of this MIB module is part of RFC 3970; see the RFC itself for full legal notices. " -- revision history REVISION "200501040000Z" -- 01 January 2005 DESCRIPTION "Initial version, published as RFC 3970." ::= { mib-2 122 } -- Top level objects teMIBNotifications OBJECT IDENTIFIER ::= { teMIB 0 } teMIBObjects OBJECT IDENTIFIER ::= { teMIB 1 } teMIBConformance OBJECT IDENTIFIER ::= { teMIB 2 } -- **************************************************************** -- -- TE MIB Objects -- -- TE Info teInfo OBJECT IDENTIFIER ::= { teMIBObjects 1 } teDistProtocol OBJECT-TYPE SYNTAX BITS { other(0), isis(1), ospf(2) } MAX-ACCESS read-only STATUS current DESCRIPTION "IGP used to distribute Traffic Engineering information and topology to each device for the purpose of automatic path computation. More than one IGP may be used to distribute TE information. " ::= { teInfo 1 } teSignalingProto OBJECT-TYPE SYNTAX BITS { other(0), rsvpte(1), crldp(2), static(3) -- static configuration } MAX-ACCESS read-only STATUS current DESCRIPTION "Traffic Engineering signaling protocols supported by this device. More than one protocol may be supported. " REFERENCE "For a description of RSVP-TE, see RFC 3209; for CR-LDP, see RFC 3212. " ::= { teInfo 2 } teNotificationEnable OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-write STATUS current DESCRIPTION "If this object is true, then it enables the generation of notifications from this MIB module. Otherwise notifications are not generated. " DEFVAL { false } ::= { teInfo 3 } teNextTunnelIndex OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "An integer that may be used as a new Index in the teTunnelTable. The special value of 0 indicates that no more new entries can be created in that table. When this MIB module is used for configuration, this object always contains a legal value (if non-zero) for an index that is not currently used in that table. The Command Generator (Network Management Application) reads this variable and uses the (non-zero) 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. " ::= { teInfo 4 } teNextPathHopIndex OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "An integer that may be used as a new Index in the tePathHopTable. The special value of 0 indicates that no more new entries can be created in that table. When this MIB module is used for configuration, this object always contains a legal value (if non-zero) for an index that is not currently used in that table. The Command Generator (Network Management Application) reads this variable and uses the (non-zero) 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. " ::= { teInfo 5 } teConfiguredTunnels OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "Number of currently configured Tunnels." ::= { teInfo 6 } teActiveTunnels OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "Number of currently active Tunnels." ::= { teInfo 7 } tePrimaryTunnels OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "Number of currently active Tunnels running on their primary paths. " ::= { teInfo 8 } teAdminGroupTable OBJECT-TYPE SYNTAX SEQUENCE OF TeAdminGroupEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A mapping of configured administrative groups. Each entry represents an Administrative Group and provides a name and index for the group. Administrative groups are used to label links in the Traffic Engineering topology in order to place constraints (include and exclude) on Tunnel paths. A groupName can only be linked to one group number. The groupNumber is the number assigned to the administrative group used in constraints, such as tePathIncludeAny or tePathIncludeAll. " ::= { teInfo 9 } teAdminGroupEntry OBJECT-TYPE SYNTAX TeAdminGroupEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A mapping between a configured group number and its human-readable name. The group number should be between 1 and 32, inclusive. Group number n represents bit number (n-1) in the bit vector for Include/Exclude constraints. All entries in this table MUST be kept in stable storage so that they will re-appear in case of a restart/reboot. " INDEX { teAdminGroupNumber } ::= { teAdminGroupTable 1 } TeAdminGroupEntry ::= SEQUENCE { teAdminGroupNumber Integer32, teAdminGroupName SnmpAdminString, teAdminGroupRowStatus RowStatus } teAdminGroupNumber OBJECT-TYPE SYNTAX Integer32 (1..32) MAX-ACCESS not-accessible STATUS current DESCRIPTION "Index of the administrative group." ::= { teAdminGroupEntry 1 } teAdminGroupName OBJECT-TYPE SYNTAX SnmpAdminString (SIZE (1..32)) MAX-ACCESS read-create STATUS current DESCRIPTION "Name of the administrative group." ::= { teAdminGroupEntry 2 } teAdminGroupRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "The status of this conceptual row. The value of this object has no effect on whether other objects in this conceptual row can be modified. " ::= { teAdminGroupEntry 3 } -- Tunnel Table teTunnelTable OBJECT-TYPE SYNTAX SEQUENCE OF TeTunnelEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Table of Configured Traffic Tunnels." ::= { teMIBObjects 2 } teTunnelEntry OBJECT-TYPE SYNTAX TeTunnelEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Entry containing information about a particular Traffic Tunnel. " INDEX { teTunnelIndex } ::= { teTunnelTable 1 } TeTunnelEntry ::= SEQUENCE { teTunnelIndex Unsigned32, teTunnelName SnmpAdminString, teTunnelNextPathIndex Unsigned32, -- Conceptual row information: teTunnelRowStatus RowStatus, teTunnelStorageType StorageType, -- Address information: teTunnelSourceAddressType TeHopAddressType, teTunnelSourceAddress TeHopAddress, teTunnelDestinationAddressType TeHopAddressType, teTunnelDestinationAddress TeHopAddress, -- State/performance information: teTunnelState INTEGER, teTunnelDiscontinuityTimer TimeStamp, teTunnelOctets Counter64, teTunnelPackets Counter64, teTunnelLPOctets Counter32, teTunnelLPPackets Counter32, teTunnelAge TimeTicks, teTunnelTimeUp TimeTicks, teTunnelPrimaryTimeUp TimeTicks, teTunnelTransitions Counter32, teTunnelLastTransition TimeTicks, teTunnelPathChanges Counter32, teTunnelLastPathChange TimeTicks, teTunnelConfiguredPaths Gauge32, teTunnelStandbyPaths Gauge32, teTunnelOperationalPaths Gauge32 } teTunnelIndex OBJECT-TYPE SYNTAX Unsigned32 (1..4294967295) MAX-ACCESS not-accessible STATUS current DESCRIPTION "A unique index that identifies a Tunnel. If the TE Tunnel is considered an interface, then this index must match the interface index of the corresponding interface. Otherwise, this index must be at least 2^24, so that it does not overlap with any existing interface index. " ::= { teTunnelEntry 1 } teTunnelName OBJECT-TYPE SYNTAX SnmpAdminString (SIZE (1..32)) MAX-ACCESS read-create STATUS current DESCRIPTION "Name of the Traffic Tunnel. Note that the name of a Tunnel MUST be unique. When a SET request contains a name that is already in use for another entry, then the implementation must return an inconsistentValue error. The value of this object cannot be changed if the if the value of the corresponding teTunnelRowStatus object is 'active'. " ::= { teTunnelEntry 2 } teTunnelNextPathIndex OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "An integer that may be used as a new Index for the next Path in this Tunnel. The special value of 0 indicates that no more Paths can be created for this Tunnel, or that no more new entries can be created in tePathTable. When this MIB module is used for configuration, this object always contains a legal value (if non-zero) for an index that is not currently used in that table. The Command Generator (Network Management Application) reads this variable and uses the (non-zero) 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. " ::= { teTunnelEntry 3 } teTunnelRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "The status of this conceptual row. When the value of this object is 'active', then the values for the corresponding objects teTunnelName, teTunnelSourceAddressType, teTunnelSourceAddress, teTunnelDestinationAddressType, and teTunnelDestinationAddress cannot be changed. " ::= { teTunnelEntry 4 } teTunnelStorageType OBJECT-TYPE SYNTAX StorageType MAX-ACCESS read-create STATUS current DESCRIPTION "The storage type for this conceptual row. Conceptual rows having the value 'permanent' need not allow write-access to any columnar objects in the row. " ::= { teTunnelEntry 5 } teTunnelSourceAddressType OBJECT-TYPE SYNTAX TeHopAddressType MAX-ACCESS read-create STATUS current DESCRIPTION "The type of Traffic Engineered Tunnel hop address for the source of this Tunnel. Typically, this address type is IPv4 or IPv6, with a prefix length of 32 or 128, respectively. If the TE Tunnel path is being computed by a path computation server, however, it is possible to use more flexible source address types, such as AS numbers or prefix lengths less than host address lengths. The value of this object cannot be changed if the value of the corresponding teTunnelRowStatus object is 'active'. " ::= { teTunnelEntry 6 } teTunnelSourceAddress OBJECT-TYPE SYNTAX TeHopAddress MAX-ACCESS read-create STATUS current DESCRIPTION "The Source Traffic Engineered Tunnel hop address of this Tunnel. The type of this address is determined by the value of the corresponding teTunnelSourceAddressType. Note that the source and destination addresses of a Tunnel can be different address types. The value of this object cannot be changed if the value of the corresponding teTunnelRowStatus object is 'active'. " ::= { teTunnelEntry 7 } teTunnelDestinationAddressType OBJECT-TYPE SYNTAX TeHopAddressType MAX-ACCESS read-create STATUS current DESCRIPTION "The type of Traffic Engineered Tunnel hop address for the destination of this Tunnel. The value of this object cannot be changed if the value of the corresponding teTunnelRowStatus object is 'active'. " ::= { teTunnelEntry 8 } teTunnelDestinationAddress OBJECT-TYPE SYNTAX TeHopAddress MAX-ACCESS read-create STATUS current DESCRIPTION "The Destination Traffic Engineered Tunnel hop address of this Tunnel. The type of this address is determined by the value of the corresponding teTunnelDestinationAddressType. Note that source and destination addresses of a Tunnel can be different address types. The value of this object cannot be changed if the value of the corresponding teTunnelRowStatus object is 'active'. " ::= { teTunnelEntry 9 } teTunnelState OBJECT-TYPE SYNTAX INTEGER { unknown(1), up(2), down(3), testing(4) } MAX-ACCESS read-only STATUS current DESCRIPTION "The operational state of the Tunnel." ::= { teTunnelEntry 10 } teTunnelDiscontinuityTimer 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 tunnel's counters suffered a discontinuity. The relevant counters are teTunnelOctets, teTunnelPackets, teTunnelLPOctets, and teTunnelLPPackets. If no such discontinuities have occurred since the last re-initialization of the local management subsystem then this object contains a zero value. " ::= { teTunnelEntry 11 } teTunnelOctets OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of octets that have been forwarded over the Tunnel. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times, as indicated by the value of teTunnelDiscontinuityTimer. " ::= { teTunnelEntry 12 } teTunnelPackets OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of packets that have been forwarded over the Tunnel. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times, as indicated by the value of teTunnelDiscontinuityTimer. " ::= { teTunnelEntry 13 } teTunnelLPOctets OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of octets that have been forwarded over the Tunnel. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times, as indicated by the value of teTunnelDiscontinuityTimer. " ::= { teTunnelEntry 14 } teTunnelLPPackets OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of packets that have been forwarded over the Tunnel. Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times, as indicated by the value of teTunnelDiscontinuityTimer. " ::= { teTunnelEntry 15 } teTunnelAge OBJECT-TYPE SYNTAX TimeTicks MAX-ACCESS read-only STATUS current DESCRIPTION "The age (i.e., time from creation of this conceptual row till now) of this Tunnel in hundredths of a second. Note that because TimeTicks wrap in about 16 months, this value is best used in interval measurements. " ::= { teTunnelEntry 16 } teTunnelTimeUp OBJECT-TYPE SYNTAX TimeTicks MAX-ACCESS read-only STATUS current DESCRIPTION "The total time in hundredths of a second that this Tunnel has been operational. Note that because TimeTicks wrap in about 16 months, this value is best used in interval measurements. An example of usage of this object would be to compute the percentage up time over a period of time by obtaining values of teTunnelAge and teTunnelTimeUp at two points in time and computing the following ratio: ((teTunnelTimeUp2 - teTunnelTimeUp1)/ (teTunnelAge2 - teTunnelAge1)) * 100 %. In doing so, the management station must account for wrapping of the values of teTunnelAge and teTunnelTimeUp between the two measurements. " ::= { teTunnelEntry 17 } teTunnelPrimaryTimeUp OBJECT-TYPE SYNTAX TimeTicks MAX-ACCESS read-only STATUS current DESCRIPTION "The total time in hundredths of a second that this Tunnel's primary path has been operational. Note that because TimeTicks wrap in about 16 months, this value is best used in interval measurements. An example of usage of this field would be to compute what percentage of time that a TE Tunnel was on the primary path over a period of time by computing ((teTunnelPrimaryTimeUp2 - teTunnelPrimaryTimeUp1)/ (teTunnelTimeUp2 - teTunnelTimeUp1))*100 %. In doing so, the management station must account for wrapping of the values of teTunnelPrimaryTimeUp and teTunnelTimeUp between the two measurements. " ::= { teTunnelEntry 18 } teTunnelTransitions OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of operational state transitions (up -> down and down -> up) this Tunnel has undergone. " ::= { teTunnelEntry 19 } teTunnelLastTransition OBJECT-TYPE SYNTAX TimeTicks MAX-ACCESS read-only STATUS current DESCRIPTION "The time in hundredths of a second since the last operational state transition occurred on this Tunnel. Note that if the last transition was over 16 months ago, this value will be inaccurate. " ::= { teTunnelEntry 20 } teTunnelPathChanges OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of path changes this Tunnel has had." ::= { teTunnelEntry 21 } teTunnelLastPathChange OBJECT-TYPE SYNTAX TimeTicks MAX-ACCESS read-only STATUS current DESCRIPTION "The time in hundredths of a second since the last path change occurred on this Tunnel. Note that if the last transition was over 16 months ago, this value will be inaccurate. Path changes may be caused by network events or by reconfiguration that affects the path. " ::= { teTunnelEntry 22 } teTunnelConfiguredPaths OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of paths configured for this Tunnel." ::= { teTunnelEntry 23 } teTunnelStandbyPaths OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of standby paths configured for this Tunnel. " ::= { teTunnelEntry 24 } teTunnelOperationalPaths OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of operational paths for this Tunnel. This includes the path currently active, as well as operational standby paths. " ::= { teTunnelEntry 25 } -- **************************************************************** -- -- Tunnel Path Table -- tePathTable OBJECT-TYPE SYNTAX SEQUENCE OF TePathEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Table of Configured Traffic Tunnels." ::= { teMIBObjects 3 } tePathEntry OBJECT-TYPE SYNTAX TePathEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Entry containing information about a particular Traffic Tunnel. Each Traffic Tunnel can have zero or more Traffic Paths. As a Traffic Path can only exist over an existing Traffic Tunnel, all tePathEntries with a value of n for teTunnelIndex MUST be removed by the implementation when the corresponding teTunnelEntry with a value of n for teTunnelIndex is removed. " INDEX { teTunnelIndex, tePathIndex } ::= { tePathTable 1 } TePathEntry ::= SEQUENCE { tePathIndex Unsigned32, tePathName SnmpAdminString, -- Conceptual row information tePathRowStatus RowStatus, tePathStorageType StorageType, -- Path properties tePathType INTEGER, tePathConfiguredRoute Unsigned32, tePathBandwidth MplsBitRate, tePathIncludeAny Unsigned32, tePathIncludeAll Unsigned32, tePathExclude Unsigned32, tePathSetupPriority Integer32, tePathHoldPriority Integer32, tePathProperties BITS, -- Path status tePathOperStatus INTEGER, tePathAdminStatus INTEGER, tePathComputedRoute Unsigned32, tePathRecordedRoute Unsigned32 } tePathIndex OBJECT-TYPE SYNTAX Unsigned32 (1..4294967295) MAX-ACCESS not-accessible STATUS current DESCRIPTION "An index that uniquely identifies a path within a Tunnel. The combination of thus uniquely identifies a path among all paths on this router. " ::= { tePathEntry 1 } tePathName OBJECT-TYPE SYNTAX SnmpAdminString (SIZE(0..32)) MAX-ACCESS read-create STATUS current DESCRIPTION "The name of this path. A pathName must be unique within the set of paths over a single tunnel. If a SET request is received with a duplicate name, then the implementation MUST return an inconsistentValue error. The value of this object cannot be changed if the value of the corresponding teTunnelRowStatus object is 'active'. " ::= { tePathEntry 2 } tePathRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "The status of this conceptual row. When the value of this object is 'active', then the value of tePathName cannot be changed. All other writable objects may be changed; however, these changes may affect traffic going over the TE tunnel or require the path to be computed and/or re-signaled. " ::= { tePathEntry 3 } tePathStorageType OBJECT-TYPE SYNTAX StorageType MAX-ACCESS read-create STATUS current DESCRIPTION "The storage type for this conceptual row. Conceptual rows having the value 'permanent' need not allow write-access to any columnar objects in the row. " ::= { tePathEntry 4 } tePathType OBJECT-TYPE SYNTAX INTEGER { other(1), primary(2), standby(3), secondary(4) } MAX-ACCESS read-create STATUS current DESCRIPTION "The type for this PathEntry; i.e., whether this path is a primary path, a standby path, or a secondary path. " ::= { tePathEntry 5 } tePathConfiguredRoute OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-create STATUS current DESCRIPTION "The route that this TE path is configured to follow; i.e., an ordered list of hops. The value of this object gives the primary index into the Hop Table. The secondary index is the hop count in the path, so to get the route, one could get the first hop with index in the Hop Table and do a getnext to get subsequent hops. " ::= { tePathEntry 6 } tePathBandwidth OBJECT-TYPE SYNTAX MplsBitRate UNITS "Kilobits per second" MAX-ACCESS read-create STATUS current DESCRIPTION "The configured bandwidth for this Tunnel, in units of thousands of bits per second (Kbps). " DEFVAL { 0 } ::= { tePathEntry 7 } tePathIncludeAny OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-create STATUS current DESCRIPTION "This is a configured set of administrative groups specified as a bit vector (i.e., bit n is 1 if group n is in the set, where n = 0 is the LSB). For each link that this path goes through, the link must have at least one of the groups specified in IncludeAny to be acceptable. If IncludeAny is zero, all links are acceptable. " DEFVAL { 0 } ::= { tePathEntry 8 } tePathIncludeAll OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-create STATUS current DESCRIPTION "This is a configured set of administrative groups specified as a bit vector (i.e., bit n is 1 if group n is in the set, where n = 0 is the LSB). For each link that this path goes through, the link must have all of the groups specified in IncludeAll to be acceptable. If IncludeAll is zero, all links are acceptable. " DEFVAL { 0 } ::= { tePathEntry 9 } tePathExclude OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-create STATUS current DESCRIPTION "This is a configured set of administrative groups specified as a bit vector (i.e., bit n is 1 if group n is in the set, where n = 0 is the LSB). For each link that this path goes through, the link MUST have groups associated with it, and the intersection of the link's groups and the 'exclude' set MUST be null. " DEFVAL { 0 } ::= { tePathEntry 10 } tePathSetupPriority OBJECT-TYPE SYNTAX Integer32 (0..7) MAX-ACCESS read-create STATUS current DESCRIPTION "The setup priority configured for this path, with 0 as the highest priority and 7 as the lowest. " DEFVAL { 7 } ::= { tePathEntry 11 } tePathHoldPriority OBJECT-TYPE SYNTAX Integer32 (0..7) MAX-ACCESS read-create STATUS current DESCRIPTION "The hold priority configured for this path, with 0 as the highest priority and 7 as the lowest. " DEFVAL { 0 } ::= { tePathEntry 12 } tePathProperties OBJECT-TYPE SYNTAX BITS { recordRoute(0), cspf(1), makeBeforeBreak(2), mergeable(3), fastReroute(4), protected(5) } MAX-ACCESS read-create STATUS current DESCRIPTION "The set of configured properties for this path, expressed as a bit map. For example, if the path supports 'make before break', then bit 2 is set. " ::= { tePathEntry 13 } tePathOperStatus OBJECT-TYPE SYNTAX INTEGER { unknown(0), down(1), testing(2), dormant(3), ready(4), operational(5) } MAX-ACCESS read-only STATUS current DESCRIPTION "The operational status of the path: unknown: down: Signaling failed. testing: Administratively set aside for testing. dormant: Not signaled (for a backup tunnel). ready: Signaled but not yet carrying traffic. operational: Signaled and carrying traffic. " ::= { tePathEntry 14 } tePathAdminStatus OBJECT-TYPE SYNTAX INTEGER { normal(1), testing(2) } MAX-ACCESS read-create STATUS current DESCRIPTION "The operational status of the path: normal: Used normally for forwarding. testing: Administratively set aside for testing. " ::= { tePathEntry 15 } tePathComputedRoute OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "The route computed for this path, perhaps using some form of Constraint-based Routing. The algorithm is implementation dependent. This object returns the computed route as an ordered list of hops. The value of this object gives the primary index into the Hop Table. The secondary index is the hop count in the path, so to get the route, one could get the first hop with index in the Hop Table and do a getnext to get subsequent hops. A value of zero (0) means there is no computedRoute. " ::= { tePathEntry 16 } tePathRecordedRoute OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "The route actually used for this path, as recorded by the signaling protocol. This is again an ordered list of hops; each hop is expected to be strict. The value of this object gives the primary index into the Hop Table. The secondary index is the hop count in the path, so to get the route, one can get the first hop with index in the Hop Table and do a getnext to get subsequent hops. A value of zero (0) means there is no recordedRoute. " ::= { tePathEntry 17 } -- **************************************************************** -- -- Tunnel Path Hop Table -- tePathHopTable OBJECT-TYPE SYNTAX SEQUENCE OF TePathHopEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Table of Tunnel Path Hops." ::= { teMIBObjects 4 } tePathHopEntry OBJECT-TYPE SYNTAX TePathHopEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Entry containing information about a particular hop. " INDEX { teHopListIndex, tePathHopIndex } ::= { tePathHopTable 1 } TePathHopEntry ::= SEQUENCE { teHopListIndex Unsigned32, tePathHopIndex Unsigned32, -- Conceptual row information tePathHopRowStatus RowStatus, tePathHopStorageType StorageType, tePathHopAddrType TeHopAddressType, tePathHopAddress TeHopAddress, tePathHopType INTEGER } teHopListIndex OBJECT-TYPE SYNTAX Unsigned32 (1..4294967295) MAX-ACCESS not-accessible STATUS current DESCRIPTION "An index that identifies a list of hops. This is the primary index to access hops. " ::= { tePathHopEntry 1 } tePathHopIndex OBJECT-TYPE SYNTAX Unsigned32 (1..4294967295) MAX-ACCESS not-accessible STATUS current DESCRIPTION "An index that identifies a particular hop among the list of hops for a path. An index of i identifies the ith hop. This is the secondary index for a hop entry. " ::= { tePathHopEntry 2 } tePathHopRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "The status of this conceptual row. Any field in this table can be changed, even if the value of this object is 'active'. However, such a change may cause traffic to be rerouted or even disrupted. " ::= { tePathHopEntry 3 } tePathHopStorageType OBJECT-TYPE SYNTAX StorageType MAX-ACCESS read-create STATUS current DESCRIPTION "The storage type for this conceptual row. Conceptual rows having the value 'permanent' need not allow write-access to any columnar objects in the row. " ::= { tePathHopEntry 4 } tePathHopAddrType OBJECT-TYPE SYNTAX TeHopAddressType MAX-ACCESS read-create STATUS current DESCRIPTION "The type of Traffic Engineered Tunnel hop Address of this hop. The value of this object cannot be changed if the value of the corresponding tePathRowStatus object is 'active'. " ::= { tePathHopEntry 5 } tePathHopAddress OBJECT-TYPE SYNTAX TeHopAddress MAX-ACCESS read-create STATUS current DESCRIPTION "The Traffic Engineered Tunnel hop Address of this hop. The type of this address is determined by the value of the corresponding tePathHopAddressType. The value of this object cannot be changed if the value of the corresponding teTunnelRowStatus object is 'active'. " ::= { tePathHopEntry 6 } tePathHopType OBJECT-TYPE SYNTAX INTEGER { unknown(0), loose(1), strict(2) } MAX-ACCESS read-only STATUS current DESCRIPTION "The type of hop: unknown: loose: This hop is a LOOSE hop. strict: This hop is a STRICT hop. " ::= { tePathHopEntry 7 } -- **************************************************************** -- -- TE Notifications -- teTunnelUp NOTIFICATION-TYPE OBJECTS { teTunnelName, tePathName } -- TunnelPath STATUS current DESCRIPTION "A teTunnelUp notification is generated when the Tunnel indexed by teTunnelName transitions to the 'up' state. A tunnel is up when at least one of its paths is up. The tePathName is the name of the path whose transition to up made the tunnel go up. This notification MUST be limited to at most one every minute, in case the tunnel flaps up and down. " ::= { teMIBNotifications 1 } teTunnelDown NOTIFICATION-TYPE OBJECTS { teTunnelName, tePathName } -- TunnelPath STATUS current DESCRIPTION "A teTunnelDown notification is generated when the Tunnel indexed by teTunnelName transitions to the 'down' state. A tunnel is up when at least one of its paths is up. The tePathName is the name of the path whose transition to down made the tunnel go down. This notification MUST be limited to at most one every minute, in case the tunnel flaps up and down. " ::= { teMIBNotifications 2 } teTunnelChanged NOTIFICATION-TYPE OBJECTS { teTunnelName, tePathName } -- toTunnelPath STATUS current DESCRIPTION "A teTunnelChanged notification is generated when an active path on the Tunnel indexed by teTunnelName changes or a new path becomes active. The value of tePathName is the new active path. This notification MUST be limited to at most one every minute, in case the tunnel changes quickly. " ::= { teMIBNotifications 3 } teTunnelRerouted NOTIFICATION-TYPE OBJECTS { teTunnelName, tePathName } -- toTunnelPath STATUS current DESCRIPTION "A teTunnelRerouted notification is generated when an active path for the Tunnel indexed by teTunnelName stays the same, but its route changes. This notification MUST be limited to at most one every minute, in case the tunnel reroutes quickly. " ::= { teMIBNotifications 4 } -- End of TE-MIB objects -- **************************************************************** -- -- TE Compliance Statements -- teGroups OBJECT IDENTIFIER ::= { teMIBConformance 1 } teModuleCompliance OBJECT IDENTIFIER ::= { teMIBConformance 2 } -- **************************************************************** -- -- TE object groups -- teTrafficEngineeringGroup OBJECT-GROUP OBJECTS { teTunnelName, teTunnelNextPathIndex, teTunnelRowStatus, teTunnelStorageType, teTunnelSourceAddressType, teTunnelSourceAddress, teTunnelDestinationAddressType, teTunnelDestinationAddress, teTunnelState, teTunnelDiscontinuityTimer, teTunnelOctets, teTunnelPackets, teTunnelLPOctets, teTunnelLPPackets, teTunnelAge, teTunnelTimeUp, teTunnelPrimaryTimeUp, teTunnelTransitions, teTunnelLastTransition, teTunnelPathChanges, teTunnelLastPathChange, teTunnelConfiguredPaths, teTunnelStandbyPaths, teTunnelOperationalPaths, tePathBandwidth, tePathIncludeAny, tePathIncludeAll, tePathExclude, tePathSetupPriority, tePathHoldPriority, tePathProperties, tePathOperStatus, tePathAdminStatus, tePathComputedRoute, tePathRecordedRoute, teDistProtocol, teSignalingProto, teNotificationEnable, teNextTunnelIndex, teNextPathHopIndex, teAdminGroupName, teAdminGroupRowStatus, teConfiguredTunnels, teActiveTunnels, tePrimaryTunnels, tePathName, tePathType, tePathRowStatus, tePathStorageType, tePathConfiguredRoute, tePathHopRowStatus, tePathHopStorageType, tePathHopAddrType, tePathHopAddress, tePathHopType } STATUS current DESCRIPTION "Objects for Traffic Engineering in this MIB module." ::= { teGroups 1 } teNotificationGroup NOTIFICATION-GROUP NOTIFICATIONS { teTunnelUp, teTunnelDown, teTunnelChanged, teTunnelRerouted } STATUS current DESCRIPTION "Notifications specified in this MIB module." ::= { teGroups 2 } -- **************************************************************** -- -- TE compliance statements -- -- There are four compliance statements: read-only and full -- compliance for regular TE devices, and read-only and full -- compliance for path computation servers. -- teModuleReadOnlyCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "When this MIB module is implemented without support for read-create (i.e., in read-only mode), then such an implementation can claim read-only compliance. Such a device can be monitored but cannot be configured with this MIB module. " MODULE -- enclosing module, i.e., TE-MIB MANDATORY-GROUPS { teTrafficEngineeringGroup } GROUP teNotificationGroup DESCRIPTION "Implementation of this group is optional." OBJECT teNotificationEnable MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT teAdminGroupName MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT teAdminGroupRowStatus SYNTAX RowStatus { active(1) } MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT teTunnelName MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT teTunnelRowStatus SYNTAX RowStatus { active(1) } MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT teTunnelStorageType MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT teTunnelSourceAddressType SYNTAX TeHopAddressType { ipv4(1), ipv6(2) } MIN-ACCESS read-only DESCRIPTION "Write access is not required. An implementation is only required to support IPv4 and IPv6 host addresses." OBJECT teTunnelSourceAddress MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT teTunnelDestinationAddressType MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT teTunnelDestinationAddress MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT tePathName MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT tePathRowStatus SYNTAX RowStatus { active(1) } MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT tePathStorageType MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT tePathType MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT tePathConfiguredRoute MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT tePathBandwidth MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT tePathIncludeAny MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT tePathIncludeAll MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT tePathExclude MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT tePathSetupPriority MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT tePathHoldPriority MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT tePathProperties MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT tePathAdminStatus MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT tePathHopRowStatus SYNTAX RowStatus { active(1) } MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT tePathHopStorageType MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT tePathHopAddrType MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT tePathHopAddress MIN-ACCESS read-only DESCRIPTION "Write access is not required." ::= { teModuleCompliance 1 } teModuleFullCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "When this MIB module is implemented with support for read-create, then the implementation can claim full compliance. Such devices can be both monitored and configured with this MIB module. " MODULE -- enclosing module, i.e., TE-MIB MANDATORY-GROUPS { teTrafficEngineeringGroup } GROUP teNotificationGroup DESCRIPTION "Implementation of this group is optional." OBJECT teAdminGroupRowStatus SYNTAX RowStatus { active(1) } WRITE-SYNTAX RowStatus { createAndGo(4), destroy(6) } DESCRIPTION "Support for notInService, createAndWait and notReady is not required. " OBJECT teTunnelRowStatus 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 teTunnelSourceAddressType SYNTAX TeHopAddressType { ipv4(1), ipv6(2) } DESCRIPTION "Write access is required. An implementation is only required to support IPv4 and IPv6 host addresses. " OBJECT tePathRowStatus 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 tePathHopRowStatus 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. " ::= { teModuleCompliance 2 } teModuleServerReadOnlyCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "When this MIB module is implemented by a path computation server without support for read-create (i.e., in read-only mode), then the implementation can claim read-only compliance. Such a device can be monitored but cannot be configured with this MIB module. " MODULE -- enclosing module, i.e., TE-MIB MANDATORY-GROUPS { teTrafficEngineeringGroup } GROUP teNotificationGroup DESCRIPTION "Implementation of this group is optional." OBJECT teNotificationEnable MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT teAdminGroupName MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT teAdminGroupRowStatus SYNTAX RowStatus { active(1) } MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT teTunnelName MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT teTunnelRowStatus SYNTAX RowStatus { active(1) } MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT teTunnelStorageType MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT teTunnelSourceAddressType MIN-ACCESS read-only DESCRIPTION "Write access is not required. A path computation server SHOULD implement all types of tunnel source address types. " OBJECT teTunnelSourceAddress MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT teTunnelDestinationAddressType MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT teTunnelDestinationAddress MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT tePathName MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT tePathRowStatus SYNTAX RowStatus { active(1) } MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT tePathStorageType MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT tePathType MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT tePathConfiguredRoute MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT tePathBandwidth MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT tePathIncludeAny MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT tePathIncludeAll MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT tePathExclude MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT tePathSetupPriority MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT tePathHoldPriority MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT tePathProperties MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT tePathAdminStatus MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT tePathHopRowStatus SYNTAX RowStatus { active(1) } MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT tePathHopStorageType MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT tePathHopAddrType MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT tePathHopAddress MIN-ACCESS read-only DESCRIPTION "Write access is not required." ::= { teModuleCompliance 3 } teModuleServerFullCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "When this MIB module is implemented by a path computation server with support for read-create, then the implementation can claim full compliance. " MODULE -- enclosing module, i.e., TE-MIB MANDATORY-GROUPS { teTrafficEngineeringGroup } GROUP teNotificationGroup DESCRIPTION "Implementation of this group is optional." OBJECT teAdminGroupRowStatus SYNTAX RowStatus { active(1) } WRITE-SYNTAX RowStatus { createAndGo(4), destroy(6) } DESCRIPTION "Support for notInService, createAndWait, and notReady is not required. " OBJECT teTunnelRowStatus 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 teTunnelSourceAddressType DESCRIPTION "Write access is required. An implementation of a path computation server SHOULD support all types of tunnel source address types. " OBJECT tePathRowStatus 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 tePathHopRowStatus 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. " ::= { teModuleCompliance 4 } END