Traffic Engineering Working Group                      Kireeti Kompella
Internet Draft                                         Juniper Networks
Expiration Date: August 2002


                       A Traffic Engineering MIB

                       draft-ietf-tewg-mib-02.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 a standards-track 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.












draft-ietf-tewg-mib-02.txt                                      [Page 1]


Internet Draft         draft-ietf-tewg-mib-02.txt          February 2002


3. Introduction

   This memo defines a portion of the Management Information Base (MIB)
   for use with network management protocols in the Internet community.
   In particular, it describes managed objects for Traffic Engineered
   Tunnels, for example, Multi-Protocol Label Switched Paths ([1], [2]).
   This memo is a standards-track document.  The MIB that this memo
   defines allows one to configure TE Tunnels, assign one or more paths
   to a Tunnel, and monitor operational aspects of the Tunnel, such as
   the number of octets and packets that have passed through the Tunnel.


3.1. Remaining work

    o Normalize the Textual Conventions -- can they be reused from the
      MPLS TC MIB?  From the InetAddress MIB, ...?
    o Add RowStatus objects for the Tunnel, Path and PathHop tables.
      Also, add Persistency information.
    o Add a Full Compliance statement for agents that want to implement
      the TE MIB with read-create capabilities.
    o Add a Security Section.


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



draft-ietf-tewg-mib-02.txt                                      [Page 2]


Internet Draft         draft-ietf-tewg-mib-02.txt          February 2002


         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.

   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.


5. Overview of the MIB

   The Traffic Engineering MIB consists of four parts:
      1) Traffic Engineering information;
      2) a table of Traffic Tunnels;
      3) a table of Paths that tunnels take;
      4) a table of Hops that make up a tunnel path.
   The MIB also has a compliance statement.

   The following subsections give an overview of each part.  The
   compliance statement says that all objects are mandatory, but need
   only be implemented read-only; and that notifications are optional.


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-02.txt                                      [Page 3]


Internet Draft         draft-ietf-tewg-mib-02.txt          February 2002


5.2. Traffic Tunnel Information

   This part contains a table of Traffic Tunnels and information about
   each one.  This information includes the Tunnel name, its
   configuration information, its operational information, and the
   active path(s) that the Tunnel takes.

   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.

   Operational path information includes the number of operational
   paths, the number of path changes, and when the last path change was.


5.3. Path Information

   A Tunnel is a logical entity.  An instantiation of a Tunnel is one or
   more Paths; each Path has a route (also called Explicit Route) or
   sequence of hops.

   The configured information for a Path consists of the constraints for
   the Path and a configured route.

   The operational information consists of the Path status, as well as
   the computed route (i.e., the route that was computed to satisfy the
   constraints), and the actual path as recorded by the signaling
   protocol.


5.4. Hop Information

   A path consists of a sequence of hops; a hop can be loose (meaning
   that the path eventually traverses the specified node) or strict
   (meaning that the specified node and possibly link must be the next
   node in the path).  A hop can be specified as an IPv4 address, an
   IPv6 address, an Autonomous System number or an unnumbered interface
   index.

   The Hop Table contains all hops for all paths on a given router.  It
   is organized as follows.  There is a primary index that identifies a
   list of hops and a secondary index that identifies individual hops.
   Thus, to get the sequence of recorded hops for a path, one looks up
   the path's tePathRecordedRoute, which is a primary index into the Hop



draft-ietf-tewg-mib-02.txt                                      [Page 4]


Internet Draft         draft-ietf-tewg-mib-02.txt          February 2002


   Table.  Then to get the list of actual hops in order for the recorded
   path, one uses a secondary index of 1, 2, ....


6. MIB Specification

   TE-MIB DEFINITIONS ::= BEGIN

   IMPORTS
       MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
       mib-2, Integer32, Gauge32, Counter32, Counter64,
       Unsigned32, TimeTicks        FROM SNMPv2-SMI

       TEXTUAL-CONVENTION           FROM SNMPv2-TC

       SnmpAdminString              FROM SNMP-FRAMEWORK-MIB

       MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
                                    FROM SNMPv2-CONF;


   teMIB MODULE-IDENTITY
       LAST-UPDATED "200202281815Z"
       ORGANIZATION "IETF Traffic Engineering Working Group"
       CONTACT-INFO
           "        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.  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 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"
       REVISION "200202281815Z"  -- 28 Feb 2002
       DESCRIPTION
           "Initial version, published as RFC xxxx."
           -- RFC Editor assigns RFC xxxx
       ::= { mib-2 yyy }



