Network Working Group                             Adrian Farrel (Editor)
Updates: RFC3812                                    Old Dog Consulting
Category: Standards Track                         Seisho Yasukawa
Expires: March 2007                                 NTT
                                                  Thomas D. Nadeau
                                                    Cisco Systems, Inc.

                                                         September 2006



       Point-to-Multipoint Multiprotocol Label Switching (MPLS)
   Traffic Engineering (TE) Management Information Base (MIB) module


                  draft-ietf-mpls-p2mp-te-mib-00.txt


Status of this Memo

   By submitting this Internet-Draft, each author represents that any
   applicable patent or other IPR claims of which he or she is aware
   have been or will be disclosed, and any of which he or she becomes
   aware will be disclosed, in accordance with Section 6 of BCP 79.

   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.

Abstract

   This memo defines a portion of the Management Information Base
   for use with network management protocols in the Internet community.
   In particular, it describes managed objects for point-to-multipoint
   Multiprotocol Label Switching-based traffic engineering.





Farrel, Yasukawa & Nadeau                                       [Page 1]


Internet Draft     draft-ietf-mpls-p2mp-te-mib-00.txt     September 2006

Table of Contents

   1.  Introduction .................................................. 3
   2.  The Internet-Standard Management Framework .................... 4
   3.  Feature List .................................................. 4
   4.  Outline ....................................................... 5
      4.1.  Summary of the P2MP MPLS Traffic Engineering MIB Module .. 5
      4.2.  Use of MPLS-TE-STD-MIB ................................... 6
      4.3.  mplsTeP2mpTunnelTable .................................... 8
      4.4.  mplsTeP2mpTunnelDestTable ................................ 8
      4.5.  mplsTeP2mpTunnelBranchPerfTable .......................... 9
   5.  Using the P2MP MPLS-TE MIB Module ............................. 9
      5.1.  Example Use of the P2MP MPLS-TE MIB Module ............... 9
      5.2.  Remerge Cases in the P2MP MPLS-TE MIB Module ............. 9
   6.  Managing P2MP MPLS-TE LSPs Through the LSR MIB Module ......... 9
      6.1.  Example Use of the LSR MIB Module ....................... 11
      6.2.  Remerge Cases in the LSR MIB Module ..................... 12
   7.  MPLS Traffic Engineering P2MP MIB Definitions ................ 13
   8.  Security Considerations ...................................... 37
   9.  Acknowledgments .............................................. 39
   10. IANA Considerations .......................................... 39
      10.1. IANA Considerations for MPLS-TE-P2MP-STD-MIB ............ 39
   11. References ................................................... 39
      11.1. Normative References .................................... 39
   11.2.  Informative References .................................... 40
   12. Authors' Addresses ........................................... 41
   13. Intellectual Property ........................................ 41
   14. Full Copyright Statement ..................................... 42


0. Changes Since Previous Revision

   [This section to be removed before publication as an RFC.]

   Rename mplsMp2pGroups to mplsP2mpGroups.

   Rename everything mplsP2mp* to mplsTeP2mp*, and everything MplsP2mp*
   to MplsTeP2mp*

   Rename members of mplsTeP2mpDestEntry to be consistently named.

   mplsTeP2mpTunnelSubGroupIDNext SYNTAX changed to reflect same range
   as mplsTeP2mpTunnelSubGroupID.

   mplsTeP2mpTunnelDestination and mplsTeP2mpTunnelSubGroupOrigin given
   SIZE clauses in their SYNTAX.

   Change special value of mplsTeP2mpTunnelBranchOutSegment to be a
   single octet with value 0x00.


Farrel, Yasukawa & Nadeau                                       [Page 2]


Internet Draft     draft-ietf-mpls-p2mp-te-mib-00.txt     September 2006

   Change reference to sysUpTIme (from SysUpTime) in
   mplsTeP2mpTunnelDestCreationTime.

   Added mplsTeP2mpTunnelDestDiscontinuityTime.

   Added mplsTeP2mpTunnelBranchDiscontinuityTime.

   Add clarification of mplsTeP2mpTunnelDestOperStatus with regard to
   mplsTunnelOperStatus.

   Add mplsTeP2mpTunnelBranch as an index to
   mplsTeP2mpTunnelBranchPerftable.

   Add mplsTeP2mpTunnelSubGroupOriginType,
   mplsTeP2mpTunnelSubGroupOrigin, and mplsTeP2mpTunnelSubGroupID to
   record the Sub-Group Fields received on an incoming Path message.

   Minor typos throughout.

   Supply missing text in section 4.5.

   Add a placeholder for text to describe the remerge cases (sections
   5.2 and 6.2).

   Acknowledgments updated.

1.  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 modeling
   point-to-multipoint (P2MP) Multiprotocol Label Switching (MPLS)
   traffic engineering (TE).

   MPLS is defined in [RFC3031] and a signaling protocol for
   point-to-point (P2P) MPLS-TE (TE extensions to the Resource
   Reservation Protocol - RSVP-TE) is defined in [RFC3209]. RSVP-TE is
   extended for use in a P2MP environment by [P2MP-TE] following the
   requirements set out in [RFC4461].

   [RFC3812] provides a MIB module for modeling and controlling P2P
   MPLS-TE in conjunction with Textual Conventions defined in [RFC3811].
   In addition, [RFC3813] defines a MIB module for modeling and
   controlling an MPLS label switching router (LSR) that may support
   MPLS-TE. An overview of MPLS MIB modules can be found in [RFC4221].

   This document defines a MIB module for managing and controlling P2MP
   MPLS-TE. It builds on the objects and tables defined in [RFC3812] so
   that P2MP MPLS-TE management is an extension of P2P MPLS-TE
   management.

Farrel, Yasukawa & Nadeau                                       [Page 3]


Internet Draft     draft-ietf-mpls-p2mp-te-mib-00.txt     September 2006

   In addition, this document provides a description of how to use the
   LSR MIB module [RFC3813] to model and control an LSR that supports
   P2MP MPLS-TE.

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED",  "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in BCP 14, RFC 2119
   [RFC2119].

2.  The Internet-Standard Management Framework

   For a detailed overview of the documents that describe the current
   Internet-Standard Management Framework, please refer to section 7 of
   RFC 3410 [RFC3410].

   Managed objects are accessed via a virtual information store, termed
   the Management Information Base or MIB.  MIB objects are generally
   accessed through the Simple Network Management Protocol (SNMP).
   Objects in the MIB are defined using the mechanisms defined in the
   Structure of Management Information (SMI).  This memo specifies a MIB
   module that is compliant to the SMIv2, which is described in STD 58,
   RFC 2578 [RFC2578], STD 58, RFC 2579 [RFC2579] and STD 58, RFC 2580
   [RFC2580].

3.  Feature List

   The feature list for this MIB module is built on the feature list for
   the P2P MPLS-TE MIB module [RFC3812]. The features in the list below
   are marked with a star (*) if they are new features for this MIB
   module and with a circle (o) if they are features satisfied by
   [RFC3812].

   *  The MIB module supports configuration of point-to-multipoint
      unidirectional tunnels.

   o  MPLS tunnels need not be interfaces, but it is possible to
      configure a tunnel as an interface.

   o  The MIB module supports tunnel establishment via an MPLS
      signaling protocol wherein the tunnel parameters are specified
      using this MIB module at the head end of the LSP, and end-to-end
      tunnel LSP establishment is accomplished via signaling.  The MIB
      module also supports manually configured tunnels, i.e., those for
      which label associations at each hop of the tunnel LSP are
      provisioned by the administrator via the LSR MIB [RFC3813].

   o  The MIB module supports persistent, as well as non-persistent
      tunnels.



Farrel, Yasukawa & Nadeau                                       [Page 4]


Internet Draft     draft-ietf-mpls-p2mp-te-mib-00.txt     September 2006

4.  Outline

   P2MP MPLS-TE requires that MPLS tunnels are established from a single
   source point (the root) to one or more destination points (the
   leaves).

   Associated with the MPLS tunnel is a set of configured parameters
   that describe the forwarding behavior of each LSR along the path of
   the label switched paths (LSPs) that support the tunnel. It should
   be noted that, according to [RFC4461] these configuration parameters
   are invariant across the branches of a P2MP LSP towards different
   leaves.

   One of the configuration parameters associated with an MPLS tunnel is
   the path (or route) that supporting LSPs are required to follow. This
   can be specified as a series of loose or strict hops. In P2MP TE,
   this specification of the LSP route includes implicit or explicit
   identification of the branch points in the P2MP LSPs.

   The setup of P2MP tunnels can be achieved as:
   - management actions only, by using [RFC3813]
   - control plane actions under the direction of management by using
     [RFC3812] and the MIB module defined in this document
   - control plane actions under the direction of some other management
     process, monitored using [RFC3812] and the MIB module defined in
     this document.

   Note that [GMPLS-TE-MIB] defines a MIB module that can be used to
   manage and model Generalized MPLS (GMPL) LSPs - it is a series of MIB
   objects and tables some of which extend tables in MPLS-TE-STD-MIB
   [RFC3812]. [RFC4461] and [P2MP-TE] are clear that they apply to
   MPLS-TE [RFC3031] and GMPLS [RFC3945]. This document describes a MIB
   module that can be used for both MPLS-TE and GMPLS P2MP LSPs.

   The following section describes the components of the P2MP MPLS-TE
   MIB module. The subsequent section provides an explanation and
   example of how the P2MP MPLS-TE MIB module can be used for the
   processes listed above in combination with the MPLS-TE MIB module
   defined in [RFC3812]. A further section describes how P2MP tunnels
   can be managed solely through the LSR MIB module defined in
   [RFC3813], and gives an example.

4.1.  Summary of the P2MP MPLS Traffic Engineering MIB Module

   The MIB module consists of the following objects and tables:

   - P2MP Tunnel table (mplsTeP2mpTunnelTable) that sparse augments the
     MPLS-TE Tunnel table (mplsTunnelTable) and is used to set up and
     monitor P2MP MPLS-TE tunnels.


Farrel, Yasukawa & Nadeau                                       [Page 5]


Internet Draft     draft-ietf-mpls-p2mp-te-mib-00.txt     September 2006

   - P2MP Tunnel Destination table (mplsTeP2mpTunnelDestTable) that
     lists the destinations (leaves) of each P2MP MPLS-TE tunnel,
     provides the status of the tunnel to each destination, and
     supplies pointers into the configured hop table, actual route hop
     table, and computed hop table (mplsTunnelHopTable,
     mplsTunnelARHopTable, and mplsTunnelCHopTable) for the routes to
     each of the destinations.

   These tables are described in the following sections after a
   description of how the MPLS-TE-STD-MIB module [RFC3812] is used as a
   basis for MIB management and modeling of P2MP MPLS-TE.

