Network Working Group Kireeti Kompella Internet Draft Juniper Networks Expiration Date: March 2001 A Traffic Engineering MIB draft-ietf-tewg-mib-00.txt 1. Status of this Memo This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as ``work in progress.'' The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. 2. Abstract This memo defines an experimental portion of the Management Information Base (MIB) for use with network management protocols in the Internet community. In particular, it describes managed objects for Traffic Engineered Tunnels, for example, Multi-Protocol Label Switched Paths ([1], [2]). draft-ietf-tewg-mib-00.txt [Page 1] Internet Draft draft-ietf-tewg-mib-00.txt September 2000 3. Introduction This memo defines an experimental portion of the Management Information Base (MIB) for use with network management protocols in the Internet community. In particular, it describes managed objects for Traffic Engineered Tunnels, for example, Multi-Protocol Label Switched Paths ([1], [2]). 4. The SNMP Network Management Framework The SNMP Management Framework presently consists of five major components: o An overall architecture, described in RFC 2571 [3]. o Mechanisms for describing and naming objects and events for the purpose of management. The first version of this Structure of Management Information (SMI) is called SMIv1 and described in STD 16, RFC 1155 [4], STD 16, RFC 1212 [5] and RFC 1215 [6]. The second version, called SMIv2, is described in STD 58, which consists of RFC 2578 [7], RFC 2579 [8] and RFC 2580 [9]. o Message protocols for transferring management information. The first version of the SNMP message protocol is called SNMPv1 and described in STD 15, RFC 1157 [10]. A second version of the SNMP message protocol, which is not an Internet standards track protocol, is called SNMPv2c and described in RFC 1901 [11] and RFC 1906 [12]. The third version of the message protocol is called SNMPv3 and described in RFC 1906 [12], RFC 2572 [13] and RFC 2574 [14]. o Protocol operations for accessing management information. The first set of protocol operations and associated PDU formats is described in STD 15, RFC 1157 [10]. A second set of protocol operations and associated PDU formats is described in RFC 1905 [15]. o A set of fundamental applications described in RFC 2573 [16] and the view-based access control mechanism described in RFC 2575 [17]. A more detailed introduction to the current SNMP Management Framework can be found in RFC 2570 [18]. Managed objects are accessed via a virtual information store, termed the Management Information Base or MIB. Objects in the MIB are defined using the mechanisms defined in the SMI. draft-ietf-tewg-mib-00.txt [Page 2] Internet Draft draft-ietf-tewg-mib-00.txt September 2000 This memo specifies a MIB module that is compliant to the SMIv2. A MIB conforming to the SMIv1 can be produced through the appropriate translations. The resulting translated MIB must be semantically equivalent, except where objects or events are omitted because no translation is possible (e.g., use of Counter64). Some machine readable information in SMIv2 will be converted into textual descriptions in SMIv1 during the translation process. However, this loss of machine readable information is not considered to change the semantics of the MIB. 4.1. Object Definitions Managed objects are accessed via a virtual information store, termed the Management Information Base or MIB. Objects in the MIB are defined using the subset of Abstract Syntax Notation One (ASN.1) defined in the SMI. In particular, each object type is named by an OBJECT IDENTIFIER, an administratively assigned name. The object type together with an object instance serves to uniquely identify a specific instantiation of the object. For human convenience, we often use a textual string, termed the descriptor, to also refer to the object type. 5. Overview of the MIB The Traffic Engineering MIB consists of two parts: 1) Traffic Engineering information; and 2) information about Traffic Tunnels. The following subsections give an overview of each part. Note that currently, the MIB is organised as a read-only MIB. At some future point, some of the information may be writable, i.e., configurable through SNMP. 5.1. Traffic Engineering Information This part contains information about the Link State Protocols used to carry TE information, the signalling protocols used to set up Traffic Tunnels, the number of Traffic Tunnels that have been configured and that are operational, and a mapping of Administrative Group numbers to names. draft-ietf-tewg-mib-00.txt [Page 3] Internet Draft draft-ietf-tewg-mib-00.txt September 2000 5.2. Traffic Tunnel Information This part contains a list of Traffic Tunnels and information about each one. This information includes the Trunk name, its configuration information, its operational information, as well as information about the paths defined for the Traffic Tunnel. Configuration information includes the end points of the Traffic Tunnel, and the number of configured paths for the Traffic Tunnel. Operational information includes the current state (up/down), the count of octets and packets sent on the Traffic Tunnel, how long it has been up, and how many state transitions the Traffic Tunnel has had. Path information includes the name, the Explicit Route, the bandwidth, the setup and hold priorities, the Administrative Group constraints, and the Class of Service (CoS). Operational path information includes the Recorded Route, the number of operational paths, the number of path changes, and when the last path change was. 6. MIB Specification TE-MIB DEFINITIONS ::= BEGIN IMPORTS MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, enterprises, Integer32, Counter32, Counter64, IpAddress FROM SNMPv2-SMI DisplayString, TimeStamp FROM SNMPv2-TC; te MODULE-IDENTITY LAST-UPDATED "200009060000Z" ORGANIZATION "Juniper Networks, Inc." CONTACT-INFO " Kireeti Kompella Postal: Juniper Networks, Inc. 1194 Mathilda Ave Sunnyvale, CA 94089 Tel: +1 408 745 2000 E-mail: kireeti@juniper.net" DESCRIPTION "The Traffic Engineering MIB module" draft-ietf-tewg-mib-00.txt [Page 4] Internet Draft draft-ietf-tewg-mib-00.txt September 2000 ::= { experimental TBD } teInfo OBJECT IDENTIFIER ::= { te 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 LSR for the purpose of automatic path computation." ::= { teInfo 1 } teSignalingProto OBJECT-TYPE SYNTAX BITS { other(0), rsvp(1), crldp(2) } MAX-ACCESS read-only STATUS current DESCRIPTION "Bit vector of supported TE signaling protocols." ::= { teInfo 2 } teAdminGroupList OBJECT-TYPE SYNTAX SEQUENCE OF teAdminGroup MAX-ACCESS not-accessible STATUS current DESCRIPTION "List of configured administrative groups. Administrative groups are used to label links in the Traffic Engineering topology in order to place constraints (include and exclude) on Tunnel paths." ::= { teInfo 3 } teAdminGroup OBJECT-TYPE SYNTAX teAdminGroup 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 0 and 31, inclusive." draft-ietf-tewg-mib-00.txt [Page 5] Internet Draft draft-ietf-tewg-mib-00.txt September 2000 INDEX { teAdminGroupNumber } ::= { teAdminGroupList 1 } teAdminGroup ::= SEQUENCE { teAdminGroupNumber INTEGER (0..31), teAdminGroupName DisplayString } teAdminGroupNumber OBJECT-TYPE SYNTAX INTEGER (0..31) MAX-ACCESS read-only STATUS current DESCRIPTION "Index of the administrative group." ::= { teAdminGroup 1 } teAdminGroupName OBJECT-TYPE SYNTAX DisplayString (SIZE (0..16)) MAX-ACCESS read-only STATUS current DESCRIPTION "Name of the administrative group." ::= { teAdminGroup 2 } teConfiguredTunnels OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-only STATUS current DESCRIPTION "Number of configured Tunnels." ::= { teInfo 4 } teActiveTunnels OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-only STATUS current DESCRIPTION "Number of active Tunnels." ::= { teInfo 5 } teTunnelList OBJECT-TYPE SYNTAX SEQUENCE OF teTunnelEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "List of Configured Traffic Tunnels." ::= { te 2 } teTunnelEntry OBJECT-TYPE SYNTAX teTunnelEntry MAX-ACCESS not-accessible STATUS current draft-ietf-tewg-mib-00.txt [Page 6] Internet Draft draft-ietf-tewg-mib-00.txt September 2000 DESCRIPTION "Entry containing information about a particular Traffic Tunnel." INDEX { teTunnelName } ::= { teTunnelList 1 } teTunnelEntry ::= SEQUENCE { teTunnelName DisplayString, teTunnelState INTEGER, teTunnelOctets Counter64, teTunnelPackets Counter64, teTunnelAge TimeStamp, teTunnelTimeUp TimeStamp, teTunnelPrimaryTimeUp TimeStamp, teTunnelTransitions Counter32, teTunnelLastTransition TimeStamp, teTunnelPathChanges Counter32, teTunnelLastPathChange TimeStamp, teTunnelConfiguredPaths Integer32, teTunnelStandbyPaths Integer32, teTunnelOperationalPaths Integer32, teTunnelFrom IpAddress, teTunnelTo IpAddress, tePathName DisplayString, tePathType INTEGER, tePathExplicitRoute OCTET STRING (SIZE (0..1024)), tePathRecordRoute OCTET STRING (SIZE (0..1024)), tePathBandwidth Integer32, tePathCOS INTEGER (0..7 | 255), tePathIncludeAny Integer32, tePathIncludeAll Integer32, tePathExclude Integer32, tePathSetupPriority INTEGER (0..7), tePathHoldPriority INTEGER (0..7), tePathProperties BITS } teTunnelName OBJECT-TYPE SYNTAX DisplayString (SIZE (0..32)) MAX-ACCESS read-only STATUS current DESCRIPTION "Name of the Traffic Tunnel." ::= { teTunnelEntry 1 } teTunnelState OBJECT-TYPE SYNTAX INTEGER { unknown(1), draft-ietf-tewg-mib-00.txt [Page 7] Internet Draft draft-ietf-tewg-mib-00.txt September 2000 up(2), down(3) } MAX-ACCESS read-only STATUS current DESCRIPTION "The operational state of the Tunnel." ::= { teTunnelEntry 2 } teTunnelOctets OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of octets that have been forwarded over the Tunnel." ::= { teTunnelEntry 3 } teTunnelPackets OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of packets that have been forwarded over the Tunnel." ::= { teTunnelEntry 4 } teTunnelAge OBJECT-TYPE SYNTAX TimeStamp MAX-ACCESS read-only STATUS current DESCRIPTION "The age (i.e., time from creation till now) of this Tunnel in 10-millisecond periods." ::= { teTunnelEntry 5 } teTunnelTimeUp OBJECT-TYPE SYNTAX TimeStamp MAX-ACCESS read-only STATUS current DESCRIPTION "The total time in 10-millisecond units that this Tunnel has been operational. For example, the percentage up time can be determined by computing (teTunnelTimeUp/teTunnelAge * 100 %)." ::= { teTunnelEntry 6 } teTunnelPrimaryTimeUp OBJECT-TYPE SYNTAX TimeStamp draft-ietf-tewg-mib-00.txt [Page 8] Internet Draft draft-ietf-tewg-mib-00.txt September 2000 MAX-ACCESS read-only STATUS current DESCRIPTION "The total time in 10-millisecond units that this Tunnel's primary path has been operational. For example, the percentage contribution of the primary path to the operational time is given by (teTunnelPrimaryTimeUp/teTunnelTimeUp * 100) %." ::= { teTunnelEntry 7 } teTunnelTransitions OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of state transitions (up -> down and down -> up) this Tunnel has undergone." ::= { teTunnelEntry 8 } teTunnelLastTransition OBJECT-TYPE SYNTAX TimeStamp MAX-ACCESS read-only STATUS current DESCRIPTION "The time in 10-millisecond units since the last transition occurred on this Tunnel." ::= { teTunnelEntry 9 } teTunnelPathChanges OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of path changes this Tunnel has had. For every path change (path down, path up, path change), a corresponding syslog/trap (if enabled) is generated for it." ::= { teTunnelEntry 10 } teTunnelLastPathChange OBJECT-TYPE SYNTAX TimeStamp MAX-ACCESS read-only STATUS current DESCRIPTION "The time in 10-millisecond units since the last change occurred on this Tunnel." ::= { teTunnelEntry 11 } draft-ietf-tewg-mib-00.txt [Page 9] Internet Draft draft-ietf-tewg-mib-00.txt September 2000 teTunnelConfiguredPaths OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of paths configured for this Tunnel." ::= { teTunnelEntry 12 } teTunnelStandbyPaths OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of standby paths configured for this Tunnel." ::= { teTunnelEntry 13 } teTunnelOperationalPaths OBJECT-TYPE SYNTAX Integer32 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 14 } teTunnelFrom OBJECT-TYPE SYNTAX IpAddress MAX-ACCESS read-only STATUS current DESCRIPTION "Source IP address of this Tunnel." ::= { teTunnelEntry 15 } teTunnelTo OBJECT-TYPE SYNTAX IpAddress MAX-ACCESS read-only STATUS current DESCRIPTION "Destination IP address of this Tunnel." ::= { teTunnelEntry 16 } tePathName OBJECT-TYPE SYNTAX DisplayString (SIZE(0..16)) MAX-ACCESS read-only STATUS current DESCRIPTION draft-ietf-tewg-mib-00.txt [Page 10] Internet Draft draft-ietf-tewg-mib-00.txt September 2000 "The name of the active path for this Tunnel, if any. If there is none, the name should be empty; in that case, the rest of the fields in teTunnelEntry are meaningless." ::= { teTunnelEntry 17 } tePathType OBJECT-TYPE SYNTAX INTEGER { other(1), primary(2), standby(3), secondary(4) } MAX-ACCESS read-only STATUS current DESCRIPTION "The type of path that is active, i.e., a primary path, a standby path, or a generic secondary path. This field is meaningless if tePathName is empty." ::= { teTunnelEntry 18 } tePathExplicitRoute OBJECT-TYPE SYNTAX OCTET STRING (SIZE (0..1024)) MAX-ACCESS read-only STATUS current DESCRIPTION "The explicit route used to set up this Tunnel. This may either be the route configured by the user, or a route automatically computed to satisfy constraints set by the user. This field is a displayable string in the format of XXX.XXX.XXX.XXX S/L repeated for each explicit address. The S/L character stands for Strict/Loose route. This field is meaningless if tePathName is empty." ::= { teTunnelEntry 19 } tePathRecordRoute OBJECT-TYPE SYNTAX OCTET STRING (SIZE (0..1024)) MAX-ACCESS read-only STATUS current DESCRIPTION "The route actually used for this path, as recorded by the signaling protocol. This field is a displayable string in the format of XXX.XXX.XXX.XXX repeated for each address. draft-ietf-tewg-mib-00.txt [Page 11] Internet Draft draft-ietf-tewg-mib-00.txt September 2000 This field is meaningless if tePathName is empty." ::= { teTunnelEntry 20 } tePathBandwidth OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-only STATUS current DESCRIPTION "The configured bandwidth for this Tunnel, in units of thousands of bits per second (Kbps). This field is meaningless if tePathName is empty." ::= { teTunnelEntry 21 } tePathCOS OBJECT-TYPE SYNTAX INTEGER (0..7 | 255) MAX-ACCESS read-only STATUS current DESCRIPTION "The configured Class Of Service on this path. If the value is between 0 and 7 inclusive, this value will be used for the path. If the value is 255, the value used for the path will depend on the incoming packet. This field is meaningless if tePathName is empty." ::= { teTunnelEntry 22 } tePathIncludeAny OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-only 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. This field is meaningless if tePathName is empty." ::= { teTunnelEntry 23 } tePathIncludeAll OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-only 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 draft-ietf-tewg-mib-00.txt [Page 12] Internet Draft draft-ietf-tewg-mib-00.txt September 2000 link that this path goes through, the link must have all of the groups specified in IncludeAny to be acceptable. If IncludeAny is zero, all links are acceptable. This field is meaningless if tePathName is empty." ::= { teTunnelEntry 24 } tePathExclude OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-only STATUS current DESCRIPTION "This is a configured set of colors (administrative groups) specified as a bit vector (i.e., bit n is 1 if color n is in the set, where n = 0 is the LSB). For each link that this path goes through, the link MUST have colors associated with it, and the intersection of the link's colors and the 'exclude' set MUST be null. This field is meaningless if tePathName is empty." ::= { teTunnelEntry 25 } tePathSetupPriority OBJECT-TYPE SYNTAX INTEGER (0..7) MAX-ACCESS read-only STATUS current DESCRIPTION "The setup priority configured for this path. This field is meaningless if tePathName is empty." ::= { teTunnelEntry 26 } tePathHoldPriority OBJECT-TYPE SYNTAX INTEGER (0..7) MAX-ACCESS read-only STATUS current DESCRIPTION "The hold priority configured for this path. This field is meaningless if tePathName is empty." ::= { teTunnelEntry 27 } tePathProperties OBJECT-TYPE SYNTAX BITS { record-route(0), adaptive(1), cspf(2), mergeable(3), fast-reroute(4) } draft-ietf-tewg-mib-00.txt [Page 13] Internet Draft draft-ietf-tewg-mib-00.txt September 2000 MAX-ACCESS read-only STATUS current DESCRIPTION "The set of configured properties for this path, expressed as a bit map. For example, if the path is an adaptive path, bit 1 is set. This field is meaningless if tePathName is empty." ::= { teTunnelEntry 28 } -- -- definition of TE traps -- teTraps OBJECT IDENTIFIER ::= { te 3 } teTunnelUp NOTIFICATION-TYPE OBJECTS { teTunnelName, tePathName } -- TunnelPath STATUS current DESCRIPTION "An teTunnelUp trap signifies that the specified Tunnel is up. The current active path for the Tunnel is tePathName." ::= { teTraps 1 } teTunnelDown NOTIFICATION-TYPE OBJECTS { teTunnelName, tePathName } -- TunnelPath STATUS current DESCRIPTION "An teTunnelDown trap signifies that the specified Tunnel is down, because the current active path tePathName went down." ::= { teTraps 2 } teTunnelChange NOTIFICATION-TYPE OBJECTS { teTunnelName, tePathName } -- toTunnelPath STATUS current DESCRIPTION "An teTunnelChange trap signifies that the specified Tunnel has switched traffic to the new active path 'toTunnelPath'. The Tunnel maintains up state before and after the switch over." ::= { teTraps 3 } END draft-ietf-tewg-mib-00.txt [Page 14] Internet Draft draft-ietf-tewg-mib-00.txt September 2000 7. References [1] Callon, R., Doolan, P., Feldman, N., Fredette, A., Swallow, G., and A. Viswanathan, "A Framework for Multiprotocol Label Switching", draft-ietf-mpls-framework-05.txt (work in progress) [2] Awduche, D., Malcolm, J., Agogbua, J., O'Dell, M., and J. McManus, "Requirements for Traffic Engineering Over MPLS", RFC 2702, September 1999. [3] Harrington, D., Presuhn, R. and B. Wijnen, "An Architecture for Describing SNMP Management Frameworks", RFC 2571, April 1999. [4] Rose, M. and K. McCloghrie, "Structure and Identification of Management Information for TCP/IP-based Internets", STD 16, RFC 1155, May 1990. [5] Rose, M. and K. McCloghrie, "Concise MIB Definitions", STD 16, RFC 1212, March 1991. [6] Rose, M., "A Convention for Defining Traps for use with the SNMP", RFC 1215, March 1991. [7] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., Rose, M. and S. Waldbusser, "Structure of Management Information Version 2 (SMIv2)", STD 58, RFC 2578, April 1999. [8] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., Rose, M. and S. Waldbusser, "Textual Conventions for SMIv2", STD 58, RFC 2579, April 1999. [9] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., Rose, M. and S. Waldbusser, "Conformance Statements for SMIv2", STD 58, RFC 2580, April 1999. [10] Case, J., Fedor, M., Schoffstall, M. and J. Davin, "Simple Network Management Protocol", STD 15, RFC 1157, May 1990. [11] Case, J., McCloghrie, K., Rose, M. and S. Waldbusser, "Introduction to Community-based SNMPv2", RFC 1901, January 1996. [12] Case, J., McCloghrie, K., Rose, M. and S. Waldbusser, "Transport Mappings for Version 2 of the Simple Network Management Protocol (SNMPv2)", RFC 1906, January 1996. [13] Case, J., Harrington D., Presuhn R. and B. Wijnen, "Message Processing and Dispatching for the Simple Network Management draft-ietf-tewg-mib-00.txt [Page 15] Internet Draft draft-ietf-tewg-mib-00.txt September 2000 Protocol (SNMP)", RFC 2572, January 1998. [14] Blumenthal, U. and B. Wijnen, "User-based Security Model (USM) for version 3 of the Simple Network Management Protocol (SNMPv3)", RFC 2574, January 1998. [15] Case, J., McCloghrie, K., Rose, M. and S. Waldbusser, "Protocol Operations for Version 2 of the Simple Network Management Protocol (SNMPv2)", RFC 1905, January 1996. [16] Levi, D., Meyer, P. and B. Stewart, "SMPv3 Applications", RFC 2573, January 1998. [17] Wijnen, B., Presuhn, R. and K. McCloghrie, "View-based Access Control Model (VACM) for the Simple Network Management Protocol (SNMP)", RFC 2575, January 1998. [18] Case, J., Mundy, R., Partain, D. and B. Stewart, "Introduction to Version 3 of the Internet-standard Network Management Framework", RFC 2570, April 1999. draft-ietf-tewg-mib-00.txt [Page 16]