draft-ietf-tewg-mib-02.txt                                      [Page 5]


Internet Draft         draft-ietf-tewg-mib-02.txt          February 2002


           -- IANA to assign yyy

   -- Top level objects

   teMIBNotifications  OBJECT IDENTIFIER ::= { teMIB 0 } teMIBObjects
   OBJECT IDENTIFIER ::= { teMIB 1 } teMIBConformance    OBJECT
   IDENTIFIER ::= { teMIB 2 }

   -- ****************************************************************
   -- Textual Convention for hop objects
   --

   TeHopAddressType ::= TEXTUAL-CONVENTION
       STATUS     current
       DESCRIPTION
           "A value that represents an address type for a Tunnel
            hop, taken from the following list:

            unknown(0)   An unknown address type.
            ipv4(1)      An IPv4 network address.
            ipv6(2)      An IPv6 network address.
            asnumber2(3) A two octet Autonomous System number.
            asnumber4(4) A four octet Autonomous System number.
            unnum(5)     An unnumbered interface index.
            lspid(6)     An LSP ID, for CR-LDP Tunnels.

            Each definition of a concrete TeHopAddress value must
            be accompanied by a definition of a textual convention
            for use with that TeHopAddressType."
       SYNTAX     INTEGER {
           unknown(0),
           ipv4(1),
           ipv6(2),
           asnumber2(3),
           asnumber4(4),
           unnum(5),
           lspid(6)
       }

   TeHopAddress ::= TEXTUAL-CONVENTION
       STATUS     current
       DESCRIPTION
           "Denotes a generic Tunnel hop address.

            An TeHopAddress value is always interpreted within the
            context of an TeHopAddressType value.  The
            TeHopAddressType object which defines the context must
            be registered immediately before the object which uses



draft-ietf-tewg-mib-02.txt                                      [Page 6]


Internet Draft         draft-ietf-tewg-mib-02.txt          February 2002


            the TeHopAddress textual convention.  In other words,
            the object identifiers for the TeHopAddressType object
            and the TeHopAddress object MUST have the same length
            and the last sub-identifier of the TeHopAddressType
            object MUST be 1 less than the last sub-identifier of
            the TeHopAddress object."
       SYNTAX     OCTET STRING (SIZE (0..255))

   TeHopAddressIPv4 ::= TEXTUAL-CONVENTION
       DISPLAY-HINT "1d.1d.1d.1d"
       STATUS      current
       DESCRIPTION
           "Represents an IPv4 network address."
       SYNTAX      OCTET STRING (SIZE (4))

   TeHopAddressIPv6 ::= TEXTUAL-CONVENTION
       DISPLAY-HINT "2x:2x:2x:2x:2x:2x:2x:2x%4d"
       STATUS      current
       DESCRIPTION
           "Represents an IPv6 network address."
       SYNTAX      OCTET STRING (SIZE (16))

   TeHopAddressAS2 ::= TEXTUAL-CONVENTION
       DISPLAY-HINT "d"
       STATUS      current
       DESCRIPTION
           "Represents a two octet AS number."
       SYNTAX      Integer32 (0..65535)

   TeHopAddressAS4 ::= TEXTUAL-CONVENTION
       DISPLAY-HINT "d"
       STATUS      current
       DESCRIPTION
           "Represents a four octet AS number."
       SYNTAX      Unsigned32

   TeHopAddressUnnum ::= TEXTUAL-CONVENTION
       DISPLAY-HINT "d"
       STATUS      current
       DESCRIPTION
           "Represents a 32bit unnumbered interface index."
       SYNTAX      Unsigned32

   TeHopAddressLspID ::= TEXTUAL-CONVENTION
       DISPLAY-HINT "1d.1d.1d.1d:2d"
       STATUS        current
       DESCRIPTION
           "Represents a unique ID for a CR-LDP LSP.  This ID is



draft-ietf-tewg-mib-02.txt                                      [Page 7]