4.2.  Use of MPLS-TE-STD-MIB

   The MIB module defined in this document builds on the objects and
   tables of MPLS-TE-STD-MIB defined in [RFC3812]. That is, most of the
   basic properties of the MPLS tunnel are modeled and managed by
   objects in MPLS-TE-STD-MIB, and new objects are only defined within
   this document where additional features or different behavior is
   required.

   When an MPLS-TE tunnel is a P2MP tunnel, certain objects in the
   mplsTunnelTable have new meanings just as the signaling objects in
   RSVP-TE [RFC3209] have different meanings when the signaling messages
   are used to establish P2MP LSPs [P2MP-TE].

   As indicated in the next section, the presence of the
   mplsTeP2mpTunnelTable of the MIB module defined in this document with
   the object mplsTeP2mpTunnel containing the value True (1) shows that
   a tunnel defined in the mplsTunnelTable of MPLS-TE-STD-MIB is a P2MP
   tunnel. Under those circumstances the following objects from
   MPLS-TE-STD-MIB MUST be interpreted as follows. The text below is
   supplementary for the Description clauses in [RFC3812].

   mplsTunnelMaxHops

     This object continues to refer to the maximum number of hops that
     can be configured to a single destination for a tunnel on this
     device. Thus, for a P2MP tunnel, this refers to the maximum number
     of hops that can be configured on this device to any individual
     destination of the tunnel.

     A new object, mplsTeP2mpTunnelTotalMaxHops, is defined in this MIB
     module to supply the total number of hops across all destinations
     of a P2MP tunnel.






Farrel, Yasukawa & Nadeau                                       [Page 6]


Internet Draft     draft-ietf-mpls-p2mp-te-mib-00.txt     September 2006

   mplsTunnelEgressLSRId

      This object continues to map to the field in the RSVP-TE Session
      Object that occupies the space used by the IPv4 Tunnel Endpoint
      Address [RFC3209], but for a P2MP tunnel, this object does not
      identify an address of the egress of the tunnel. Instead it
      contains the P2MP ID value that identifies the identifier of the
      set of destinations for the P2MP tunnel and is carried in the P2MP
      Session Object [P2MP-TE]. The Description clause for this object
      can be read as follows.

         "Identity of the egress LSR associated with this
          tunnel instance.

          When an entry in the mplsTeP2mpTunnelTable is present
          corresponding to this entry in the mplsTunnelTable and when
          the mplsTeP2mpTunnel object in that table entry is present
          with the value True(1), this object contains the P2MP ID that
          identifies the set of destinations of this tunnel and that is
          signaled in the P2MP ID field of the P2MP Session Object if
          the MPLS signaling protocol for this tunnel indicated by
          mplsTunnelSignallingProto in MPLS-TE-STD-MIB is rsvp (2)."

      The destinations of the P2MP tunnel are found in the new
      mplsTeP2mpTunnelDestTable.

   mplsTunnelHopTableIndex

      If the tunnel is a P2MP tunnel as indicated by the presence of an
      entry in the mplsTeP2mpTunnelTable corresponding to this tunnel
      and when the mplsTeP2mpTunnel object in that table entry is
      present with the value True (1), this object is not used. This is
      because the destinations and paths to those destinations are found
      in the mplsTeP2mpTunnelDestTable.

      If this object is present for a P2MP tunnel, it should contain the
      value 0.

   mplsTunnelPathInUse

      If the tunnel is a P2MP tunnel as indicated by the presence of an
      entry in the mplsTeP2mpTunnelTable corresponding to this tunnel
      and when the mplsTeP2mpTunnel object in that table entry is
      present with the value True(1), this object is not used. This is
      because the destinations and paths to those destinations are found
      in the mplsTeP2mpTunnelDestTable.

      If this object is present for a P2MP tunnel, it should contain the
      value 0.


Farrel, Yasukawa & Nadeau                                       [Page 7]


Internet Draft     draft-ietf-mpls-p2mp-te-mib-00.txt     September 2006

   mplsTunnelARHopTableIndex

      If the tunnel is a P2MP tunnel as indicated by the presence of an
      entry in the mplsTeP2mpTunnelTable corresponding to this tunnel
      and when the mplsTeP2mpTunnel object in that table entry is
      present with the value True(1), this object is not used. This is
      because the destinations and paths to those destinations are found
      in the mplsTeP2mpTunnelDestTable.

      If this object is present for a P2MP tunnel, it should contain the
      value 0.

   mplsTunnelCHopTableIndex

      If the tunnel is a P2MP tunnel as indicated by the presence of an
      entry in the mplsTeP2mpTunnelTable corresponding to this tunnel
      and when the mplsTeP2mpTunnel object in that table entry is
      present with the value True(1), this object is not used. This is
      because the destinations and paths to those destinations are found
      in the mplsTeP2mpTunnelDestTable.

      If this object is present for a P2MP tunnel, it should contain the
      value 0.

4.3.  mplsTeP2mpTunnelTable

   The mplsTeP2mpTunnelTable extends (through a sparse augmentation) the
   MPLS Tunnel table (mplsTunnelTable) from MPLS-TE-STD-MIB [RFC3812] to
   allow P2MP MPLS-TE tunnels to be created, controlled and monitored at
   any LSR in the network.

   A P2MP MPLS-TE tunnel may be represented in the MIB, by defining it
   in the mplsTunnelTable and providing objects in this table to
   indicate that it is a P2MP tunnel and to define P2MP-specific
   properties of this tunnel.

4.4.  mplsTeP2mpTunnelDestTable

   P2MP LSPs have multiple destinations and, although the LSP parameters
   (such as bandwidth) for each destination are the same, the explicit
   route requested, computed, and signaled is different for each
   destination. The mplsTeP2mpTunnelDestTable encodes each destination
   and the information specific to the LSP to that destination.








Farrel, Yasukawa & Nadeau                                       [Page 8]


Internet Draft     draft-ietf-mpls-p2mp-te-mib-00.txt     September 2006

4.5.  mplsTeP2mpTunnelBranchPerfTable

   Per-tunnel statistics are counted in mplsTunnelPerfTable in
   MPLS-TE-STD-MIB [RFC3812], but these objects are only partially
   useful for a P2MP tunnel. The five objects in that table
   (mplsTunnelPerfPackets, mplsTunnelPerfHCPackets,
   mplsTunnelPerfErrors, mplsTunnelPerfBytes, mplsTunnelPerfHCBytes)
   continue to be used for tunnels that forward packets, and reflect
   the counts of data received on the incoming interface and forwarded
   to the downstream interfaces.

   However, in a P2MP tunnel, the downstream interfaces (out-segments)
   may behave differently and so it is appropriate to record the
   performance on each out-going branch. This is achieved through the
   mplsTeP2mpTunnelBranchPerfTable which is indexed by the tunnel
   identifiers and by the same identifier of the branch as is used in
   mplsTeP2mpTunnelDestTable.

5.  Using the P2MP MPLS-TE MIB Module

TBD

5.1.  Example Use of the P2MP MPLS-TE MIB Module

TBD

5.2.  Remerge Cases in the P2MP MPLS-TE MIB Module

TBD

6.  Managing P2MP MPLS-TE LSPs Through the LSR MIB Module

   The nature of P2MP tunnels is such that an LSR that is crossed by a
   tunnel may either be the ingress of that tunnel or have precisely one
   upstream LSP segment (also known as in-segment [RFC3812]) for that
   LSP. On the other hand, any LSR that is crossed by a tunnel may be an
   egress for that tunnel, have one or more downstream segments (also
   known as out-segments [RFC3812]) for that tunnel, or be both an
   egress and have one or more out-segments. Thus, for an LSP at an LSR
   there may be zero or one in-segments, and zero, one, or more than one
   out-segments.

   In-segments, out-segments and their relationship through
   cross-connections are modeled and managed in the MPLS-LSR-STD-MIB
   module [RFC3813]. The mplsInSegmentTable contains in-segments, and
   the mplsOutSegmentTable contains out-segments. The mplsXCTable
   maintains the relationships between in- and out-segments such that
   any many-to-many relationship is allowed. Each segment points into
   the mplsXCTable using mplsInSegmentXCIndex and mplsOutSegmentXCIndex.


Farrel, Yasukawa & Nadeau                                       [Page 9]


Internet Draft     draft-ietf-mpls-p2mp-te-mib-00.txt     September 2006

   The mplsXCTable contains a series of entries indexed by the primary
   mplsXCIndex object and subsidiary indexes mplsXCInSegmentIndex and
   mplsXCOutSegmentIndex.

   A single P2MP cross-connect has zero or one in-segment. At the
   ingress LSR, there is no in-segment and mplsXCInSegmentIndex is set
   to the single octet 0x00. At transit LSRs, there is exactly one
   in-segment and mplsXCInSegmentIndex is set to the value of
   mplsInSegmentIndex for the in-segment as it appears in the
   mplsInSegmentTable.

   A single P2MP cross-connect has zero, one or many out-segments. If
   there is no out-segment (the cross-connect is on an egress LSR),
   there is one entry in the mplsXCTable indexed by mplsXCIndex set to
   mplsInSegmentXCIndex from the in-segment's entry in
   mplsInSegmentTable, mplsXCInSegmentIndex set to the value of
   mplsInSegmentIndex that identifies the in-segment in
   mplsInSegmentTable, and mplsXCOutSegmentIndex set to the single octet
   0x00. This behavior is exactly as described in [RFC3813].

   If there is exactly one out-segment (the cross-connect is on a
   transit LSR) then the behavior is also exactly as described in
   [RFC3813], and as well as the in-segment objects described in the

   previous paragraph, mplsXCOutSegmentIndex is set to the value of
   mplsOutSegmentIndex that identifies the out-segment in
   mplsOutSegmentTable. Note that mplsInSegmentXCIndex and
   mplsOutSegmentXCIndex from the relevant table entries will have the
   same value which will provide the value of mplsXCIndex for the
   cross-connect.

   If there is more than one out-segment then there is one entry in
   mplsXCTable table for each out-segment. The value of mplsXCIndex is
   consistent across all of these table entries, and the in-segment
   index (mplsXCInSegmentIndex) is also consistent identifying the
   single in-segment or (on the ingress LSR) containing the single octet
   0x00. Each of these mplsXCTable entries contains a different
   mplsXCOutSegmentIndex value so that the table can easily be walked to
   find all of the out-segments for the same cross-connect.

   Finally, if an LSR is an egress as well as a transit or branch for
   the P2MP LSP (we call this a bud LSR), mplsXCTable contains the
   entries described above in combination. That is, one entry will have
   mplsXCOutSegmentIndex set to the single octet 0x00, and other entries
   with the same value of mplsXCIndex and mplsXCInSegmentIndex will
   exist for each out-segment.





Farrel, Yasukawa & Nadeau                                      [Page 10]


Internet Draft     draft-ietf-mpls-p2mp-te-mib-00.txt     September 2006

6.1.  Example Use of the LSR MIB Module

   This section demonstrates how the objects in MPLS-LSR-STD-MIB would
   be set for an example P2MP LSP cross-connect. The information here
   does not show how and in what order these objects should be set to
   create the cross-connect, but shows what information would be read if
   the tables were examined.

   The figure shows the LSP at the LSR that is being examined. There are
   three interfaces to LSR X: 10, 21 and 22. The LSP enters through
   interface 10 using label 7, and exits through interfaces 21 and 22
   using labels 8 and 9 respectively. Let us assume that LSR X is also
   an egress for the LSP.


                      -------
                     |       |21   Label 8
            Label 7  |       +------------->
       --->----------+ LSR X |
                   10|       +------------->
                     |       |22   Label 9
                      -------

   In mplsInSegmentTable there is a single entry
   {
      mplsInSegmentIndex              = 0x00000015,
      mplsInSegmentLabel              = 7,   -- incoming label
      mplsInSegmentNPop               = 1,
      mplsInSegmentInterface          = 10,  -- incoming interface
      mplsInSegmentXCIndex            = 0x37 -- index into XC table
   }

   In mplsOutSegmentTable there are two entries.
   {
      mplsOutSegmentIndex             = 0x00000432,
      mplsOutSegmentPushTopLabel      = true(1),
      mplsOutSegmentTopLabel          = 8,   -- outgoing label
      mplsOutSegmentInterface         = 21,  -- outgoing interface
      mplsOutSegmentXCIndex           = 0x37 -- index into XC table
   }
   {
      mplsOutSegmentIndex             = 0x00000017,
      mplsOutSegmentPushTopLabel      = true(1),
      mplsOutSegmentTopLabel          = 9,   -- outgoing label
      mplsOutSegmentInterface         = 22,  -- outgoing interface
      mplsOutSegmentXCIndex           = 0x37 -- index into XC table
   }




Farrel, Yasukawa & Nadeau                                      [Page 11]


Internet Draft     draft-ietf-mpls-p2mp-te-mib-00.txt     September 2006

   In mplsXCTable there are three entries. The first two are for the
   cross-connections to the out-segments, and the third is for the local
   egress.
   {
      mplsXCIndex                = 0x37,      -- common index
      mplsXCInSegmentIndex       = 0x00000015,-- the in-segment
      mplsXCOutSegmentIndex      = 0x00000432,-- first out-segment
      mplsXCLspId                = 0x0102     -- unique LSP ID
      mplsXCLabelStackIndex      = 0x00,      -- only one outgoing label
   }
   {
      mplsXCIndex                = 0x37,      -- common index
      mplsXCInSegmentIndex       = 0x00000015,-- the in-segment
      mplsXCOutSegmentIndex      = 0x00000017,-- second out-segment
      mplsXCLspId                = 0x0102     -- unique LSP ID
      mplsXCLabelStackIndex      = 0x00,      -- only one outgoing label
   }
   {
      mplsXCIndex                = 0x37,      -- common index
      mplsXCInSegmentIndex       = 0x00000015,-- the in-segment
      mplsXCOutSegmentIndex      = 0x00,      -- no out-segment
      mplsXCLspId                = 0x0102     -- unique LSP ID
      mplsXCLabelStackIndex      = 0x00,      -- no other outgoing label
   }

6.2.  Remerge Cases in the LSR MIB Module

TBD























Farrel, Yasukawa & Nadeau                                      [Page 12]


Internet Draft     draft-ietf-mpls-p2mp-te-mib-00.txt     September 2006

7.  MPLS Traffic Engineering P2MP MIB Definitions

   This MIB module uses imports from [RFC2578], [RFC2580], [RFC2579],
   [RFC3811], [RFC3812], [RFC3813], [RFC3289], and [RFC3291].

   MPLS-TE-P2MP-STD-MIB DEFINITIONS ::= BEGIN

   IMPORTS
      MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
      Unsigned32, Counter32, Counter64, TimeTicks
         FROM SNMPv2-SMI                                    -- RFC2578
      MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
         FROM SNMPv2-CONF                                   -- RFC2580
      TruthValue, RowStatus, StorageType, TimeStamp
         FROM SNMPv2-TC                                     -- RFC2579
      mplsStdMIB, MplsPathIndexOrZero
         FROM MPLS-TC-STD-MIB                               -- RFC3811
      MplsIndexType
         FROM MPLS-LSR-STD-MIB                              -- RFC3813
      mplsTunnelIndex, mplsTunnelInstance, mplsTunnelIngressLSRId,
      mplsTunnelEgressLSRId
         FROM MPLS-TE-STD-MIB                               -- RFC3812
      IndexIntegerNextFree
         FROM DIFFSERV-MIB                                  -- RFC3289
      InetAddress, InetAddressType
         FROM INET-ADDRESS-MIB                              -- RFC3291
      ;

   mplsTeP2mpStdMIB MODULE-IDENTITY
      LAST-UPDATED "200605240000Z"  -- May 24, 2006
      ORGANIZATION
         "Multiprotocol Label Switching (MPLS) Working Group"
      CONTACT-INFO
           "        Adrian Farrel
                    Old Dog Consulting
            Email:  adrian@olddog.co.uk

                    Seisho Yasukawa
                    NTT Corporation
            Email:  s.yasukawa@hco.ntt.co.jp

                    Thomas D. Nadeau
                    Cisco Systems, Inc.
            Email:  tnadeau@cisco.com

                   Comments about this document should be emailed
                   directly to the MPLS working group mailing list at
                   mpls@lists.ietf.org"



Farrel, Yasukawa & Nadeau                                      [Page 13]


Internet Draft     draft-ietf-mpls-p2mp-te-mib-00.txt     September 2006

      DESCRIPTION
            "Copyright (C) The Internet Society (2006). The
            initial version of this MIB module was published
            in RFC XXXX. For full legal notices see the RFC
            itself or see: http://www.ietf.org/copyrights/ianamib.html
-- RFC Editor. Please replace XXXX with the RFC number for this
-- document and remove this note.

            This MIB module contains managed object definitions
            for Point-to-Multipoint (P2MP) MPLS Traffic Engineering (TE)
            defined in:
            1. Signaling Requirements for Point-to-Multipoint
               Traffic-Engineered MPLS Label Switched Paths (LSPs),
               S. Yasukawa, RFC 4461, April 2006.
            2. Extensions to RSVP-TE for Point to Multipoint TE LSPs,
               R. Aggarwal, S. Yasukawa, and D. Papadimitriou, work in
               progress."

      -- Revision history.

      REVISION
         "200605240000Z"  -- May 24, 2006
      DESCRIPTION
           "Initial version issued as part of RFC XXXX."
-- RFC Editor. Please replace XXXX with the RFC number for this
-- document and remove this note.

      ::= { mplsStdMIB YYY }

-- RFC Editor. Please replace YYY with the codepoint issued by IANA
-- and remove this note.

   -- Top level components of this MIB module.

   -- notifications
   mplsTeP2mpNotifications OBJECT IDENTIFIER ::= { mplsTeP2mpStdMIB 0 }
   -- tables, scalars
   mplsTeP2mpScalars       OBJECT IDENTIFIER ::= { mplsTeP2mpStdMIB 1 }
   mplsTeP2mpObjects       OBJECT IDENTIFIER ::= { mplsTeP2mpStdMIB 2 }
   -- conformance
   mplsTeP2mpConformance   OBJECT IDENTIFIER ::= { mplsTeP2mpStdMIB 3 }










Farrel, Yasukawa & Nadeau                                      [Page 14]


Internet Draft     draft-ietf-mpls-p2mp-te-mib-00.txt     September 2006

   -- MPLS P2MP Tunnel scalars.

   mplsTeP2mpTunnelConfigured OBJECT-TYPE
      SYNTAX        Unsigned32
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
           "The number of P2MP tunnels configured on this device. A
            tunnel is considered configured if the mplsTunnelRowStatus
            in MPLS-TE-STD-MIB is active(1)."
      REFERENCE
           "RFC 3812 - Multiprotocol Label Switching (MPLS) Traffic
            Engineering (TE) Management Information Base (MIB),
            Srinivasan, C., Viswanathan, A., and T. Nadeau, June 2004."
      ::= { mplsTeP2mpScalars 1 }

   mplsTeP2mpTunnelActive OBJECT-TYPE
      SYNTAX        Unsigned32
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
           "The number of P2MP tunnels active on this device. A
            tunnel is considered active if the mplsTunnelOperStatus
            in MPLS-TE-STD-MIB is up(1)."
      REFERENCE
           "RFC 3812 - Multiprotocol Label Switching (MPLS) Traffic
            Engineering (TE) Management Information Base (MIB),
            Srinivasan, C., Viswanathan, A., and T. Nadeau, June 2004."
      ::= { mplsTeP2mpScalars 2 }

   mplsTeP2mpTunnelTotalMaxHops OBJECT-TYPE
      SYNTAX        Unsigned32
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
           "The maximum number of hops that can be specified for
            an entire P2MP tunnel on this device.
            This object should be used in conjunction with
            mplsTunnelMaxHops in MPLS-TE-STD-MIB that is used in the
            context of P2MP tunnels to express the maximum number of
            hops to any individual destination of a P2MP tunnel that
            can be configured on this device."
      REFERENCE
           "RFC 3812 - Multiprotocol Label Switching (MPLS) Traffic
            Engineering (TE) Management Information Base (MIB),
            Srinivasan, C., Viswanathan, A., and T. Nadeau, June 2004."
      ::= { mplsTeP2mpScalars 3 }

   -- End of MPLS Tunnel scalars.


Farrel, Yasukawa & Nadeau                                      [Page 15]


Internet Draft     draft-ietf-mpls-p2mp-te-mib-00.txt     September 2006

   -- MPLS P2MP tunnel table.

   mplsTeP2mpTunnelTable OBJECT-TYPE
      SYNTAX        SEQUENCE OF MplsTeP2mpTunnelEntry
      MAX-ACCESS    not-accessible
      STATUS        current
      DESCRIPTION
           "The mplsTeP2mpTunnelTable allows new P2MP MPLS tunnels to be
            created between an LSR and one or more remote end-points,
            and existing P2MP tunnels to be reconfigured or removed.

            This table sparse augments mplsTunnelTable in
            MPLS-TE-STD-MIB such that entries in that table can be
            flagged as point-to-multipoint, and can be configured and
            monitored appropriately."
      REFERENCE
           "RFC 3812 - Multiprotocol Label Switching (MPLS) Traffic
            Engineering (TE) Management Information Base (MIB),
            Srinivasan, C., Viswanathan, A., and T. Nadeau, June 2004."
      ::= { mplsTeP2mpObjects 1 }

   mplsTeP2mpTunnelEntry OBJECT-TYPE
      SYNTAX        MplsTeP2mpTunnelEntry
      MAX-ACCESS    not-accessible
      STATUS        current
      DESCRIPTION
           "An entry in this table represents a P2MP MPLS tunnel.
            An entry can be created by a network administrator or by an
            SNMP agent as instructed by an MPLS signaling protocol.

            An entry in this table MUST correspond to an entry in the
            mplsTunnelTable in MPLS-TE-STD-MIB. This table shares index
            objects with that table and sparse augments that table.

            Thus, an entry in this table can only be created at the same
            time as or after a corresponding entry in mplsTunnelTable,
            and an entry in mplsTunnelTable cannot be deleted while a
            corresponding entry exists in this table.

            This table entry includes a row status object, but
            administrative and operational statuses should be taken from
            mplsTunnelAdminStatus and mplsTunnelOperStatus in the
            corresponding entry in mplsTunnelTable."
      REFERENCE
           "RFC 3812 - Multiprotocol Label Switching (MPLS) Traffic
            Engineering (TE) Management Information Base (MIB),
            Srinivasan, C., Viswanathan, A., and T. Nadeau, June 2004."