Internet Draft         draft-ietf-tewg-mib-02.txt          February 2002


            assigned by the head end LSR, and consists of an IPv4
            address belonging to the head end followed by a two
            octet unsigned integer that is unique for each LSP that
            starts at this head end."
      SYNTAX  OCTET STRING (SIZE (6))

   -- ****************************************************************
   -- 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)
       }
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "Traffic Engineering signaling protocols supported by
            this device. More than one protocol may be supported."

       ::= { teInfo 2 }

   teNextTunnelIndex OBJECT-TYPE
       SYNTAX     Unsigned32
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION



draft-ietf-tewg-mib-02.txt                                      [Page 8]


Internet Draft         draft-ietf-tewg-mib-02.txt          February 2002


           "Free index that can be used to create a new row in the
            Tunnel table.  If this is zero, then no more rows can
            be created in the Tunnel table."
       ::= { teInfo 3 }

   teNextPathIndex OBJECT-TYPE
       SYNTAX     Unsigned32
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "Free index that can be used to create a new row in the
            Tunnel Path table.  If this is zero, then no more rows
            can be created in the Path table."
       ::= { teInfo 4 }

   teNextPathHopIndex OBJECT-TYPE
       SYNTAX     Unsigned32
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "Free index that can be used to create a new row in the
            Path Hop table.  If this is zero, then no more rows
            can be created in the Path Hop table."
       ::= { teInfo 5 }

   teConfiguredTunnels OBJECT-TYPE
       SYNTAX     Gauge32
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION "Number of configured Tunnels."
       ::= { teInfo 6 }

   teActiveTunnels OBJECT-TYPE
       SYNTAX     Gauge32
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION "Number of active Tunnels."
       ::= { teInfo 7 }

   tePrimaryTunnels OBJECT-TYPE
       SYNTAX     Gauge32
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION "Number of active Tunnels running on
                    their primary paths."
       ::= { teInfo 8 }

   teAdminGroupTable OBJECT-TYPE



draft-ietf-tewg-mib-02.txt                                      [Page 9]


Internet Draft         draft-ietf-tewg-mib-02.txt          February 2002


       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."
       ::= { 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."
       INDEX { teAdminGroupNumber }
       ::= { teAdminGroupTable 1 }

   TeAdminGroupEntry ::=
       SEQUENCE {
           teAdminGroupNumber    Integer32,
           teAdminGroupName      SnmpAdminString
       }

   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 }

   -- Tunnel Table

   teTunnelTable OBJECT-TYPE



draft-ietf-tewg-mib-02.txt                                     [Page 10]


Internet Draft         draft-ietf-tewg-mib-02.txt          February 2002


       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,
           teTunnelState            INTEGER,
           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,
           teTunnelSourceAddressType TeHopAddressType,
           teTunnelSourceAddress    TeHopAddress,
           teTunnelDestinationAddressType TeHopAddressType,
           teTunnelDestinationAddress TeHopAddress
       }

   teTunnelIndex OBJECT-TYPE
       SYNTAX     Unsigned32
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "An index that identifies a Tunnel.  A Tunnel index
            MUST NOT be zero.  This index MUST be unique across



draft-ietf-tewg-mib-02.txt                                     [Page 11]


Internet Draft         draft-ietf-tewg-mib-02.txt          February 2002


            Tunnels and interfaces on this host."
       ::= { teTunnelEntry 1 }

   teTunnelName OBJECT-TYPE
       SYNTAX     SnmpAdminString (SIZE (1..32))
       MAX-ACCESS accessible-for-notify
       STATUS     current
       DESCRIPTION "Name of the Traffic Tunnel."
       ::= { teTunnelEntry 2 }

   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 3 }

   teTunnelOctets OBJECT-TYPE
       SYNTAX     Counter64
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The number of octets that have been forwarded over
            the Tunnel."
       ::= { teTunnelEntry 4 }

   teTunnelPackets OBJECT-TYPE
       SYNTAX     Counter64
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The number of packets that have been forwarded over
            the Tunnel."
       ::= { teTunnelEntry 5 }

   teTunnelLPOctets OBJECT-TYPE
       SYNTAX     Counter32
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The number of octets that have been forwarded over
            the Tunnel."
       ::= { teTunnelEntry 6 }