Farrel, Yasukawa & Nadeau                                      [Page 16]


Internet Draft     draft-ietf-mpls-p2mp-te-mib-00.txt     September 2006

      INDEX {  mplsTunnelIndex,
               mplsTunnelInstance,
               mplsTunnelIngressLSRId,
               mplsTunnelEgressLSRId
            }
      ::= { mplsTeP2mpTunnelTable 1 }

   MplsTeP2mpTunnelEntry ::= SEQUENCE {
         mplsTeP2mpTunnelIsP2MP             TruthValue,
         mplsTeP2mpTunnelP2mpIntegrity      TruthValue,
         mplsTeP2mpTunnelBranchRole         INTEGER,
         mplsTeP2mpTunnelSubGroupOriginType InetAddressType,
         mplsTeP2mpTunnelSubGroupOrigin     InetAddress,
         mplsTeP2mpTunnelSubGroupID         Unsigned32,
         mplsTeP2mpTunnelRowStatus          RowStatus,
         mplsTeP2mpTunnelStorageType        StorageType
   }

   mplsTeP2mpTunnelIsP2MP OBJECT-TYPE
      SYNTAX        TruthValue
      MAX-ACCESS    read-create
      STATUS        current
      DESCRIPTION
           "Denotes whether or not this tunnel is a point-to-multipoint
            tunnel.
            If this object is not present or is present and set to
            false(2), this tunnel is not a point-to-multipoint tunnel
            and all other objects in this table entry are not valid."
      DEFVAL { true }
      ::= { mplsTeP2mpTunnelEntry 1 }

   mplsTeP2mpTunnelP2mpIntegrity OBJECT-TYPE
      SYNTAX        TruthValue
      MAX-ACCESS    read-create
      STATUS        current
      DESCRIPTION
           "Denotes whether or not P2MP Integrity is required for this
            tunnel.
            If P2MP integrity is operational on a P2MP tunnel then the
            failure of the path to any of the tunnel destinations should
            cause the teardown of the entire P2MP tunnel."
      REFERENCE
           "Extensions to RSVP-TE for Point to Multipoint TE LSPs,
            R. Aggarwal, S. Yasukawa, and D. Papadimitriou, work in
            progress."
      DEFVAL { false }
      ::= { mplsTeP2mpTunnelEntry 2 }




Farrel, Yasukawa & Nadeau                                      [Page 17]


Internet Draft     draft-ietf-mpls-p2mp-te-mib-00.txt     September 2006

   mplsTeP2mpTunnelBranchRole OBJECT-TYPE
      SYNTAX        INTEGER { notBranch(1),
                              branch(2),
                              bud(3) }
      MAX-ACCESS    read-create
      STATUS        current
      DESCRIPTION
           "This value supplements the value in the object
            mplsTunnelRole in MPLS-TE-STD-MIB that indicates the role
            of this LSR in the tunnel represented by this entry in
            mplsTeP2mpTunnelTable.

            mplsTunnelRole may take any of the values:
               head(1),
               transit(2),
               tail(3),
               headTail(4)

            If this LSR is an ingress and there is exactly one
            out-segment, mplsTunnelRole should contain the value
            head(1), and mplsTeP2mpTunnelBranchRole should have the
            value notBranch(1).

            If this LSR is an ingress with more than one out segment,
            mplsTunnelRole should contain the value head(1), and
            mplsTeP2mpTunnelBranchRole should have the value branch(2).

            If this LSR is an ingress, an egress, and there is one or
            more out-segments, mplsTunnelRole should contain the value
            headTail(4), and mplsTeP2mpTunnelBranchRole should have the
            value bud(3).

            If this LSR is a transit with exactly one out-segment,
            mplsTunnelRole should contain the value transit(2), and
            mplsTeP2mpTunnelBranchRole should have the value
            notBranch(1).

            If this LSR is a transit with more than one out-segment,
            mplsTunnelRole should contain the value transit(2), and
            mplsTeP2mpTunnelBranchRole should have the value branch(2).

            If this LSR is a transit with one or more out-segments and
            is also an egress, mplsTunnelRole should contain the value
            transit(2), and mplsTeP2mpTunnelBranchRole should have the
            value bud(3).

            If this LSR is an egress with no out-segment and is not the
            ingress, mplsTunnelRole should contain the value tail(3),
            and mplsTeP2mpTunnelBranchRole should have the value
            notBranch(1).

Farrel, Yasukawa & Nadeau                                      [Page 18]


Internet Draft     draft-ietf-mpls-p2mp-te-mib-00.txt     September 2006

            If this LSR is an egress and has one or more out-segments,
            mplsTunnelRole should contain the value transit(1), and
            mplsTeP2mpTunnelBranchRole should have the value bud(3)."
      REFERENCE
           "RFC 3812 - Multiprotocol Label Switching (MPLS) Traffic
            Engineering (TE) Management Information Base (MIB),
            Srinivasan, C., Viswanathan, A., and T. Nadeau, June 2004."
      DEFVAL { notBranch }
      ::= { mplsTeP2mpTunnelEntry 3 }

   mplsTeP2mpTunnelSubGroupOriginType OBJECT-TYPE
      SYNTAX        InetAddressType
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
           "This object identifies the type of address carried in
            mplsTeP2mpTunnelSubGroupOrigin.

            Since the object mplsTeP2mpTunnelSubGroupOrigin must conform
            to the protocol specification, this object must return
            either ipv4(1) or ipv6(2) at a transit or egress LSR.

            At an ingress LSR, mplsTeP2mpTunnelSubGroupOrigin should not
            be used, and this object should return the value
            unknown(0)."
      ::= { mplsTeP2mpTunnelEntry 4 }

   mplsTeP2mpTunnelSubGroupOrigin OBJECT-TYPE
      SYNTAX        InetAddress (SIZE (1..16))
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
           "The TE Router ID (reachable and stable IP address) of the
            originator of the P2MP sub-group as received on a Path
            message by a transit or egress LSR.

            This object is interpreted in the context of
            mplsTeP2mpTunnelSubGroupOriginType.

            The value of the sub-group originator used on outgoing Path
            messages is found in mplsTeP2mpTunnelDestSubGroupOrigin and
            is copied from this object unless this LSR is responsible
            for changing the sub-group ID.

            At an ingress LSR this object is not used because there is
            no received Path message. mplsTeP2mpTunnelSubGroupOriginType
            should return unknown(0), and this object should return the
            value 0x00, or should be absent."



Farrel, Yasukawa & Nadeau                                      [Page 19]


Internet Draft     draft-ietf-mpls-p2mp-te-mib-00.txt     September 2006

      REFERENCE
           "Extensions to RSVP-TE for Point to Multipoint TE LSPs,
            R. Aggarwal, S. Yasukawa, and D. Papadimitriou, work in
            progress."
      ::= { mplsTeP2mpTunnelEntry 5 }

   mplsTeP2mpTunnelSubGroupID OBJECT-TYPE
      SYNTAX        Unsigned32 (1..4294967295)
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
           "The unique identifier assigned by the sub-group originator
            for this sub-group of this P2MP tunnel as received on a Path
            message by a transit or egress LSR.

            The value of the sub-group identifier used on outgoing Path
            messages is found in mplsTeP2mpTunnelDestSubGroupID and is
            copied from this object unless this LSR is responsible for
            changing the sub-group ID.

            At an ingress LSR this object is not used because there is
            no received Path message, and the object should be absent or
            should return zero."
      REFERENCE
           "Extensions to RSVP-TE for Point to Multipoint TE LSPs,
            R. Aggarwal, S. Yasukawa, and D. Papadimitriou, work in
            progress."
      ::= { mplsTeP2mpTunnelEntry 6 }

   mplsTeP2mpTunnelRowStatus OBJECT-TYPE
      SYNTAX        RowStatus
      MAX-ACCESS    read-create
      STATUS        current
      DESCRIPTION
           "This variable is used to create, modify, and/or delete a row
            in this table.  When a row in this table is in active(1)
            state, no objects in that row can be modified by the agent
            except mplsTeP2mpTunnelRowStatus and
            mplsTeP2mpTunnelStorageType.

            This object and mplsTunnelRowStatus in the corresponding
            entry in mplsTunnelTable in MPLS-TE-STD-MIB should be
            managed together. No objects in a row in this table can be
            modified when the mplsTunnelRowStatus object in the
            corresponding row in mplsTunnelTable has value active(1).






Farrel, Yasukawa & Nadeau                                      [Page 20]


Internet Draft     draft-ietf-mpls-p2mp-te-mib-00.txt     September 2006

            Note that no admin or oper status objects are provided in
            this table. The administrative and operational status of
            P2MP tunnels is taken from the values of
            mplsTunnelAdminStatus and mplsTunnelOperStatus in the
            corresponding row mplsTunneltable."
      REFERENCE
           "RFC 3812 - Multiprotocol Label Switching (MPLS) Traffic
            Engineering (TE) Management Information Base (MIB),
            Srinivasan, C., Viswanathan, A., and T. Nadeau, June 2004."
      ::= { mplsTeP2mpTunnelEntry 7 }

   mplsTeP2mpTunnelStorageType OBJECT-TYPE
      SYNTAX        StorageType
      MAX-ACCESS    read-create
      STATUS        current
      DESCRIPTION
           "The storage type for this tunnel entry.
            Conceptual rows having the value 'permanent' need not allow
            write-access to any columnar objects in the row."
      DEFVAL { volatile }
      ::= { mplsTeP2mpTunnelEntry 8 }

   -- End of mplsTeP2mpTunnelTable

   -- MPLS P2MP tunnel destination table.

   mplsTeP2mpTunnelSubGroupIDNext OBJECT-TYPE
      SYNTAX        IndexIntegerNextFree (0..4294967295)
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
           "This object contains an unused value for
            mplsTeP2mpTunnelDestSubGroupID, or a zero to indicate that
            none exists. Negative values are not allowed, as they do not
            correspond to valid values of
            mplsTeP2mpTunnelDestSubGroupID.

            Note that this object offers an unused value for an
            mplsTeP2mpTunnelDestSubGroupID value at the local LSR when
            it is a sub-group originator. In other cases, the value of
            mplsTeP2mpTunnelDestSubGroupID SHOULD be taken from the
            received value signaled by the signaling protocol and
            corresponds to the value in mplsTeP2mpTunnelSubGroupID."
      ::= { mplsTeP2mpObjects 2 }







Farrel, Yasukawa & Nadeau                                      [Page 21]


Internet Draft     draft-ietf-mpls-p2mp-te-mib-00.txt     September 2006

   mplsTeP2mpTunnelDestTable OBJECT-TYPE
      SYNTAX        SEQUENCE OF MplsTeP2mpTunnelDestEntry
      MAX-ACCESS    not-accessible
      STATUS        current
      DESCRIPTION
           "The mplsTeP2mpTunnelDestTable allows new destinations of
            P2MP MPLS tunnels to be added to and removed from P2MP
            tunnels.

            Entries in this table share some index fields with the
            mplsTeP2mpTunnelTable and the mplsTunnelTable in
            MPLS-TE-STD-MIB. Entries in this table have no meaning
            unless there is a corresponding entry in
            mplsTeP2mpTunnelTable (which, itself, depends on a
            corresponding entry in mplsTunnelTable) and that entry has
            mpl2P2mpTunnelIsP2mp set to true(1)."
      REFERENCE
           "RFC 3812 - Multiprotocol Label Switching (MPLS) Traffic
            Engineering (TE) Management Information Base (MIB),
            Srinivasan, C., Viswanathan, A., and T. Nadeau, June 2004."
      ::= { mplsTeP2mpObjects 3 }

   mplsTeP2mpTunnelDestEntry OBJECT-TYPE
      SYNTAX        MplsTeP2mpTunnelDestEntry
      MAX-ACCESS    not-accessible
      STATUS        current
      DESCRIPTION
           "An entry in this table represents a destination of a P2MP
            MPLS tunnel. An entry can be created by a network
            administrator or by an SNMP agent as instructed by an MPLS
            signaling protocol.

            Entries in this table share some index fields with the
            mplsTeP2mpTunnelTable and the mplsTunnelTable in
            MPLS-TE-STD-MIB. Entries in this table have no meaning
            unless there is a corresponding entry in
            mplsTeP2mpTunnelTable (which, itself, depends on a
            corresponding entry in mplsTunnelTable) and that entry has
            mpl2P2mpTunnelIsP2mp set to true(1).

            Note that the same destination may be present more than once
            if it is in more than one sub-group as reflected by the
            mplsTeP2mpTunnelDestSubGroupOriginType,
            mplsTeP2mpTunnelDestSubGroupOrigin, and
            mplsTeP2mpTunnelDestSubGroupID, index objects.

            Entries in this table may be created at any time. If created
            before an entry in the mplsTeP2mpTunnelTable the entries
            have no meaning, but may be kept ready for the creation of
            the P2MP tunnel. If created after the entry in

Farrel, Yasukawa & Nadeau                                      [Page 22]


Internet Draft     draft-ietf-mpls-p2mp-te-mib-00.txt     September 2006

            mplsTeP2mpTunnelTable, entries in table may reflect the
            addition of destinations to active P2MP tunnels. For this
            reason, entries in this table are equipped with row, admin,
            and oper status objects. "
      REFERENCE
           "RFC 3812 - Multiprotocol Label Switching (MPLS) Traffic
            Engineering (TE) Management Information Base (MIB),
            Srinivasan, C., Viswanathan, A., and T. Nadeau, June 2004."
      INDEX {  mplsTunnelIndex,
               mplsTunnelInstance,
               mplsTunnelIngressLSRId,
               mplsTunnelEgressLSRId,
               mplsTeP2mpTunnelDestSubGroupOriginType,
               mplsTeP2mpTunnelDestSubGroupOrigin,
               mplsTeP2mpTunnelDestSubGroupID,
               mplsTeP2mpTunnelDestDestinationType,
               mplsTeP2mpTunnelDestDestination
            }
      ::= { mplsTeP2mpTunnelDestTable 1 }

   MplsTeP2mpTunnelDestEntry ::= SEQUENCE {
         mplsTeP2mpTunnelDestSubGroupOriginType  InetAddressType,
         mplsTeP2mpTunnelDestSubGroupOrigin      InetAddress,
         mplsTeP2mpTunnelDestSubGroupID          Unsigned32,
         mplsTeP2mpTunnelDestDestinationType     InetAddressType,
         mplsTeP2mpTunnelDestDestination         InetAddress,
         mplsTeP2mpTunnelDestBranchOutSegment    MplsIndexType,
         mplsTeP2mpTunnelDestHopTableIndex       MplsPathIndexOrZero,
         mplsTeP2mpTunnelDestPathInUse           MplsPathIndexOrZero,
         mplsTeP2mpTunnelDestCHopTableIndex      MplsPathIndexOrZero,
         mplsTeP2mpTunnelDestARHopTableIndex     MplsPathIndexOrZero,
         mplsTeP2mpTunnelDestTotalUpTime         TimeTicks,
         mplsTeP2mpTunnelDestInstanceUpTime      TimeTicks,
         mplsTeP2mpTunnelDestPathChanges         Counter32,
         mplsTeP2mpTunnelDestLastPathChange      TimeTicks,
         mplsTeP2mpTunnelDestCreationTime        TimeStamp,
         mplsTeP2mpTunnelDestStateTransitions    Counter32,
         mplsTeP2mpTunnelDestDiscontinuityTime   TimeStamp,
         mplsTeP2mpTunnelDestAdminStatus         INTEGER,
         mplsTeP2mpTunnelDestOperStatus          INTEGER,
         mplsTeP2mpTunnelDestRowStatus           RowStatus,
         mplsTeP2mpTunnelDestStorageType         StorageType
   }








Farrel, Yasukawa & Nadeau                                      [Page 23]


Internet Draft     draft-ietf-mpls-p2mp-te-mib-00.txt     September 2006

   mplsTeP2mpTunnelDestSubGroupOriginType OBJECT-TYPE
      SYNTAX        InetAddressType
      MAX-ACCESS    not-accessible
      STATUS        current
      DESCRIPTION
           "This object identifies the type of address carried in
            mplsTeP2mpTunnelDestSubGroupOrigin.

            This object forms part of the index of this table and can,
            therefore, not return the value unknown(0). Similarly, since
            the object mplsTeP2mpTunnelDestSubGroupOrigin must conform
            to the protocol specification, this object must return
            either ipv4(1) or ipv6(2)."
      ::= { mplsTeP2mpTunnelDestEntry 1 }

   mplsTeP2mpTunnelDestSubGroupOrigin OBJECT-TYPE
      SYNTAX        InetAddress (SIZE (1..16))
      MAX-ACCESS    not-accessible
      STATUS        current
      DESCRIPTION
           "The TE Router ID (reachable and stable IP address) of the
            originator of the P2MP sub-group. In many cases, this will
            be the ingress LSR of the P2MP tunnel and will be the
            received signaled value as available in
            mplsTeP2mpTunnelSubGroupOrigin.

            When a signaling protocol is used, this object corresponds
            to the Sub-Group Originator field in the SENDER_TEMPLATE
            object.

            This object is interpreted in the context of
            mplsTeP2mpTunnelDestSubGroupOriginType."
      REFERENCE
           "Extensions to RSVP-TE for Point to Multipoint TE LSPs,
            R. Aggarwal, S. Yasukawa, and D. Papadimitriou, work in
            progress."
      ::= { mplsTeP2mpTunnelDestEntry 2 }

   mplsTeP2mpTunnelDestSubGroupID OBJECT-TYPE
      SYNTAX        Unsigned32 (1..4294967295)
      MAX-ACCESS    not-accessible
      STATUS        current
      DESCRIPTION
           "The unique identifier assigned by the sub-group originator
            for this sub-group of this P2MP tunnel.

            An appropriate value for this object during row creation
            when the sub-group origin in
            mplsTeP2mpTunnelDestSubGroupOrigin is the local LSR can
            be obtained by reading mplsTeP2mpTunnelSubGroupIDNext."

Farrel, Yasukawa & Nadeau                                      [Page 24]


Internet Draft     draft-ietf-mpls-p2mp-te-mib-00.txt     September 2006

      REFERENCE
           "Extensions to RSVP-TE for Point to Multipoint TE LSPs,
            R. Aggarwal, S. Yasukawa, and D. Papadimitriou, work in
            progress."
      ::= { mplsTeP2mpTunnelDestEntry 3 }

   mplsTeP2mpTunnelDestDestinationType OBJECT-TYPE
      SYNTAX        InetAddressType
      MAX-ACCESS    not-accessible
      STATUS        current
      DESCRIPTION
           "This object identifies the type of address carried in
            mplsTeP2mpTunnelDestDestination.

            This object forms part of the index of this table and can,
            therefore, not return the value unknown(0). Similarly, since
            the object mplsTeP2mpTunnelDestDestination must conform to
            the protocol specification, this object must return either
            ipv4(1) or ipv6(2)."
      ::= { mplsTeP2mpTunnelDestEntry 4 }

   mplsTeP2mpTunnelDestDestination OBJECT-TYPE
      SYNTAX        InetAddress (SIZE (1..16))
      MAX-ACCESS    not-accessible
      STATUS        current
      DESCRIPTION
           "A single destination of this P2MP tunnel. That is, a
            routable TE address of a leaf. This will often be the TE
            Router ID of the leaf, but can be any interface address.

            When a signaling protocol is used, this object corresponds
            to the S2L Sub-LSP destination address field in the
            S2L_SUB_LSP object.

            This object is interpreted in the context of
            mplsTeP2mpTunnelDestDestinationType."
      REFERENCE
           "Extensions to RSVP-TE for Point to Multipoint TE LSPs,
            R. Aggarwal, S. Yasukawa, and D. Papadimitriou, work in
            progress."
      ::= { mplsTeP2mpTunnelDestEntry 5 }










Farrel, Yasukawa & Nadeau                                      [Page 25]