draft-ietf-tewg-mib-02.txt                                     [Page 12]


Internet Draft         draft-ietf-tewg-mib-02.txt          February 2002


   teTunnelLPPackets OBJECT-TYPE
       SYNTAX     Counter32
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The number of packets that have been forwarded over
            the Tunnel."
       ::= { teTunnelEntry 7 }

   teTunnelAge OBJECT-TYPE
       SYNTAX     TimeTicks
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The age (i.e., time from creation till now) of
            this Tunnel in hundredths of a second."
       ::= { teTunnelEntry 8 }

   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.  For example, the
            percentage up time can be determined by computing
            (teTunnelTimeUp/teTunnelAge * 100 %)."
       ::= { teTunnelEntry 9 }

   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.  For
            example, the percentage contribution of the primary
            path to the operational time is given by
            (teTunnelPrimaryTimeUp/teTunnelTimeUp * 100) %."
       ::= { teTunnelEntry 10 }

   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."



draft-ietf-tewg-mib-02.txt                                     [Page 13]


Internet Draft         draft-ietf-tewg-mib-02.txt          February 2002


       ::= { teTunnelEntry 11 }

   teTunnelLastTransition OBJECT-TYPE
       SYNTAX     TimeTicks
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The time in hundredths of a second since the last
            transition occurred on this Tunnel."
       ::= { teTunnelEntry 12 }

   teTunnelPathChanges OBJECT-TYPE
       SYNTAX     Counter32
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The number of path changes this Tunnel has had."
       ::= { teTunnelEntry 13 }

   teTunnelLastPathChange OBJECT-TYPE
       SYNTAX     TimeTicks
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The time in hundredths of a secondsince the last
            change occurred on this Tunnel."
       ::= { teTunnelEntry 14 }

   teTunnelConfiguredPaths OBJECT-TYPE
       SYNTAX     Gauge32
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The number of paths configured for this Tunnel."
       ::= { teTunnelEntry 15 }

   teTunnelStandbyPaths OBJECT-TYPE
       SYNTAX     Gauge32
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The number of standby paths configured for
            this Tunnel."
       ::= { teTunnelEntry 16 }

   teTunnelOperationalPaths OBJECT-TYPE
       SYNTAX     Gauge32
       MAX-ACCESS read-only



draft-ietf-tewg-mib-02.txt                                     [Page 14]


Internet Draft         draft-ietf-tewg-mib-02.txt          February 2002


       STATUS     current
       DESCRIPTION
           "The number of operational paths for this Tunnel.
            This includes the path currently active, as
            well as operational standby paths."
       ::= { teTunnelEntry 17 }

   teTunnelSourceAddressType OBJECT-TYPE
       SYNTAX     TeHopAddressType
       MAX-ACCESS read-create
       STATUS     current
       DESCRIPTION
           "Source address type of this Tunnel."
       ::= { teTunnelEntry 18 }

   teTunnelSourceAddress OBJECT-TYPE
       SYNTAX     TeHopAddress
       MAX-ACCESS read-create
       STATUS     current
       DESCRIPTION
           "Source address of this Tunnel.  The source address
            is formatted according to the values of the associated
            teTunnelSourceAddressType."
       ::= { teTunnelEntry 19 }

   teTunnelDestinationAddressType OBJECT-TYPE
       SYNTAX     TeHopAddressType
       MAX-ACCESS read-create
       STATUS     current
       DESCRIPTION
           "Destination address type of this Tunnel."
       ::= { teTunnelEntry 20 }

   teTunnelDestinationAddress OBJECT-TYPE
       SYNTAX     TeHopAddress
       MAX-ACCESS read-create
       STATUS     current
       DESCRIPTION
           "Destination address of this Tunnel.  The destination
            address is formatted according to the value of the
            associated teTunnelDestinationAddressType."
       ::= { teTunnelEntry 21 }

   -- ****************************************************************
   --
   -- Tunnel Path Table
   --




draft-ietf-tewg-mib-02.txt                                     [Page 15]