Internet Draft     draft-ietf-mpls-p2mp-te-mib-00.txt     September 2006

   mplsTeP2mpTunnelDestBranchOutSegment OBJECT-TYPE
      SYNTAX        MplsIndexType
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
           "This object identifies the outgoing branch from this LSR
            towards the destination represented by this table entry. It
            must be a unique identifier within the scope of this tunnel.

            If MPLS-LSR-STD-MIB is implemented, this object should
            contain an index into mplsOutSegmentTable.

            If MPLS-LSR-STD-MIB is not implemented, the LSR should
            assign a unique value to each branch of the tunnel.

            The value of this object is also used as an index into
            mplsTeP2mpTunnelBranchPerfTable."
         ::= { mplsTeP2mpTunnelDestEntry 6 }

   mplsTeP2mpTunnelDestHopTableIndex OBJECT-TYPE
      SYNTAX        MplsPathIndexOrZero
      MAX-ACCESS    read-create
      STATUS        current
      DESCRIPTION
           "Index into the mplsTunnelHopTable entry that specifies the
            explicit route hops for this destination of the P2MP tunnel.

            This object represents the configured route for the branch
            of the P2MP tree to this destination and is meaningful only
            at the head-end (ingress or root) of the P2MP tunnel. Note
            that many such paths may be configured within the
            mplsTunnelHopTable for each destination, and that the object
            mplsTeP2mpTunnelDestPathInUse identifies which path has been
            selected for use."
      DEFVAL { 0 }
      ::= { mplsTeP2mpTunnelDestEntry 7 }

   mplsTeP2mpTunnelDestPathInUse OBJECT-TYPE
      SYNTAX        MplsPathIndexOrZero
      MAX-ACCESS    read-create
      STATUS        current
      DESCRIPTION
           "This value denotes the configured path that was chosen as
            the explicit path to this destination of this P2MP tunnel.
            This value reflects the secondary index into
            mplsTunnelHopTable where the primary index comes from
            mplsTeP2mpTunnelDestHopTableIndex.

            The path indicated by this object might not exactly match
            the one signaled and recorded in mplsTunnelCHopTable as

Farrel, Yasukawa & Nadeau                                      [Page 26]


Internet Draft     draft-ietf-mpls-p2mp-te-mib-00.txt     September 2006

            specific details of the path might be computed locally.

            Similarly, the path might not match the actual path in use
            as recorded in mplsTunnelARHopTable due to the fact that
            some details of the path may have been resolved within the
            network.

            A value of zero denotes that no path is currently in use or
            available."
      DEFVAL { 0 }
      ::= { mplsTeP2mpTunnelDestEntry 8 }

   mplsTeP2mpTunnelDestCHopTableIndex OBJECT-TYPE
      SYNTAX        MplsPathIndexOrZero
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
           "Index into the mplsTunnelCHopTable that identifies the
            explicit path for this destination of the P2MP tunnel.

            This path is based on the chosen configured path identified
            by mplsTeP2mpTunnelDestHopTableIndex and
            mplsTeP2mpTunnelDestPathInUse, but may have been modified
            and automatically updated by the agent when computed hops
            become available or when computed hops get modified.

            If this destination is the destination of the 'first S2L
            sub-LSP' then this path will be signaled in the Explicit
            Route Object. If this destination is the destination of a
            'subsequent S2L sub-LSP' then this path will be signaled in
            a Secondary Explicit Route Object."
      REFERENCE
           "Extensions to RSVP-TE for Point to Multipoint TE LSPs,
            R. Aggarwal, S. Yasukawa, and D. Papadimitriou, work in
            progress."
      ::= { mplsTeP2mpTunnelDestEntry 9 }

   mplsTeP2mpTunnelDestARHopTableIndex OBJECT-TYPE
      SYNTAX        MplsPathIndexOrZero
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
           "Index into the mplsTunnelARHopTable that identifies the
            actual hops traversed to this destination of the P2MP
            tunnel. This is automatically updated by the agent when the
            actual hops becomes available.

            If this destination is the destination of the 'first S2L
            sub-LSP' then this path will be signaled in the Recorded
            Route Object. If this destination is the destination of a

Farrel, Yasukawa & Nadeau                                      [Page 27]


Internet Draft     draft-ietf-mpls-p2mp-te-mib-00.txt     September 2006

            'subsequent S2L sub-LSP' then this path will be signaled in
            a Secondary Recorded Route Object."

      REFERENCE
           "Extensions to RSVP-TE for Point to Multipoint TE LSPs,
            R. Aggarwal, S. Yasukawa, and D. Papadimitriou, work in
            progress."
      ::= { mplsTeP2mpTunnelDestEntry 10 }

   mplsTeP2mpTunnelDestTotalUpTime OBJECT-TYPE
      SYNTAX        TimeTicks
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
           "This value represents the aggregate up time for all
            instances of this tunnel to this destination, if this
            information is available.

            If this information is not available, this object MUST
            return a value of 0."
         ::= { mplsTeP2mpTunnelDestEntry 11 }

   mplsTeP2mpTunnelDestInstanceUpTime OBJECT-TYPE
      SYNTAX        TimeTicks
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
           "This value identifies the total time that the currently
            active tunnel instance to this destination has had its
            operational status (mplsTeP2mpTunnelDestOperStatus) set to
            up(1) since it was last previously not up(1)."
         ::= { mplsTeP2mpTunnelDestEntry 12 }

   mplsTeP2mpTunnelDestPathChanges OBJECT-TYPE
      SYNTAX        Counter32
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
           "This object counts the number of times the actual path for
            this destination of this P2MP tunnel instance has changed.
            This object should be read in conjunction with
            mplsTeP2mpTunnelDestDiscontinuityTime."
      ::= { mplsTeP2mpTunnelDestEntry 13 }








Farrel, Yasukawa & Nadeau                                      [Page 28]


Internet Draft     draft-ietf-mpls-p2mp-te-mib-00.txt     September 2006

   mplsTeP2mpTunnelDestLastPathChange OBJECT-TYPE
      SYNTAX        TimeTicks
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
           "Specifies the time since the last change to the actual path
           for this destination of this P2MP tunnel instance."
      ::= { mplsTeP2mpTunnelDestEntry 14 }

   mplsTeP2mpTunnelDestCreationTime OBJECT-TYPE
      SYNTAX        TimeStamp
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
           "Specifies the value of sysUpTime when the first instance of
            this tunnel came into existence for this destination. That
            is, when the value of mplsTeP2mpTunnelDestOperStatus was
            first set to up(1)."
      ::= { mplsTeP2mpTunnelDestEntry 15 }

   mplsTeP2mpTunnelDestStateTransitions OBJECT-TYPE
      SYNTAX        Counter32
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
           "This object counts the number of times the status
            (mplsTeP2mpTunnelDestOperStatus) of this tunnel instance to
            this destination has changed.

            This object should be read in conjunction with
            mplsTeP2mpTunnelDestDiscontinuityTime."
      ::= { mplsTeP2mpTunnelDestEntry 16 }

   mplsTeP2mpTunnelDestDiscontinuityTime 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 row's Counter32 objects expeirenced
            a discontinuity. If no such discontinuity has occurred since
            the last re-initialization of the local management
            subsystem, then this object contains a zero value."
      ::= { mplsTeP2mpTunnelDestEntry 17 }







Farrel, Yasukawa & Nadeau                                      [Page 29]


Internet Draft     draft-ietf-mpls-p2mp-te-mib-00.txt     September 2006

   mplsTeP2mpTunnelDestAdminStatus OBJECT-TYPE
      SYNTAX       INTEGER {
                      up(1),        -- ready to pass data
                      down(2),      -- out of service
                      testing(3)    -- in some test mode
                    }
      MAX-ACCESS    read-create
      STATUS        current
      DESCRIPTION
           "Indicates the desired operational status of this
            destination of this P2MP tunnel."
      DEFVAL { up }
      ::= { mplsTeP2mpTunnelDestEntry 18 }

   mplsTeP2mpTunnelDestOperStatus OBJECT-TYPE
      SYNTAX        INTEGER {
                      up(1),             -- ready to pass data
                      down(2),           -- out of service
                      testing(3),        -- in some test mode
                      unknown(4),        -- status cannot be determined
                      lowerLayerDown(7)  -- down due to the state of
                                         -- lower layer interfaces
                    }
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
           "Indicates the actual operational status of this destination
            of this P2MP tunnel.
            This object may be compared to mplsTunnelOperStatus that
            includes two other values:
              dormant(5)    -- some component is missing
              notPresent(6) -- down due to the state of
                            -- lower layer interfaces.
            These states do not aply to an individual destinaton of a
            P2MP MPLS-TE LSP and so are not included in this object."
      REFERENCE
           "RFC 3812 - Multiprotocol Label Switching (MPLS) Traffic
            Engineering (TE) Management Information Base (MIB),
            Srinivasan, C., Viswanathan, A., and T. Nadeau, June 2004."
      ::= { mplsTeP2mpTunnelDestEntry 19 }













Farrel, Yasukawa & Nadeau                                      [Page 30]


Internet Draft     draft-ietf-mpls-p2mp-te-mib-00.txt     September 2006

   mplsTeP2mpTunnelDestRowStatus OBJECT-TYPE
      SYNTAX        RowStatus
      MAX-ACCESS    read-create
      STATUS        current
      DESCRIPTION
           "This object is used to create, modify, and/or delete a row
            in this table. When a row in this table is in active(1)
            state, no objects in that row can be modified by SET
            operations except mplsTeP2mpTunnelDestAdminStatus and
            mplsTeP2mpTunnelDestStorageType."
      ::= { mplsTeP2mpTunnelDestEntry 20 }

   mplsTeP2mpTunnelDestStorageType OBJECT-TYPE
      SYNTAX        StorageType
      MAX-ACCESS    read-create
      STATUS        current
      DESCRIPTION  "The storage type for this table entry.

                    Conceptual rows having the value 'permanent' need
                    not allow write-access to any columnar objects in
                    the row."
      DEFVAL { volatile }
      ::= { mplsTeP2mpTunnelDestEntry 21 }

   -- End of mplsTeP2mpTunnelDestTable

   -- MPLS Tunnel Branch Performance Table.

   mplsTeP2mpTunnelBranchPerfTable  OBJECT-TYPE
      SYNTAX        SEQUENCE OF MplsTeP2mpTunnelBranchPerfEntry
      MAX-ACCESS    not-accessible
      STATUS        current
      DESCRIPTION
           "This table provides per-tunnel branch MPLS performance
            information.

            This table is not valid for switching types other than
            packet."
      ::= { mplsTeP2mpObjects 4 }

   mplsTeP2mpTunnelBranchPerfEntry OBJECT-TYPE
      SYNTAX        MplsTeP2mpTunnelBranchPerfEntry
      MAX-ACCESS    not-accessible
      STATUS        current
      DESCRIPTION
           "An entry in this table is created by the LSR for each
            downstream branch (out-segment) from this LSR for this P2MP
            tunnel.

Farrel, Yasukawa & Nadeau                                      [Page 31]