Internet Draft         draft-ietf-tewg-mib-02.txt          February 2002


   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."
       INDEX { tePathTunnelIndex, tePathIndex }
       ::= { tePathTable 1 }

   TePathEntry ::=
       SEQUENCE {
           tePathTunnelIndex        Unsigned32,
           tePathIndex              Unsigned32,
           tePathName               SnmpAdminString,
           tePathType               INTEGER,
           tePathConfiguredRoute    Unsigned32,
           tePathBandwidth          Unsigned32,
           tePathIncludeAny         Unsigned32,
           tePathIncludeAll         Unsigned32,
           tePathExclude            Unsigned32,
           tePathSetupPriority      Integer32,
           tePathHoldPriority       Integer32,
           tePathProperties         BITS,
           tePathStatus             INTEGER,
           tePathAdminStatus        INTEGER,
           tePathComputedRoute      Unsigned32,
           tePathRecordedRoute      Unsigned32
       }

   tePathTunnelIndex OBJECT-TYPE
       SYNTAX     Unsigned32
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "An index that identifies the Tunnel to which this path
            belongs.  A Tunnel Path index MUST NOT be zero."
       ::= { tePathEntry 1 }

   tePathIndex OBJECT-TYPE
       SYNTAX     Unsigned32



draft-ietf-tewg-mib-02.txt                                     [Page 16]


Internet Draft         draft-ietf-tewg-mib-02.txt          February 2002


       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "An index that uniquely identifies a path within a Tunnel.
            The combination of <tePathTunnelIndex, tePathIndex> thus
            uniquely identifies a path among all paths on this router.
            This index MUST NOT be zero."
       ::= { tePathEntry 2 }

   tePathName OBJECT-TYPE
       SYNTAX     SnmpAdminString (SIZE(0..32))
       MAX-ACCESS read-create
       STATUS     current
       DESCRIPTION
           "The name of this path, if any."
       ::= { tePathEntry 3 }

   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 4 }

   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.  tePathConfiguredRoute
            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
            <tePathConfiguredRoute, 1> in the Hop Table, and do a
            getnext to get subsequent hops."
       ::= { tePathEntry 5 }

   tePathBandwidth OBJECT-TYPE
       SYNTAX     Unsigned32
       UNITS      "bits per second"



draft-ietf-tewg-mib-02.txt                                     [Page 17]


Internet Draft         draft-ietf-tewg-mib-02.txt          February 2002


       MAX-ACCESS read-create
       STATUS     current
       DESCRIPTION
           "The configured bandwidth for this Tunnel, in units
            of thousands of bits per second (Kbps)."
       ::= { tePathEntry 6 }

   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."
       ::= { tePathEntry 7 }

   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 IncludeAny to be
            acceptable.  If IncludeAny is zero, all links are
            acceptable."
       ::= { tePathEntry 8 }

   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."
       ::= { tePathEntry 10 }




draft-ietf-tewg-mib-02.txt                                     [Page 18]


Internet Draft         draft-ietf-tewg-mib-02.txt          February 2002


   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 the lowest."
       ::= { 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 the lowest."
       ::= { 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 }

   tePathStatus 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:



draft-ietf-tewg-mib-02.txt                                     [Page 19]


Internet Draft         draft-ietf-tewg-mib-02.txt          February 2002


                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:
                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 15 }

   tePathComputedRoute OBJECT-TYPE
       SYNTAX     Unsigned32
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
           "The route computed for for this path, perhaps using
            some form of Constraint-based Routing.  This is also an
            ordered list of hops."
       ::= { 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."
       ::= { tePathEntry 17 }

   -- ****************************************************************
   --
   -- Tunnel Path Hop Table



draft-ietf-tewg-mib-02.txt                                     [Page 20]


Internet Draft         draft-ietf-tewg-mib-02.txt          February 2002


   --

   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,
           tePathHopAddrType         TeHopAddressType,
           tePathHopAddress          TeHopAddress,
           tePathHopType             INTEGER
       }

   teHopListIndex OBJECT-TYPE
       SYNTAX     Unsigned32
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
           "An index that identifies a list of hops.  This is the
            primary index to accesses hops; it MUST NOT be zero."
       ::= { tePathHopEntry 1 }

   tePathHopIndex OBJECT-TYPE
       SYNTAX     Unsigned32
       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.
            This index MUST NOT be zero."
       ::= { tePathHopEntry 2 }

   tePathHopAddrType OBJECT-TYPE