Internet Draft     draft-ietf-mpls-p2mp-te-mib-00.txt     September 2006

            More than one destination as represented by an entry in the
            mplsTeP2mpTunnelDestTable may be reached through a single
            out-segment. More than one out-segment may belong to a
            single P2MP tunnel represented by an entry in
            mplsTeP2mpTunnelTable.

            Each entry in the table is indexed by the four identifiers
            of the P2MP tunnel, and the out-segment that identifies the
            outgoing branch."
      INDEX {  mplsTunnelIndex,
               mplsTunnelInstance,
               mplsTunnelIngressLSRId,
               mplsTunnelEgressLSRId,
               mplsTeP2mpTunnelBranchPerfBranch
            }
      ::= { mplsTeP2mpTunnelBranchPerfTable 1 }

   mplsTeP2mpTunnelBranchPerfEntry ::= SEQUENCE {
         mplsTeP2mpTunnelBranchPerfBranch        MplsIndexType,
         mplsTeP2mpTunnelBranchPerfPackets       Counter32,
         mplsTeP2mpTunnelBranchPerfHCPackets     Counter64,
         mplsTeP2mpTunnelBranchPerfErrors        Counter32,
         mplsTeP2mpTunnelBranchPerfBytes         Counter32,
         mplsTeP2mpTunnelBranchPerfHCBytes       Counter64,
         mplsTeP2mpTunnelBranchDiscontinuityTime TimeStamp
   }

   mplsTeP2mpTunnelBranchPerfBranch OBJECT-TYPE
      SYNTAX        MplsIndexType
      MAX-ACCESS    not-accessible
      STATUS        current
      DESCRIPTION
           "This object identifies the outgoing branch from this LSR
            for this tunnel. Its value is unique within the context of
            the tunnel. If MPLS-LSR-STD-MIB is implemented, this object
            should contain a row pointer to the out-segment for this
            branch. Under all circumstances, this object should contain
            the same value as mplsTeP2mpTunnelDestBranchOutSegment for
            destinations reached on this branch."
         ::= { mplsTeP2mpTunnelBranchPerfEntry 1 }











Farrel, Yasukawa & Nadeau                                      [Page 32]


Internet Draft     draft-ietf-mpls-p2mp-te-mib-00.txt     September 2006

   mplsTeP2mpTunnelBranchPerfPackets OBJECT-TYPE
      SYNTAX        Counter32
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
           "Number of packets forwarded by the tunnel onto this branch.
            This object should represents the 32-bit value of the least
            significant part of the 64-bit value if both
            mplsTeP2mpTunnelBranchPerfHCPackets is returned.
            This object should be read in conjunction with
            mplsTeP2mpTunnelBranchDiscontinuityTime."
      ::= { mplsTeP2mpTunnelBranchPerfEntry 2 }

   mplsTeP2mpTunnelBranchPerfHCPackets OBJECT-TYPE
      SYNTAX        Counter64
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
           "High capacity counter for number of packets forwarded by the
            tunnel onto this branch.
            This object should be read in conjunction with
            mplsTeP2mpTunnelBranchDiscontinuityTime."
      ::= { mplsTeP2mpTunnelBranchPerfEntry 3 }

   mplsTeP2mpTunnelBranchPerfErrors OBJECT-TYPE
      SYNTAX        Counter32
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
           "Number of packets dropped because of errors or for other
            reasons, that were supposed to be forwarded onto this
            branch for this tunnel.
            This object should be read in conjunction with
            mplsTeP2mpTunnelBranchDiscontinuityTime."
      ::= { mplsTeP2mpTunnelBranchPerfEntry 4 }

   mplsTeP2mpTunnelBranchPerfBytes OBJECT-TYPE
      SYNTAX        Counter32
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
           "Number of bytes forwarded by the tunnel onto this branch.
            This object should represents the 32-bit value of the least
            significant part of the 64-bit value if both
            mplsTeP2mpTunnelBranchPerfHCBytes is returned.
            This object should be read in conjunction with
            mplsTeP2mpTunnelBranchDiscontinuityTime."
      ::= { mplsTeP2mpTunnelBranchPerfEntry 5 }



Farrel, Yasukawa & Nadeau                                      [Page 33]


Internet Draft     draft-ietf-mpls-p2mp-te-mib-00.txt     September 2006

   mplsTeP2mpTunnelBranchPerfHCBytes OBJECT-TYPE
      SYNTAX        Counter64
      MAX-ACCESS    read-only
      STATUS        current
      DESCRIPTION
           "High capacity counter for number of bytes forwarded
            by the tunnel onto this branch.
            This object should be read in conjunction with
            mplsTeP2mpTunnelBranchDiscontinuityTime."
      ::= { mplsTeP2mpTunnelBranchPerfEntry 6 }

   mplsTeP2mpTunnelBranchDiscontinuityTime 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 row's Counter32 or COunter64 objects
            expeirenced a discontinuity. If no such discontinuity has
            occurred since the last re-initialization of the local
            management subsystem, then this object contains a zero
            value."
      ::= { mplsTeP2mpTunnelBranchPerfEntry 7 }

   -- End of mplsTeP2mpTunnelBranchPerfTable

   -- Notifications.

   mplsTeP2mpTunnelNotificationEnable OBJECT-TYPE
      SYNTAX        TruthValue
      MAX-ACCESS    read-write
      STATUS        current
      DESCRIPTION
           "If this object is true(1), then it enables the generation of
            mplsTeP2mpTunnelDestUp and mplsTeP2mpTunnelDestDown
            notifications. Otherwise these notifications are not
            emitted."
      DEFVAL { false }
      ::= { mplsTeP2mpObjects 5 }

   mplsTeP2mpTunnelDestUp NOTIFICATION-TYPE
      OBJECTS     {
         mplsTeP2mpTunnelDestAdminStatus,
         mplsTeP2mpTunnelDestOperStatus
      }
      STATUS      current
      DESCRIPTION
           "This notification is generated when a
            mplsTeP2mpTunnelDestOperStatus object for one of the
            destinations of one of the configured tunnels is about to
            leave the down(2) state and transition into some other
            state.  This other state is indicated by the included value
            of mplsTeP2mpTunneldestOperStatus.
            This reporting of state transitions mirrors mplsTunnelUp."
      REFERENCE
           "RFC 3812 - Multiprotocol Label Switching (MPLS) Traffic
            Engineering (TE) Management Information Base (MIB),
            Srinivasan, C., Viswanathan, A., and T. Nadeau, June 2004."
      ::= { mplsTeP2mpNotifications 1 }


Farrel, Yasukawa & Nadeau                                      [Page 34]


Internet Draft     draft-ietf-mpls-p2mp-te-mib-00.txt     September 2006

   mplsTeP2mpTunnelDestDown NOTIFICATION-TYPE
      OBJECTS     {
         mplsTeP2mpTunnelDestAdminStatus,
         mplsTeP2mpTunnelDestOperStatus
      }
      STATUS      current
      DESCRIPTION
           "This notification is generated when a
            mplsTeP2mpTunnelDestOperStatus object for one of the
            destinations of one of the configured tunnels is about to
            enter the down(2) state from some other state. This other
            state is indicated by the included value of
            mplsTeP2mpTunnelDestOperStatus.
            This reporting of state transitions mirrors mplsTunnelDown."
      REFERENCE
           "RFC 3812 - Multiprotocol Label Switching (MPLS) Traffic
            Engineering (TE) Management Information Base (MIB),
            Srinivasan, C., Viswanathan, A., and T. Nadeau, June 2004."
      ::= { mplsTeP2mpNotifications 2 }

   -- End of notifications.

   -- Module compliance.

   mplsTeP2mpGroups
      OBJECT IDENTIFIER ::= { mplsTeP2mpConformance 1 }

   mplsTeP2mpCompliances
      OBJECT IDENTIFIER ::= { mplsTeP2mpConformance 2 }

   -- Compliance requirement for fully compliant implementations.

   mplsTeP2mpModuleFullCompliance MODULE-COMPLIANCE
      STATUS       current
      DESCRIPTION
           "Compliance statement for agents that provide full support
            for MPLS-TE-P2MP-STD-MIB. Such devices can be monitored and
            also be configured using this MIB module."



Farrel, Yasukawa & Nadeau                                      [Page 35]


Internet Draft     draft-ietf-mpls-p2mp-te-mib-00.txt     September 2006

   MODULE -- This module.

   MANDATORY-GROUPS {
         mplsTeP2mpGroup,
         mplsTeP2mpNotifGroup
   }
   ::= { mplsTeP2mpCompliances 1 }

   -- Units of conformance.

   mplsTeP2mpGroup OBJECT-GROUP
      OBJECTS {
         mplsTeP2mpTunnelConfigured,
         mplsTeP2mpTunnelActive,
         mplsTeP2mpTunnelTotalMaxHops,
         mplsTeP2mpTunnelIsP2MP,
         mplsTeP2mpTunnelP2mpIntegrity,
         mplsTeP2mpTunnelBranchRole,
         mplsTeP2mpTunnelRowStatus,
         mplsTeP2mpTunnelStorageType,
         mplsTeP2mpTunnelSubGroupIDNext,
         mplsTeP2mpTunnelDestBranchOutSegment,
         mplsTeP2mpTunnelDestHopTableIndex,
         mplsTeP2mpTunnelDestPathInUse,
         mplsTeP2mpTunnelDestCHopTableIndex,
         mplsTeP2mpTunnelDestARHopTableIndex,
         mplsTeP2mpTunnelDestTotalUpTime,
         mplsTeP2mpTunnelDestInstanceUpTime,
         mplsTeP2mpTunnelDestPathChanges,
         mplsTeP2mpTunnelDestLastPathChange,
         mplsTeP2mpTunnelDestCreationTime,
         mplsTeP2mpTunnelDestStateTransitions,
         mplsTeP2mpTunnelDestDiscontinuityTime,
         mplsTeP2mpTunnelDestAdminStatus,
         mplsTeP2mpTunnelDestOperStatus,
         mplsTeP2mpTunnelDestRowStatus,
         mplsTeP2mpTunnelDestStorageType,
         mplsTeP2mpTunnelBranchPerfPackets,
         mplsTeP2mpTunnelBranchPerfHCPackets,
         mplsTeP2mpTunnelBranchPerfErrors,
         mplsTeP2mpTunnelBranchPerfBytes,
         mplsTeP2mpTunnelBranchPerfHCBytes,
         mplsTeP2mpTunnelBranchDiscontinuityTime,
         mplsTeP2mpTunnelNotificationEnable
      }
   STATUS  current
   DESCRIPTION
        "Collection of objects needed for MPLS P2MP."
   ::= { mplsTeP2mpGroups 1 }


Farrel, Yasukawa & Nadeau                                      [Page 36]


Internet Draft     draft-ietf-mpls-p2mp-te-mib-00.txt     September 2006

   mplsTeP2mpNotifGroup NOTIFICATION-GROUP
      NOTIFICATIONS {
         mplsTeP2mpTunnelDestUp,
         mplsTeP2mpTunnelDestDown
      }
   STATUS  current
   DESCRIPTION
        "Notifications implemented in this module."
   ::= { mplsTeP2mpGroups 2 }
   END