draft-ietf-tewg-mib-02.txt                                     [Page 21]


Internet Draft         draft-ietf-tewg-mib-02.txt          February 2002


       SYNTAX     TeHopAddressType
       MAX-ACCESS read-create
       STATUS     current
       DESCRIPTION
           "Address type of the hop."
       ::= { tePathHopEntry 3 }

   tePathHopAddress OBJECT-TYPE
       SYNTAX     TeHopAddress
       MAX-ACCESS read-create
       STATUS     current
       DESCRIPTION
           "Address of the hop."
       ::= { tePathHopEntry 4 }

   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 5 }


   -- ****************************************************************
   --
   -- TE Notifications
   --

   teTunnelUp NOTIFICATION-TYPE
       OBJECTS         { teTunnelName,
                         tePathName }  -- TunnelPath
       STATUS          current
       DESCRIPTION
           "An teTunnelUp notification is generated when the Tunnel
            indexed by teTunnelName transitions to the 'up' state."
       ::= { teMIBNotifications 1 }

   teTunnelDown NOTIFICATION-TYPE
       OBJECTS         { teTunnelName,
                         tePathName }  -- TunnelPath



draft-ietf-tewg-mib-02.txt                                     [Page 22]


Internet Draft         draft-ietf-tewg-mib-02.txt          February 2002


       STATUS          current
       DESCRIPTION
           "An teTunnelDown notification is generated when the Tunnel
            indexed by teTunnelName transitions to the 'down' state."
       ::= { teMIBNotifications 2 }

   teTunnelChanged NOTIFICATION-TYPE
       OBJECTS         { teTunnelName,
                         tePathName }  -- toTunnelPath
       STATUS          current
       DESCRIPTION
           "An teTunnelChanged notification is generated when the
            active path on the Tunnel indexed by teTunnelName changes.
            The tePathName is the new active path."
       ::= { teMIBNotifications 3 }

   teTunnelRerouted NOTIFICATION-TYPE
       OBJECTS         { teTunnelName,
                         tePathName }  -- toTunnelPath
       STATUS          current
       DESCRIPTION
           "An teTunnelRerouted notification is generated when the
            active path for the Tunnel indexed by teTunnelName stays
            the same, but its route changes."
       ::= { teMIBNotifications 4 }

   -- End of TE-MIB objects

   -- ****************************************************************
   --
   -- TE Compliance Statements
   --

   teGroups
       OBJECT IDENTIFIER ::= { teMIBConformance 1 }

   teModuleCompliance
       OBJECT IDENTIFIER ::= { teMIBConformance 2 }

   -- -- TE object groups --

   teMandatoryGroup OBJECT-GROUP
       OBJECTS {
           teTunnelName,
           teTunnelState,
           teTunnelOctets,
           teTunnelPackets,
           teTunnelAge,



draft-ietf-tewg-mib-02.txt                                     [Page 23]


Internet Draft         draft-ietf-tewg-mib-02.txt          February 2002


           teTunnelTimeUp,
           teTunnelPrimaryTimeUp,
           teTunnelTransitions,
           teTunnelLastTransition,
           teTunnelPathChanges,
           teTunnelLastPathChange,
           teTunnelConfiguredPaths,
           teTunnelStandbyPaths,
           teTunnelOperationalPaths,
           teTunnelSourceAddressType,
           teTunnelSourceAddress,
           teTunnelDestinationAddressType,
           teTunnelDestinationAddress,
           tePathBandwidth,
           tePathIncludeAny,
           tePathIncludeAll,
           tePathExclude,
           tePathSetupPriority,
           tePathHoldPriority,
           tePathProperties,
           tePathAdminStatus,
           tePathComputedRoute,
           tePathRecordedRoute,
           teDistProtocol,
           teSignalingProto,
           teAdminGroupName,
           teConfiguredTunnels,
           teActiveTunnels,
           tePrimaryTunnels,
           tePathName,
           tePathType,
           tePathConfiguredRoute,
           tePathHopAddrType,
           tePathHopAddress,
           tePathHopType
       }
       STATUS   current
       DESCRIPTION
           "Mandatory objects for the TE MIB."
       ::= { teGroups 1 }

   teNotificationGroup NOTIFICATION-GROUP
      NOTIFICATIONS {
         teTunnelUp,
         teTunnelDown,
         teTunnelChanged,
         teTunnelRerouted
      }