8.  Security Considerations

   It is clear that this MIB module is potentially useful for the
   monitoring of P2MP MPLS TE tunnels. This MIB module can also be used
   for the configuration of certain objects, and anything that can be
   configured can be incorrectly configured, with potentially disastrous
   results.

   There are a number of management objects defined in this MIB module
   with a MAX-ACCESS clause of read-write and/or read-create. Such
   objects may be considered sensitive or vulnerable in some network
   environments. The support for SET operations in a non-secure
   environment without proper protection can have a negative effect on
   network operations. These are the tables and objects and their
   sensitivity/vulnerability:

   - The mplsTeP2mpTunnelTable and mplsTeP2mpTunnelDestTable contain
     objects that can be used to provision P2MP MPLS tunnels, the
     destinations of those tunnels, and the hops that those tunnels take
     through the network. Unauthorized access to objects in these tables
     could result in disruption of traffic in the network. This is
     especially true if a tunnel has already been established.

     The use of stronger mechanisms, such as SNMPv3 security, should be
     considered where possible. Specifically, SNMPv3 VACM and USM MUST
     be used with any v3 agent which implements this MIB module.
     Administrators SHOULD also consider whether read access to these
     objects is allowed, since read access may be undesirable under
     certain circumstances as described below.

   - The use of this MIB module depends on the use of certain objects
     within MPLS-TE-STD-MIB defined in [RFC3812]. Note that those
     objects are also subject to the same security considerations, and
     any vulnerability to those objects could compromise the P2MP MPLS
     tunnels and/or data in the network. The security section of
     [RFC3812] MUST be applied in conjunction with this security
     section.



Farrel, Yasukawa & Nadeau                                      [Page 37]


Internet Draft     draft-ietf-mpls-p2mp-te-mib-00.txt     September 2006

   - This MIB module does not depend on MPLS-LSR-STD-MIB, but may be
     used in conjunction with that MIB module. If MPLS-LSR-STD-MIB is
     implemented on an LSR, then access to its objects can compromise
     any P2MP MPLS tunnels that start or end on, or transit the LSR.
     MPLS-LSR-STD-MIB is defined in [RFC3813] which has its own security
     section that MUST be applied in conjunction with this security
     section if both MIB modules are supported.

   Some of the readable objects in this MIB module (i.e., objects with a
   MAX-ACCESS other than not-accessible) may be considered sensitive or
   vulnerable in some network environments. It is thus important to
   control even GET and/or NOTIFY access to these objects, and possibly
   even to encrypt the values of these objects when sending them over
   the network via SNMP. These are the tables and objects and their
   sensitivity/vulnerability:

   - The mplsTeP2mpTunnelTable, mplsTeP2mpTunnelDestTable, and
     mplsTeP2mpTunnelBranchPerfTable collectively show information about
     the P2MP MPLS tunnel, its route through the network, and its
     performance characteristics. Knowledge of this information could be
     used to compromise the network, or simply to breach
     confidentiality. If an Administrator does not want to reveal this
     information, these tables should be considered
     sensitive/vulnerable.

   - The objects in MPLS-TE-STD-MIB also provide information about the
     P2MP MPLS tunnels defined in this MIB module. If an Administrator
     does not want to reveal this information, the security section of
     [RFC3812] should be applied.

   - The objects in MPLS-LSR-STD-MIB, if implemented, may also provide
     information about the P2MP MPLS tunnels present at an LSR,
     especially the label swapping and cross-connect operations. If an
     Administrator does not want to reveal this information, the
     security section of [RFC3813] should be applied.

   SNMP versions prior to SNMPv3 did not include adequate security.
   Even if the network itself is secure (for example by using IPSec),
   even then, there is no control as to who on the secure network is
   allowed to access and GET/SET (read/change/create/delete) the objects
   in this MIB module.

   It is RECOMMENDED that implementers consider the security features as
   provided by the SNMPv3 framework (see [RFC3410], section 8),
   including full support for the SNMPv3 cryptographic mechanisms (for
   authentication and privacy).

   Further, deployment of SNMP versions prior to SNMPv3 is NOT
   RECOMMENDED.  Instead, it is RECOMMENDED that SNMPv3 be deployed and
   cryptographic security enabled. It is then a customer/operator

Farrel, Yasukawa & Nadeau                                      [Page 38]


Internet Draft     draft-ietf-mpls-p2mp-te-mib-00.txt     September 2006

   responsibility to ensure that the SNMP entity giving access to an
   instance of this MIB module is properly configured to give access to
   only those principals (users) that have legitimate rights to those
   objects.

9.  Acknowledgments

   The authors wish to thank Tom Petch and Ben Niven-Jenkins for their
   input to this work.

   Comments should be made directly to the MPLS mailing list at
   mpls@lists.ietf.org

10.  IANA Considerations

   As requested in MPLS-TC-STD-MIB [RFC3811], MPLS-related standards
   track MIB modules should be rooted under the mplsStdMIB subtree.

   There is one new MPLS MIB module contained in this document, and the
   following "IANA Considerations" subsection requests IANA for a new
   assignment under the mplsStdMIB subtree.

   New assignments can only be made via a Standards Action as specified
   in [RFC2434].

10.1.  IANA Considerations for MPLS-TE-P2MP-STD-MIB

   IANA is requested to assign an oid under the mplsStdMIB subtree to
   the MPLS-TE-P2MP-STD-MIB module specified in this document.

-- RFC Editor. Please see the marker YYY in this document and replace it
-- with the value assigned by IANA.
-- Please remove this note.

11.  References

11.1.  Normative References

   [RFC2119]  Bradner, S., "Key Words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC2578]  McCloghrie, K., Perkins, D., and J. Schoenwaelder,
              "Structure of Management Information Version 2 (SMIv2)",
              STD 58, RFC 2578, April 1999.

   [RFC2579]  McCloghrie, K., Perkins, D., and J. Schoenwaelder,
              "Textual Conventions for SMIv2", STD 58, RFC 2579, April
              1999.



Farrel, Yasukawa & Nadeau                                      [Page 39]


Internet Draft     draft-ietf-mpls-p2mp-te-mib-00.txt     September 2006

   [RFC2580]  McCloghrie, K., Perkins, D., and J. Schoenwaelder,
              "Conformance Statements for SMIv2", STD 58, RFC 2580,
              April 1999.

   [RFC3031]  Rosen, E., Viswanathan, A., and R. Callon, "Multiprotocol
              Label Switching Architecture", RFC 3031, January 2001.

   [RFC3209]  Awduche, D., Berger, L., Gan, D., Li, T., Srinivasan, V.,
              and G. Swallow, "RSVP-TE:  Extensions to RSVP for LSP
              Tunnels", RFC 3209, December 2001.

   [RFC3289]  Baker, F., Chan, K., and A. Smith, "Management Information
              Base for the Differentiated Services Architecture", RFC
              3289, May 2002.

   [RFC3291]  Daniele, M., Haberman, B., Routhier, S., and J.
              Schoenwaelder, "TextualConventions for Internet Network
              Addresses", RFC 3291, May 2002.

   [RFC3811]  Nadeau, T. and J. Cucchiara, "Definition of Textual
              Conventions and for Multiprotocol Label Switching (MPLS)
              Management", RFC 3811, June 2004.

   [RFC3812]  Srinivasan, C., Viswanathan, A., and T. Nadeau,
              "Multiprotocol Label Switching (MPLS) Traffic
              Engineering (TE) Management Information Base (MIB)",
              RFC 3812, June 2004.

   [RFC3813]  Srinivasan, C., Viswanathan, A., and T.  Nadeau,
              "Multiprotocol Label Switching (MPLS) Label Switching
              (LSR) Router Management Information Base (MIB)", RFC 3813,
              June 2004.

   [RFC3945]  Mannie, E., Ed., "Generalized Multiprotocol Label
              Switching (GMPLS) Architecture", RFC 3945, October 2004.

   [RFC4461]  S. Yasukawa, Editor "Signaling Requirements for
              Point-to-Multipoint Traffic Engineered MPLS LSPs",
              RFC4461, April 2006.

   [P2MP-TE]  Aggarwal, R., Papadimitriou, D., and Yasukawa, S.,
              "Extensions to RSVP-TE for Point to Multipoint TE
              LSPs", draft-ietf-mpls-rsvp-te-p2mp, work in progress.

11.2.  Informative References

   [RFC4221]  Nadeau, T., Srinivasan, C., and A. Farrel, "Multiprotocol
              Label Switching (MPLS) Management Overview", RFC 4221,
              November 2005.


Farrel, Yasukawa & Nadeau                                      [Page 40]


Internet Draft     draft-ietf-mpls-p2mp-te-mib-00.txt     September 2006

   [RFC2434]  Narten, T. and H. Alvestrand.,  "Guidelines for Writing an
              IANA Considerations Section in RFCs", BCP 26, RFC 2434,
              October 1998.

   [RFC3410]  Case, J., Mundy, R., Partain, D., and B.  Stewart,
              "Introduction and Applicability Statement for Internet
              Standard Management Framework", RFC 3410, December 2002.

   [GMPLS-TE-MIB] Nadeau, T. and A. Farrel, "Generalized Multiprotocol
                  Label Switching (GMPLS) Traffic Engineering Management
                  Information Base", draft-ietf-ccamp-gmpls-te-mib, work
                  in progress.

12.  Authors' Addresses

   Adrian Farrel
   Old Dog Consulting
   Email: adrian@olddog.co.uk

   Seisho Yasukawa
   NTT Corporation
   9-11, Midori-Cho 3-Chome
   Musashino-Shi, Tokyo 180-8585 Japan
   Phone: +81 422 59 4769
   EMail: s.yasukawa@hco.ntt.co.jp

   Thomas D. Nadeau
   Cisco Systems, Inc.
   1414 Massachusetts Ave.
   Boxborough, MA 01719
   Email: tnadeau@cisco.com

13.  Intellectual Property

   The IETF takes no position regarding the validity or scope of any
   Intellectual Property Rights or other rights that might be claimed to
   pertain to the implementation or use of the technology described in
   this document or the extent to which any license under such rights
   might or might not be available; nor does it represent that it has
   made any independent effort to identify any such rights.  Information
   on the procedures with respect to rights in RFC documents can be
   found in BCP 78 and BCP 79.

   Copies of IPR disclosures made to the IETF Secretariat and any
   assurances of licenses to be made available, or the result of an
   attempt made to obtain a general license or permission for the use of
   such proprietary rights by implementers or users of this
   specification can be obtained from the IETF on-line IPR repository at
   http://www.ietf.org/ipr.


Farrel, Yasukawa & Nadeau                                      [Page 41]


Internet Draft     draft-ietf-mpls-p2mp-te-mib-00.txt     September 2006

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights that may cover technology that may be required to implement
   this standard.  Please address the information to the IETF at ietf-
   ipr@ietf.org.

14.  Full Copyright Statement

   Copyright (C) The Internet Society (2006). This document is subject
   to the rights, licenses and restrictions contained in BCP 78, and
   except as set forth therein, the authors retain all their rights.

   This document and the information contained herein are provided on an
   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
   OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
   ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
   INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
   INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
































Farrel, Yasukawa & Nadeau                                      [Page 42]