draft-ietf-tewg-mib-02.txt                                     [Page 24]


Internet Draft         draft-ietf-tewg-mib-02.txt          February 2002


      STATUS  current
      DESCRIPTION
           "Notifications specified in this MIB.  None is mandatory."
      ::= { teGroups 2 }

   -- -- TE compliance statement --

   teModuleReadOnlyCompliance MODULE-COMPLIANCE
       STATUS current
       DESCRIPTION
           "Compliance statement for agents supporting the TE MIB.  In
            short, all objects are mandatory; min-access is read-only."

       MODULE
           -- enclosing module, i.e., TE MIB

           MANDATORY-GROUPS {
               teMandatoryGroup
           }

           OBJECT       teTunnelIndex
           MIN-ACCESS   read-only
           DESCRIPTION "Write access is not required."

           OBJECT       teTunnelName
           MIN-ACCESS   read-only
           DESCRIPTION "Write access is not required."

           OBJECT       teTunnelState
           MIN-ACCESS   read-only
           DESCRIPTION "Write access is not required."

           OBJECT       teTunnelOctets
           MIN-ACCESS   read-only
           DESCRIPTION "Write access is not required."

           OBJECT       teTunnelPackets
           MIN-ACCESS   read-only
           DESCRIPTION "Write access is not required."

           OBJECT       teTunnelAge
           MIN-ACCESS   read-only
           DESCRIPTION "Write access is not required."

           OBJECT       teTunnelTimeUp
           MIN-ACCESS   read-only
           DESCRIPTION "Write access is not required."




draft-ietf-tewg-mib-02.txt                                     [Page 25]


Internet Draft         draft-ietf-tewg-mib-02.txt          February 2002


           OBJECT       teTunnelPrimaryTimeUp
           MIN-ACCESS   read-only
           DESCRIPTION "Write access is not required."

           OBJECT       teTunnelTransitions
           MIN-ACCESS   read-only
           DESCRIPTION "Write access is not required."

           OBJECT       teTunnelLastTransition
           MIN-ACCESS   read-only
           DESCRIPTION "Write access is not required."

           OBJECT       teTunnelPathChanges
           MIN-ACCESS   read-only
           DESCRIPTION "Write access is not required."

           OBJECT       teTunnelLastPathChange
           MIN-ACCESS   read-only
           DESCRIPTION "Write access is not required."

           OBJECT       teTunnelConfiguredPaths
           MIN-ACCESS   read-only
           DESCRIPTION "Write access is not required."

           OBJECT       teTunnelStandbyPaths
           MIN-ACCESS   read-only
           DESCRIPTION "Write access is not required."

           OBJECT       teTunnelOperationalPaths
           MIN-ACCESS   read-only
           DESCRIPTION "Write access is not required."

           OBJECT       teTunnelSourceAddressType
           MIN-ACCESS   read-only
           DESCRIPTION "Write access is not required."

           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."




draft-ietf-tewg-mib-02.txt                                     [Page 26]


Internet Draft         draft-ietf-tewg-mib-02.txt          February 2002


           OBJECT      tePathName
           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      tePathComputedRoute
           MIN-ACCESS  read-only
           DESCRIPTION "Write access is not required."




draft-ietf-tewg-mib-02.txt                                     [Page 27]


Internet Draft         draft-ietf-tewg-mib-02.txt          February 2002


           OBJECT      teAdminGroupName
           MIN-ACCESS  read-only
           DESCRIPTION "Write access is not required."

       ::= { teModuleCompliance 1 }

   -- End of TE-MIB

   END


7. References

   [1]  Awduche, D., Malcolm, J., Agogbua, J., O'Dell, M., and J.
        McManus, "Requirements for Traffic Engineering Over MPLS", RFC
        2702, September 1999.

   [2]  Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V., and
        G. Swallow, "RSVP-TE: Extensions to RSVP for LSP Tunnels", work
        in progress.

   [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.



draft-ietf-tewg-mib-02.txt                                     [Page 28]


Internet Draft         draft-ietf-tewg-mib-02.txt          February 2002


   [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
        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-02.txt                                     [Page 29]