Network Working Group                                      Z. Zhang, Ed.
Internet-Draft                                                   Juniper
Intended status: Standards Track                                 S. Asif
Expires: December 8, 2017 June 11, 2018                                              AT&T
                                                                A. Green
                                                                      BT
                                                           S. Gulranjani
                                                                   Cisco
                                                                 P. Jain
                                                          Alcatel-Lucent
                                                         H. Tsunoda, Ed.
                                          Tohoku Institute of Technology
                                                           June 06,
                                                       December 08, 2017

       BGP/MPLS Layer 3 VPN Multicast Management Information Base
                      draft-ietf-bess-mvpn-mib-04
                      draft-ietf-bess-mvpn-mib-05

Abstract

   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 to configure and/or
   monitor MVPN, Multicast in MultiProtocol Label Switching/Border
   Gateway Protocol (MPLS/BGP) IP Virtual Private Networks (VPNs) on a
   Provider Edge router.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at http://datatracker.ietf.org/drafts/current/.

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

   This Internet-Draft will expire on December 8, 2017. June 11, 2018.

Copyright Notice

   Copyright (c) 2017 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
     1.1.  Terminology . . . . . . . . . . . . . . . . . . . . . . .   3
   2.  The Internet-Standard Management Framework  . . . . . . . . .   4
   3.  MCAST-VPN-MIB . . . . . . . . . . . . . . . . . . . . . . . .   4
     3.1.  Summary of MIB Module . . . . . . . . . . . . . . . . . .   4
     3.2.  MIB Module Definitions  . . . . . . . . . . . . . . . . .   7
   4.  Security Considerations . . . . . . . . . . . . . . . . . . .  36
   5.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  37
   6.  Acknowledgement . . . . . . . . . . . . . . . . . . . . . . .  37
   7.  References  . . . . . . . . . . . . . . . . . . . . . . . . .  37
     7.1.  Normative References  . . . . . . . . . . . . . . . . . .  37
     7.2.  Informative References  . . . . . . . . . . . . . . . . .  39
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  39

1.  Introduction

   [RFC6513]

   [RFC6513], [RFC6514], and [RFC6625] specify procedures for supporting
   multicast in Border Gateway Protocol/MultiProtocol Label Switching
   (BGP/MPLS) Layer 3 (IP) Virtual Private Network (VPN).  Throughout
   this document, we will use the term "Multicast VPN (MVPN)" [RFC6513]
   to refer to a BGP/MPLS IP VPN that supports multicast.

   Provider Edge routers (PEs) exchange the VPN customer multicast
   (C-multicast) routing information with each other.  In [RFC6513], two
   basic methods for exchanging C-multicast routing information are
   defined (1) Protocol Independent Multicast (PIM) [RFC4601] [RFC7761] and (2)
   BGP.

   In the rest of this document we will use the term "PIM-MVPN" to refer
   to PIM being used for exchanging C-multicast routing information, and
   "BGP-MVPN" to refer to BGP being used for exchanging C-multicast
   routing information.

   This document describes managed objects to configure and/or monitor
   MVPN.  The managed objects are common to both PIM-MVPN and BGP-MVPN.

   This document borrowed some text from Cisco PIM-MVPN MIB
   [I-D.svaidya-mcast-vpn-mib].  For PIM-MVPN this document attempts to
   provide coverage comparable to [I-D.svaidya-mcast-vpn-mib], but in a
   generic way that applies to both PIM-MVPN and BGP-MVPN.

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

   Comments should be made directly to the BESS WG at bess@ietf.org.

1.1.  Terminology

   This document adopts the definitions, acronyms and mechanisms
   described in [RFC6513] and other documents that [RFC6513] refers to.
   Familiarity with Multicast, MPLS, Layer 3 (L3) VPN, MVPN concepts
   and/or mechanisms is assumed.  Some terms specifically related to
   this document are explained below.

   MVPN can be achieved by using various kinds of transport mechanisms
   for forwarding a packet to all or a subset of PEs across service
   provider networks.  Such transport mechanisms are referred to as
   provider tunnels (P-tunnels).

   "Provider Multicast Service Interface (PMSI)" [RFC6513] is a
   conceptual interface instantiated by a provider tunnel (P-tunnel), a
   transport mechanism used to deliver multicast traffic.  A PE uses to
   send customer multicast traffic to all or some PEs in the same VPN.

   There are two kinds of PMSI: "Inclusive PMSI (I-PMSI)" and "Selective
   PMSI (S-PMSI)" [RFC6513].  An I-PMSI is a PMSI that enables a PE
   attached to a particular MVPN to transmit a message to all PEs in the
   same VPN.  An S-PMSI is a PMSI that enables a PE attached to a
   particular MVPN to transmit a message to some of the PEs in the same
   VPN.

   Interchangeably, the term Multicast Virtual Routing and Forwarding
   table (MVRF) and MVPN are used to refer to a particular Multicast VPN
   instantiation on a particular PE.

   As described in [RFC4382], each PE router maintains one default
   forwarding table and "VPN Routing and Forwarding tables", or "VRFs".
   Throughout this document, we will use the term "multicast VRF (MVRF)"
   to refer a VRF that is configured to contain the multicast routing
   information.

   Interchangeably, the term MVRF and MVPN are used to refer to a
   particular Multicast VPN instantiation on a particular PE.

   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 [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.  MCAST-VPN-MIB

   This document defines MCAST-VPN-MIB, a MIB module for monitoring and/
   or configuring MVPNs on PEs.

3.1.  Summary of MIB Module

   The configuration and states specific to an MVPN include the
   following information elements:

   o  C-multicast routing information exchange protocol (PIM or BGP)

   o  I-PMSI, S-PMSI and corresponding P-tunnels

   o  Mapping of C-multicast routing information to PMSI tunnels

   To represent these information elements, MCAST-VPN-MIB defines eight
   tables: mvpnGeneralTable, mvpnBgpGeneralTable, mvpnSpmsiConfigTable,
   mvpnPmsiConfigTable, mvpnIpmsiTable, mvpnInterAsIpmsiTable,
   mvpnSpmsiTable, mvpnMrouteTable.

   The following four tables are designed for configuring MVPNs represent the MVPN configurations on PEs.

   o  mvpnGeneralTable

   o  mvpnBgpGeneralTable

   o  mvpnSpmsiConfigTable

   o  mvpnPmsiConfigTable

   The following diagram shows the relationship among those four tables
   use for configuration.  Each box in the diagram represents a table,
   and the label of each box corresponds to a table name.  An arrow
   indicates that one table has a pointer to a row in another table.
   The entry in mvpnGeneralTable and mvpnSpmsiConfigTable has a pointer
   to the row pertaining to the entry in the mvpnPmsiConfigTable.

        +--------------+
        | mvpnBgp      |
        | GeneralTable |
        +--------------+    +-------------------+    +-----------------+
        | mvpnGeneral  |    | mvpnPmsiConfig    |    | mvpnSpmsiConfig |
        | Table        | -> | Table             | <- | Table           |
        +--------------+    +-------------------+    +-----------------+

   o  mvpnGeneralTable

      This table represents MVPNs that are configured on a PE.  Each
      entry in this table is created for each MVRF representing an
      instance of MVPN.  The entry represetns general configuration/
      states of the MVRF, including Inclusive PMSI (I-PMSI)
      configuration.  The MVPN represented by the entry in this table
      must have the corresponding VRF in MPLS-L3VPN-STD-MIB [RFC4382].

   o  mvpnBgpGeneralTable

      This table augments the aformentioned mvpnGeneralTable.  This
      table contains BGP-MVPN specific managed objects.

   o  mvpnSpmsiConfigTable

      This table contains managed objects necessary for configure
      Selective PMSI (S-PMSI) associated with an MVRF on a PE.

   o  mvpnPmsiConfigTable

      This table contains managed objects common to both I-PMSI and
      S-PMSI configurations.  Both I-PMSI configuration (in the entry in
      mvpnGeneralTable) and S-PMSI configuration (in the entry in
      mvpnSpmsiConfigTable) refer to an entry in this table.

   The following four tables are designed for monitoring MVPNs on PEs.

   o  mvpnIpmsiTable

   o  mvpnInterAsIpmsiTable

   o  mvpnSpmsiTable

   o  mvpnMrouteTable
   The following diagram shows the relationship among these four tables
   and the l2l3VpnMcastPmsiTunnelAttributeTable defined separately in
   L2L3-VPN-MCAST-MIB [I-D.ietf-bess-l2l3-vpn-mcast-mib].  The entry in
   every table has a pointer to the row pertaining to the entry in the
   l2l3VpnMcastPmsiTunnelAttributeTable.

        +--------------+    +-------------------+    +-----------------+
        |  mvpnIpmsi   | -> | l2L3VpnMcastPmsi  | <- |    mvpnSpmsi    |
        |  Table       |    | TunnelAttribute   |    |    Table        |
        +--------------+    | Table             |    +-----------------+
                         -> +-------------------+
                        /            ^
                       /             |
        +--------------+    +-------------------+
        | mvpnInterAs  |    |  mvpnMrouteTable  |
        | IpmsiTable   |    +-------------------+
        +--------------+

   o  mvpnIpmsiTable

      This table contains managed objects for monitoring all Intra-AS
      I-PMSIs advertised and received by a PE.  This table contains all
      advertised and received Intra-AS I-PMSIs.  With PIM-MVPN, it is
      applicable only when BGP-Based Autodiscovery of MVPN Membership is
      used.

   o  mvpnInterAsIpmsiTable

      This table contains all advertised and received Inter-AS I-PMSIs.
      With PIM-MVPN, it is applicable only when BGP-Based Autodiscovery
      of MVPN Membership is used.

   o  mvpnSpmsiTable

      This table contains managed objects for monitoring all S-PMSIs
      advertised and received by a PE.

   o  mvpnMrouteTable

      This table augments
      ipMcastMIB.ipMcast.ipMcastRouteTable [RFC5132], for some MVPN
      specific information.

   o  l2l3VpnMcastPmsiTunnelAttributeTable

      An entry of this table corresponds to a PMSI Tunnel attribute and
      is maintained by a PE router that advertises and receives the
      attribute.  Th entry in this table is referred by entries in
      mvpnIpmsiTable, mvpnInterAsIpmsiTable, mvpnSpmsiTable, and
      mvpnMrouteTable.

3.2.  MIB Module Definitions

  MCAST-VPN-MIB DEFINITIONS ::= BEGIN

  IMPORTS
     MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
     Gauge32, Unsigned32, mib-2                 -- [RFC2578]
        FROM SNMPv2-SMI                         -- [RFC2578]

     MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
        FROM SNMPv2-CONF                        -- [RFC2580]

     TruthValue, RowPointer, RowStatus, TimeStamp, TimeInterval
        FROM SNMPv2-TC                          -- [RFC2579]

     SnmpAdminString
        FROM SNMP-FRAMEWORK-MIB                 -- [RFC2571]

     InetAddress, InetAddressType InetAddressType, InetAddressPrefixLength,
     InetAutonomousSystemNumber
        FROM INET-ADDRESS-MIB                   -- [RFC2851]

     mplsL3VpnVrfName, MplsL3VpnRouteDistinguisher
        FROM MPLS-L3VPN-STD-MIB                 -- [RFC4382]

     ipMcastRouteEntry
        FROM IPMCAST-MIB                        -- [RFC5132]

     L2L3VpnMcastProviderTunnelType
        FROM L2L3-VPN-MCAST-TC-MIB;

  mvpnMIB MODULE-IDENTITY
     LAST-UPDATED "201706061200Z" "201712081200Z"  -- 6th June 8th December 2017 12:00:00 GMT
     ORGANIZATION "IETF BESS Working Group."
     CONTACT-INFO
           "       Zhaohui Zhang
                   Juniper Networks, Inc.
                   10 Technology Park Drive
                   Westford, MA 01886
                   USA
                   Email: zzhang@juniper.net

                   Saud Asif
                   AT&T
                   C5-3D30 200 South Laurel Avenue
                   Middletown, NJ 07748
                   USA
                   Email: sasif@att.com

                   Andy Green
                   BT Design 21CN Converged Core IP & Data
                   01473 629360 Adastral Park, Martlesham Heath,
                   Ipswich IP5 3RE
                   UK
                   Email: andy.da.green@bt.com

                   Sameer Gulrajani
                   Cisco Systems
                   Tasman Drive San Jose, CA  95134
                   USA
                   Email: sameerg@cisco.com

                   Pradeep G. Jain
                   Alcatel-Lucent Inc
                   701 E Middlefield road Mountain view, CA 94043
                   USA
                   Email: pradeep.jain@alcatel-lucent.com

                   Hiroshi Tsunoda
                   Tohoku Institute of Technology
                   35-1, Yagiyama Kasumi-cho
                   Taihaku-ku, Sendai, 982-8577
                   Japan
                   Email: tsuno@m.ieice.org

                   Comments and discussion to bess@ietf.org"

     DESCRIPTION
          "This MIB contains managed object definitions for
           multicast in BGP/MPLS IP VPNs defined by [RFC6513].
           Copyright (C) The Internet Society (2017)."

    -- Revision history.

    REVISION "201706061200Z" "201712081200Z"  -- 6th June, 8th December, 2017
    DESCRIPTION
        "Initial version, published as RFC XXXX."

    -- RFC Ed. replace XXXX with actual RFC number and remove this note

    ::= { mib-2 YYYY }

    -- IANA Reg.: Please assign a value for "YYYY" under the
    -- 'mib-2' subtree and record the assignment in the SMI
    -- Numbers registry.

    -- RFC Ed.: When the above assignment has been made, please
    -- remove the above note
    -- replace "YYYY" here with the assigned value and
    -- remove this note.

  -- Top level components of this MIB.
  mvpnNotifications OBJECT IDENTIFIER ::= { mvpnMIB 0 }

  -- tables, scalars
  mvpnObjects       OBJECT IDENTIFIER ::= { mvpnMIB 1 }

  -- conformance information
  mvpnConformance   OBJECT IDENTIFIER ::= { mvpnMIB 2 }

  -- mvpn Objects
  mvpnScalars       OBJECT IDENTIFIER ::= { mvpnObjects 1 }
  mvpnGeneral       OBJECT IDENTIFIER ::= { mvpnObjects 2 }
  mvpnConfig        OBJECT IDENTIFIER ::= { mvpnObjects 3 }
  mvpnStates        OBJECT IDENTIFIER ::= { mvpnObjects 4 }

  -- Scalar Objects

  mvpnMvrfs OBJECT-TYPE
     SYNTAX        Gauge32
     MAX-ACCESS    read-only
     STATUS        current
     DESCRIPTION
         "The total number of MVRFs that are present on
          this Provider Edge router (PE), whether
          for IPv4, IPv6, or mLDP C-Multicast."
     ::= { mvpnScalars 1 }

  mvpnV4Mvrfs OBJECT-TYPE
     SYNTAX        Gauge32
     MAX-ACCESS    read-only
     STATUS        current
     DESCRIPTION
         "The number of MVRFs for IPv4 C-Multicast that are
          present in this PE."
     ::= { mvpnScalars 2 }

  mvpnV6Mvrfs OBJECT-TYPE
     SYNTAX        Gauge32
     MAX-ACCESS    read-only
     STATUS        current
     DESCRIPTION
         "The number of MVRFs for IPv6 C-Multicast that are
          present in this PE."
     ::= { mvpnScalars 3 }

  mvpnPimV4Mvrfs OBJECT-TYPE
     SYNTAX         Gauge32
     MAX-ACCESS     read-only
     STATUS         current
     DESCRIPTION
         "The number of PIM-MVPN MVRFs for IPv4 C-Multicast that are
          present in this PE."
     ::= { mvpnScalars 4 }

  mvpnPimV6Mvrfs OBJECT-TYPE
     SYNTAX         Gauge32
     MAX-ACCESS     read-only
     STATUS         current
     DESCRIPTION
         "The number of PIM-MVPN MVRFs for IPv6 C-Multicast that are
          present in this PE."
     ::= { mvpnScalars 5 }

  mvpnBgpV4Mvrfs OBJECT-TYPE
     SYNTAX         Gauge32
     MAX-ACCESS     read-only
     STATUS         current
     DESCRIPTION
         "The number of BGP-MVPN MVRFs for IPv4 C-Multicast that are
          present in this PE."
     ::= { mvpnScalars 6 }

  mvpnBgpV6Mvrfs OBJECT-TYPE
     SYNTAX         Gauge32
     MAX-ACCESS     read-only
     STATUS         current
     DESCRIPTION
         "The number of BGP-MVPN MVRFs for IPv6 C-Multicast that are
          present in this PE."
     ::= { mvpnScalars 7 }

  mvpnMldpMvrfs OBJECT-TYPE
     SYNTAX         Gauge32
     MAX-ACCESS     read-only
     STATUS         current
     DESCRIPTION
         "The number of BGP-MVPN MVRFs for mLDP C-Multicast that are
          present in this PE."
     ::= { mvpnScalars 8 }

  mvpnNotificationEnable OBJECT-TYPE
     SYNTAX        TruthValue
     MAX-ACCESS    read-write
     STATUS        current
     DESCRIPTION
          "If this object is TRUE, then the generation of all
           notifications defined in this MIB is enabled."
     DEFVAL { false }
     ::= { mvpnScalars 9 }

  -- General MVRF Information Table

  mvpnGeneralTable  OBJECT-TYPE
     SYNTAX        SEQUENCE OF MvpnGeneralEntry
     MAX-ACCESS    not-accessible
     STATUS        current
     DESCRIPTION
         "This table specifies the general information about the MVRFs
          present in this PE."
     ::= { mvpnGeneral 1 }

  mvpnGeneralEntry OBJECT-TYPE
     SYNTAX        MvpnGeneralEntry
     MAX-ACCESS    not-accessible
     STATUS        current
     DESCRIPTION
         "An entry in this table is created for each MVRF in the
          PE."
     INDEX {
             mplsL3VpnVrfName,
             mvpnGenAddressFamily
           }
     ::= { mvpnGeneralTable 1 }

  MvpnGeneralEntry ::= SEQUENCE {
    mvpnGenAddressFamily         INTEGER,
    mvpnGenMvrfStatusChange      INTEGER,
    mvpnGenMvrfStatusChangeTime  TimeStamp,
    mvpnGenCmcastRouteProtocol   INTEGER,
    mvpnGenIpmsiConfig           RowPointer,
    mvpnGenInterAsPmsiConfig     RowPointer,
    mvpnGenUmhSelection          INTEGER,
    mvpnGenSiteType              INTEGER,
    mvpnGenSptnlLimit            Unsigned32,
    mvpnGenRowStatus             RowStatus

  }

  mvpnGenAddressFamily OBJECT-TYPE
     SYNTAX      INTEGER {
                           ipv4(1),
                           ipv6(2)
                         }
     MAX-ACCESS  not-accessible
     STATUS      current
     DESCRIPTION
         "The Address Family that this entry is for"
     ::= { mvpnGeneralEntry 1 }

  mvpnGenMvrfStatusChange OBJECT-TYPE
     SYNTAX      INTEGER {
                           createdMvrf(1),
                           deletedMvrf(2),
                           modifiedMvrfIpmsiConfig(3),
                           modifiedMvrfSpmsiConfig(4)
                         }
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
         "This object describes the last status change that
          happened for the given MVRF.

            createdMvrf(1):
              indicates that the MVRF was created in the PE.

            deletedMvrf(2):
              indicates that the MVRF was deleted from the PE.
              A row in this table will never have
              mvpnGenMvrfStatusChange equal to deletedMvrf(2),
              because in that case the row itself will be deleted
              from the table.
              This value for mvpnGenMvrfStatusChange is defined mainly
              for use in mvpnMvrfStatusChange notification.

            modifiedMvrfIpmsiConfig(3):
              indicates that the I-PMSI for the MVRF was configured,
              deleted or changed.

            modifiedMvrfSpmsiConfig(4):
              indicates that the S-PMSI for the MVRF was configured,
              deleted or changed.
         "
     DEFVAL { createdMvrf }
     ::= { mvpnGeneralEntry 2 }

  mvpnGenMvrfStatusChangeTime OBJECT-TYPE
     SYNTAX        TimeStamp
     MAX-ACCESS    read-only
     STATUS        current
     DESCRIPTION
         "The time at which the last status change for the MVRF in
          question took place. The last operational change is specified
          by mvpnGenOperStatusChange. mvpnGenMvrfStatusChange.
         "
     ::= { mvpnGeneralEntry 3 }

  mvpnGenCmcastRouteProtocol OBJECT-TYPE
     SYNTAX        INTEGER {
                             pim (1),
                             bgp (2)
                           }
     MAX-ACCESS    read-create
     STATUS        current
     DESCRIPTION
         "The protocol used to signal C-multicast states across the
          provider core.
            pim(1): PIM (PIM-MVPN).
            bgp(2): BGP (BGP-MVPN).
         "
     ::= { mvpnGeneralEntry 4 }

  mvpnGenIpmsiConfig OBJECT-TYPE
     SYNTAX        RowPointer
     MAX-ACCESS    read-create
     STATUS        current
     DESCRIPTION
         "This points to a row in mvpnPmsiConfigTable,
          for I-PMSI configuration.
         "
     ::= { mvpnGeneralEntry 5 }

  mvpnGenInterAsPmsiConfig OBJECT-TYPE
     SYNTAX        RowPointer
     MAX-ACCESS    read-create
     STATUS        current
     DESCRIPTION
         "This points to a row in mvpnPmsiConfigTable,
          for inter-as I-PMSI configuration, in case of segmented
          inter-as provider tunnels.
         "
     ::= { mvpnGeneralEntry 6 }

  mvpnGenUmhSelection OBJECT-TYPE
     SYNTAX        INTEGER {
                             highestPeAddress  (1),
                             cRootGroupHashing (2),
                             ucastUmhRoute     (3)
                           }
     MAX-ACCESS    read-create
     STATUS        current
     DESCRIPTION
         "The UMH selection method for this mvpn, as specified in
          section 5.1.3 of [RFC6513]:
            highestPeAddress   (1): PE with the highest address
            cRootGroupHashing  (2): hashing based on (c-root, c-group)
            uncastUmhRoute     (3): per ucast route towards c-root
         "
     ::= { mvpnGeneralEntry 7 }

  mvpnGenSiteType OBJECT-TYPE
     SYNTAX        INTEGER {
                             senderReceiver (1),
                             receiverOnly   (2),
                             senderOnly     (3)
                           }
     MAX-ACCESS    read-create
     STATUS        current
     DESCRIPTION
         "Whether this site is a receiver-only site or not.
            senderReceiver (1):   both sender and receiver site.
            receiverOnly   (2):   receiver-only site.
            senderOnly     (3):   sender-only site.
         "
     ::= { mvpnGeneralEntry 8 }

  mvpnGenSptnlLimit OBJECT-TYPE
     SYNTAX        Unsigned32
     MAX-ACCESS    read-create
     STATUS        current
     DESCRIPTION
         "The max number of selective provider tunnels this PE
          allows for this mvpn."
     ::= { mvpnGeneralEntry 9 }

  mvpnGenRowStatus OBJECT-TYPE
     SYNTAX        RowStatus
     MAX-ACCESS    read-create
     STATUS        current
     DESCRIPTION
         "This is used to create or delete a row in this table."
     ::= { mvpnGeneralEntry 10 }

  -- General BGP-MVPN table

  mvpnBgpGeneralTable OBJECT-TYPE
     SYNTAX        SEQUENCE OF MvpnBgpGeneralEntry
     MAX-ACCESS    not-accessible
     STATUS        current
     DESCRIPTION
         "This table augments the mvpnGeneralTable and is for BGP-MVPN
          specific information.
         "
     ::= { mvpnGeneral 2 }

  mvpnBgpGeneralEntry OBJECT-TYPE
     SYNTAX           MvpnBgpGeneralEntry
     MAX-ACCESS       not-accessible
     STATUS           current
     DESCRIPTION
         "The mvpnBgpGeneralEntry matches and augments an
          mvpnGeneralEntry for a BGP-MVPN instance, with BGP-MVPN
          specific informatoin.
         "
     AUGMENTS      { mvpnGeneralEntry }
  ::= { mvpnBgpGeneralTable 1 }

  MvpnBgpGeneralEntry ::= SEQUENCE {
    mvpnBgpGenMode           INTEGER,
    mvpnBgpGenVrfRtImport    MplsL3VpnRouteDistinguisher,
    mvpnBgpGenSrcAs          Unsigned32          InetAutonomousSystemNumber
  }

  mvpnBgpGenMode OBJECT-TYPE
     SYNTAX        INTEGER {
                             rptSpt  (1),
                             sptOnly (2)
                           }
     MAX-ACCESS    read-write
     STATUS        current
     DESCRIPTION
         "For two different BGP-MVPN modes:
            rptSpt(1):  inter-site shared tree mode
            sptOnly(2): inter-site source-only tree mode.
         "
     ::= { mvpnBgpGeneralEntry 1}

  mvpnBgpGenVrfRtImport OBJECT-TYPE
     SYNTAX             MplsL3VpnRouteDistinguisher
     MAX-ACCESS         read-write
     STATUS             current
     DESCRIPTION
         "The VRF Route Import Extended Community that this PE
          adds to unicast vpn routes that it advertises for this mvpn.
         "
     REFERENCE
         "RFC4364, Section 4.2
          RFC4382, Section 7
         "
     ::= { mvpnBgpGeneralEntry 2}

  mvpnBgpGenSrcAs      OBJECT-TYPE
     SYNTAX            Unsigned32            InetAutonomousSystemNumber
     MAX-ACCESS        read-only
     STATUS            current
     DESCRIPTION
         "The Source AS number in Source AS Extended Community that this
          PE adds to the unicast vpn routes that it advertises for
          this mvpn.
         "
     ::= { mvpnBgpGeneralEntry 3}

  -- PMSI Configuration Table

  mvpnPmsiConfigTable  OBJECT-TYPE
     SYNTAX        SEQUENCE OF MvpnPmsiConfigEntry
     MAX-ACCESS    not-accessible
     STATUS        current
     DESCRIPTION
         "This table specifies the configured PMSIs."
     ::= { mvpnConfig 1 }

  mvpnPmsiConfigEntry OBJECT-TYPE
     SYNTAX        MvpnPmsiConfigEntry
     MAX-ACCESS    not-accessible
     STATUS        current
     DESCRIPTION
         "An entry in this table is created for each PMSI configured
          on this router. It can be referred to by either I-PMSI
          configuration (in mvpnGeneralEntry) or S-PMSI configuration
          (in mvpnSpmsiConfigEntry)
         "
     INDEX       {
                   mvpnPmsiConfigTunnelType,
                   mvpnPmsiConfigTunnelAuxInfo,
                   mvpnPmsiConfigTunnelPimGroupAddressType,
                   mvpnPmsiConfigTunnelPimGroupAddress,
                   mvpnPmsiConfigTunnelPimGroupAddrType,
                   mvpnPmsiConfigTunnelPimGroupAddr,
                   mvpnPmsiConfigTunnelOrTemplateName
                 }

     ::= { mvpnPmsiConfigTable 1 }

  MvpnPmsiConfigEntry ::= SEQUENCE {
    mvpnPmsiConfigTunnelType
                                   L2L3VpnMcastProviderTunnelType,
    mvpnPmsiConfigTunnelAuxInfo    Unsigned32,
    mvpnPmsiConfigTunnelPimGroupAddressType
    mvpnPmsiConfigTunnelPimGroupAddrType
                                   InetAddressType,
    mvpnPmsiConfigTunnelPimGroupAddress
    mvpnPmsiConfigTunnelPimGroupAddr
                                   InetAddress,
    mvpnPmsiConfigTunnelOrTemplateName
                                   SnmpAdminString,
    mvpnPmsiConfigEncapsType       INTEGER,
    mvpnPmsiConfigRowStatus        RowStatus
  }

  mvpnPmsiConfigTunnelType OBJECT-TYPE
     SYNTAX        L2L3VpnMcastProviderTunnelType
     MAX-ACCESS    not-accessible
     STATUS        current
     DESCRIPTION
         "Type of tunnel used to instantiate the PMSI."
     ::= { mvpnPmsiConfigEntry 1 }

  mvpnPmsiConfigTunnelAuxInfo OBJECT-TYPE
     SYNTAX        Unsigned32
     MAX-ACCESS    not-accessible
     STATUS        current
     DESCRIPTION
         "Additional tunnel information depending on the value of
          mvpnPmsiConfigTunnelType object.

            pimSsm(3), pimAsm(4), pimBidir(5):
              In case of S-PMSI, number of groups starting at
              mvpnPmsiConfigTunnelPimGroupAddress.
              This allows a range of PIM provider tunnel
              group addresses to be specified in S-PMSI case.
              In I-PMSI case, it must be 1.

            rsvpP2mp(1):
              1 for statically specified rsvp-p2mp tunnel
              2 for dynamically created rsvp-p2mp tunnel

            ingressReplication(6):
              1 for using any existing p2p/mp2p LSP
              2 for dynamically creating new p2p LSP
         "

     ::= { mvpnPmsiConfigEntry 2 }

  mvpnPmsiConfigTunnelPimGroupAddressType

  mvpnPmsiConfigTunnelPimGroupAddrType OBJECT-TYPE
     SYNTAX        InetAddressType
     MAX-ACCESS    not-accessible
     STATUS        current
     DESCRIPTION
         "In case of PIM provider tunnel, the type of tunnel address."
     ::= { mvpnPmsiConfigEntry 3 }

  mvpnPmsiConfigTunnelPimGroupAddress

  mvpnPmsiConfigTunnelPimGroupAddr OBJECT-TYPE
     SYNTAX        InetAddress
     MAX-ACCESS    not-accessible
     STATUS        current
     DESCRIPTION
         "In case of PIM provider tunnel, the provider tunnel address."
     ::= { mvpnPmsiConfigEntry 4 }

  mvpnPmsiConfigTunnelOrTemplateName OBJECT-TYPE
     SYNTAX        SnmpAdminString
     MAX-ACCESS    not-accessible
     STATUS        current
     DESCRIPTION
         "The tunnel name or template name used to create tunnels.
          The value of this object depends on the values of
          mvpnPmsiConfigTunnelType and mvpnPmsiConfigTunnelAuxInfo
          objects:

          dynamically created rsvp-p2mp tunnel:       template name
          statically specified rsvp-p2mp tunnel:      tunnel name
          ingress-replication using
            dynamically created LSPs:                 template name
          other:                                      null
         "
     ::= { mvpnPmsiConfigEntry 5 }

  mvpnPmsiConfigEncapsType OBJECT-TYPE
     SYNTAX        INTEGER {
                             greIp (1),
                             ipIp  (2),
                             mpls  (3)
                           }
     MAX-ACCESS    read-create
     STATUS        current
     DESCRIPTION
         "The encapsulation type to be used, in case of PIM tunnel or
          ingress-replication.
         "

     ::= { mvpnPmsiConfigEntry 6 }

  mvpnPmsiConfigRowStatus OBJECT-TYPE
     SYNTAX        RowStatus
     MAX-ACCESS    read-create
     STATUS        current
     DESCRIPTION
         "Used to create/modify/delete a row in this table."
    ::= { mvpnPmsiConfigEntry 7 }

  -- S-PMSI configuration table

  mvpnSpmsiConfigTable  OBJECT-TYPE
     SYNTAX        SEQUENCE OF MvpnSpmsiConfigEntry
     MAX-ACCESS    not-accessible
     STATUS        current
     DESCRIPTION
         "This table specifies S-PMSI configuration."
     ::= { mvpnConfig 2 }

  mvpnSpmsiConfigEntry OBJECT-TYPE
     SYNTAX        MvpnSpmsiConfigEntry
     MAX-ACCESS    not-accessible
     STATUS        current
     DESCRIPTION
         "An entry is created for each S-PMSI configuration."
     INDEX       {
                   mplsL3VpnVrfName,
                   mvpnSpmsiConfigCmcastAddressType,
                   mvpnSpmsiConfigCmcastGroupAddress,
                   mvpnSpmsiConfigCmcastAddrType,
                   mvpnSpmsiConfigCmcastGroupAddr,
                   mvpnSpmsiConfigCmcastGroupPrefixLen,
                   mvpnSpmsiConfigCmcastSourceAddress,
                   mvpnSpmsiConfigCmcastSourceAddr,
                   mvpnSpmsiConfigCmcastSourcePrefixLen
                 }
     ::= { mvpnSpmsiConfigTable 1 }

  MvpnSpmsiConfigEntry ::= SEQUENCE {
     mvpnSpmsiConfigCmcastAddressType
     mvpnSpmsiConfigCmcastAddrType        InetAddressType,
     mvpnSpmsiConfigCmcastGroupAddress
     mvpnSpmsiConfigCmcastGroupAddr       InetAddress,
     mvpnSpmsiConfigCmcastGroupPrefixLen  Unsigned32,
     mvpnSpmsiConfigCmcastSourceAddress  InetAddressPrefixLength,
     mvpnSpmsiConfigCmcastSourceAddr      InetAddress,
     mvpnSpmsiConfigCmcastSourcePrefixLen Unsigned32, InetAddressPrefixLength,
     mvpnSpmsiConfigThreshold             Unsigned32,
     mvpnSpmsiConfigPmsiPointer           RowPointer,
     mvpnSpmsiConfigRowStatus             RowStatus
  }
  mvpnSpmsiConfigCmcastAddressType

  mvpnSpmsiConfigCmcastAddrType OBJECT-TYPE
     SYNTAX        InetAddressType
     MAX-ACCESS    not-accessible
     STATUS        current
     DESCRIPTION
         "Type of C-multicast address"
     ::= { mvpnSpmsiConfigEntry 1 }

  mvpnSpmsiConfigCmcastGroupAddress

  mvpnSpmsiConfigCmcastGroupAddr OBJECT-TYPE
     SYNTAX        InetAddress
     MAX-ACCESS    not-accessible
     STATUS        current
     DESCRIPTION
         "C-multicast group address"
     ::= { mvpnSpmsiConfigEntry 2 }

  mvpnSpmsiConfigCmcastGroupPrefixLen OBJECT-TYPE
     SYNTAX        Unsigned32        InetAddressPrefixLength
     MAX-ACCESS    not-accessible
     STATUS        current
     DESCRIPTION
         "C-multicast group address prefix length.
          A group 0 (or ::0) with prefix length 32 (or 128)
          indicates wildcard group, while a group 0 (or ::0)
          with prefix length 0 indicates any group.
         "
     ::= { mvpnSpmsiConfigEntry 3 }

  mvpnSpmsiConfigCmcastSourceAddress

  mvpnSpmsiConfigCmcastSourceAddr OBJECT-TYPE
     SYNTAX        InetAddress
     MAX-ACCESS    not-accessible
     STATUS        current
     DESCRIPTION
         "C-multicast source address"
     ::= { mvpnSpmsiConfigEntry 4 }

  mvpnSpmsiConfigCmcastSourcePrefixLen OBJECT-TYPE
     SYNTAX        Unsigned32        InetAddressPrefixLength
     MAX-ACCESS    not-accessible
     STATUS        current
     DESCRIPTION
         "C-multicast source address prefix length.
          A source 0 (or ::0) with prefix length 32 (or 128)
          indicates a wildcard source, while a source 0 (or ::0)
          with prefix length 0 indicates any source.
         "
     ::= { mvpnSpmsiConfigEntry 5 }

  mvpnSpmsiConfigThreshold OBJECT-TYPE
     SYNTAX        Unsigned32  (0..4294967295)
     UNITS         "kilobits per second"
     MAX-ACCESS    read-create
     STATUS        current
     DESCRIPTION
         "The bandwidth threshold value which when exceeded for a
          multicast routing entry in the given MVRF, triggers usage
          of S-PMSI.
         "
     ::= { mvpnSpmsiConfigEntry 6 }

  mvpnSpmsiConfigPmsiPointer OBJECT-TYPE
     SYNTAX        RowPointer
     MAX-ACCESS    read-create
     STATUS        current
     DESCRIPTION
         "This points to a row in mvpnPmsiConfigTable,
          to specify tunnel attributes.
         "
     ::= { mvpnSpmsiConfigEntry 7 }

  mvpnSpmsiConfigRowStatus OBJECT-TYPE
     SYNTAX        RowStatus
     MAX-ACCESS    read-create
     STATUS        current
     DESCRIPTION
         "Used to create/modify/delete a row in this table."
    ::= { mvpnSpmsiConfigEntry 8 }

  -- Table of intra-as I-PMSIs advertised/received

  mvpnIpmsiTable OBJECT-TYPE
     SYNTAX        SEQUENCE OF MvpnIpmsiEntry
     MAX-ACCESS    not-accessible
     STATUS        current
     DESCRIPTION
         "This table is for all advertised/received I-PMSI
          advertisements.
         "
     ::= { mvpnStates 1 }

  mvpnIpmsiEntry OBJECT-TYPE
     SYNTAX        MvpnIpmsiEntry
     MAX-ACCESS    not-accessible
     STATUS        current
     DESCRIPTION
         "An entry in this table corresponds to an I-PMSI
          advertisement that is advertised/received on this router.

          This represents all the sender PEs in the MVPN,
          with the provider tunnel they use to send traffic.
         "
     INDEX  {
              mplsL3VpnVrfName,
              mvpnIpmsiAfi,
              mvpnIpmsiRD,
              mvpnIpmsiOrigAddrType,
              mvpnIpmsiOrigAddress
              mvpnIpmsiOrigAddr
            }
     ::= { mvpnIpmsiTable 1 }

  MvpnIpmsiEntry ::= SEQUENCE {
     mvpnIpmsiAfi          INTEGER,
     mvpnIpmsiRD           MplsL3VpnRouteDistinguisher,
     mvpnIpmsiOrigAddrType InetAddressType,
     mvpnIpmsiOrigAddress
     mvpnIpmsiOrigAddr     InetAddress,
     mvpnIpmsiUpTime       TimeInterval,
     mvpnIpmsiAttribute    RowPointer
     }

  mvpnIpmsiAfi OBJECT-TYPE
     SYNTAX        INTEGER {
                             ipv4(1),
                             ipv6(2)
                           }
     MAX-ACCESS    not-accessible
     STATUS        current
     DESCRIPTION
         "The address family this I-PMSI is for."
     ::= { mvpnIpmsiEntry 1 }

  mvpnIpmsiRD OBJECT-TYPE
     SYNTAX        MplsL3VpnRouteDistinguisher
     MAX-ACCESS    not-accessible
     STATUS        current
     DESCRIPTION
         "The Route Distinguisher in this I-PMSI."
     ::= { mvpnIpmsiEntry 2 }

  mvpnIpmsiOrigAddrType OBJECT-TYPE
     SYNTAX        InetAddressType
     MAX-ACCESS    not-accessible
     STATUS        current
     DESCRIPTION
         "The Internet address type of mvpnIpmsiOrigAddress." mvpnIpmsiOrigAddr."
     ::= { mvpnIpmsiEntry 3 }

  mvpnIpmsiOrigAddress

  mvpnIpmsiOrigAddr OBJECT-TYPE
     SYNTAX        InetAddress
     MAX-ACCESS    not-accessible
     STATUS        current
     DESCRIPTION
         "The BGP address of the PE that originated the I-PMSI."
     ::= { mvpnIpmsiEntry 4 }

  mvpnIpmsiUpTime OBJECT-TYPE
     SYNTAX        TimeInterval
     MAX-ACCESS    read-only
     STATUS        current
     DESCRIPTION
         "The time since this I-PMSI
          was first advertised/received by the PE.
         "
     ::= { mvpnIpmsiEntry 5 }

  mvpnIpmsiAttribute OBJECT-TYPE
     SYNTAX        RowPointer
     MAX-ACCESS    read-only
     STATUS        current
     DESCRIPTION
         "Points to a row in the l2L3VpnMcastPmsiTunnelAttributeTable."
     ::= { mvpnIpmsiEntry 6 }

  -- Table of inter-as I-PMSIs advertised/received

  mvpnInterAsIpmsiTable OBJECT-TYPE
     SYNTAX        SEQUENCE OF MvpnInterAsIpmsiEntry
     MAX-ACCESS    not-accessible
     STATUS        current
     DESCRIPTION
         "This table is for all advertised/received inter-as I-PMSI
          advertisements."
     ::= { mvpnStates 2 }

  mvpnInterAsIpmsiEntry OBJECT-TYPE
     SYNTAX        MvpnInterAsIpmsiEntry
     MAX-ACCESS    not-accessible
     STATUS        current
     DESCRIPTION
         "An entry in this table corresponds to an inter-as I-PMSI
          advertisement that is advertised/received on this router.
          This represents all the ASes in the MVPN,
          with the provider tunnel used to send traffic to.
         "
     INDEX  {
              mplsL3VpnVrfName,
              mvpnInterAsIpmsiAfi,
              mvpnInterAsIpmsiRD,
              mvpnInterAsIpmsiSrcAs
            }
     ::= { mvpnInterAsIpmsiTable 1 }

  MvpnInterAsIpmsiEntry ::= SEQUENCE {
     mvpnInterAsIpmsiAfi          INTEGER,
     mvpnInterAsIpmsiRD           MplsL3VpnRouteDistinguisher,
     mvpnInterAsIpmsiSrcAs        Unsigned32,        InetAutonomousSystemNumber,
     mvpnInterAsIpmsiAttribute    RowPointer
  }

  mvpnInterAsIpmsiAfi OBJECT-TYPE
     SYNTAX        INTEGER {
                             ipv4(1),
                             ipv6(2)
                           }
     MAX-ACCESS    not-accessible
     STATUS        current
     DESCRIPTION
         "The address family this I-PMSI is for."
     ::= { mvpnInterAsIpmsiEntry 1 }

  mvpnInterAsIpmsiRD OBJECT-TYPE
     SYNTAX        MplsL3VpnRouteDistinguisher
     MAX-ACCESS    not-accessible
     STATUS        current
     DESCRIPTION
         "The Route Distinguisher in this inter-as I-PMSI."
     ::= { mvpnInterAsIpmsiEntry 2 }

  mvpnInterAsIpmsiSrcAs OBJECT-TYPE
     SYNTAX        Unsigned32        InetAutonomousSystemNumber
     MAX-ACCESS    not-accessible
     STATUS        current
     DESCRIPTION
         "The source-as in this inter-as I-PMSI."
     ::= { mvpnInterAsIpmsiEntry 3 }

  mvpnInterAsIpmsiAttribute OBJECT-TYPE
     SYNTAX        RowPointer
     MAX-ACCESS    read-only
     STATUS        current
     DESCRIPTION
         "Points to a row in the l2L3VpnMcastPmsiTunnelAttributeTable."
     ::= { mvpnInterAsIpmsiEntry 4 }

  -- Table of S-PMSIs advertised/received

  mvpnSpmsiTable OBJECT-TYPE
     SYNTAX        SEQUENCE OF MvpnSpmsiEntry
     MAX-ACCESS    not-accessible
     STATUS        current
     DESCRIPTION
         "This table has information about the S-PMSIs sent/received
          by a PE.
         "
     ::= { mvpnStates 3 }

  mvpnSpmsiEntry OBJECT-TYPE
     SYNTAX        MvpnSpmsiEntry
     MAX-ACCESS    not-accessible
     STATUS        current
     DESCRIPTION
         "An entry in this table is created or updated for each S-PMSI
          advertised/received in a particular MVRF.
         "
     INDEX  {
              mplsL3VpnVrfName,
              mvpnSpmsiCmcastAddrType,
              mvpnSpmsiCmcastGroup,
              mvpnSpmsiCmcastGroupAddr,
              mvpnSpmsiCmcastGroupPrefixLen,
              mvpnSpmsiCmcastSource,
              mvpnSpmsiCmcastSourceAddr,
              mvpnSpmsiCmcastSourcePrefixLen,
              mvpnSpmsiOrigAddrType,
              mvpnSpmsiOrigAddress
              mvpnSpmsiOrigAddr
            }
     ::= { mvpnSpmsiTable 1 }

  MvpnSpmsiEntry ::= SEQUENCE {
     mvpnSpmsiCmcastAddrType        InetAddressType,
     mvpnSpmsiCmcastGroup
     mvpnSpmsiCmcastGroupAddr       InetAddress,
     mvpnSpmsiCmcastGroupPrefixLen  Unsigned32,
     mvpnSpmsiCmcastSource  InetAddressPrefixLength,
     mvpnSpmsiCmcastSourceAddr      InetAddress,
     mvpnSpmsiCmcastSourcePrefixLen Unsigned32, InetAddressPrefixLength,
     mvpnSpmsiOrigAddrType          InetAddressType,
     mvpnSpmsiOrigAddress
     mvpnSpmsiOrigAddr              InetAddress,
     mvpnSpmsiTunnelAttribute       RowPointer,
     mvpnSpmsiUpTime                TimeInterval,
     mvpnSpmsiExpTime               TimeInterval,
     mvpnSpmsiRefCnt                Unsigned32
  }

  mvpnSpmsiCmcastAddrType OBJECT-TYPE
     SYNTAX        InetAddressType
     MAX-ACCESS    not-accessible
     STATUS        current
     DESCRIPTION
         "The Internet address type of mvpnSpmsiCmcastGroup/Source."
     ::= { mvpnSpmsiEntry 1 }

  mvpnSpmsiCmcastGroup

  mvpnSpmsiCmcastGroupAddr OBJECT-TYPE
     SYNTAX        InetAddress
     MAX-ACCESS    not-accessible
     STATUS        current
     DESCRIPTION
         "S-PMSI C-multicast group address.
          If it is 0 (or ::0), this is a wildcard group,
          and mvpnSpmsiCmcastGroupPrefixLen must be 32 (or 128).
         "
     ::= { mvpnSpmsiEntry 2 }

  mvpnSpmsiCmcastGroupPrefixLen OBJECT-TYPE
     SYNTAX        Unsigned32        InetAddressPrefixLength
     MAX-ACCESS    not-accessible
     STATUS        current
     DESCRIPTION
         "S-PMSI C-multicast group address prefix length."
     ::= { mvpnSpmsiEntry 3 }

  mvpnSpmsiCmcastSource

  mvpnSpmsiCmcastSourceAddr OBJECT-TYPE
     SYNTAX        InetAddress
     MAX-ACCESS    not-accessible
     STATUS        current
     DESCRIPTION
         "S-PMSI C-multicast source address
          If it is 0 (or ::0), this is a wildcard source,
          and mvpnSpmsiCmcastSourcePrefixLen must be 32 (or 128).
         "
     ::= { mvpnSpmsiEntry 4 }

  mvpnSpmsiCmcastSourcePrefixLen OBJECT-TYPE
     SYNTAX        Unsigned32        InetAddressPrefixLength
     MAX-ACCESS    not-accessible
     STATUS        current
     DESCRIPTION
         "S-PMSI C-multicast source address prefix length."
     ::= { mvpnSpmsiEntry 5 }

  mvpnSpmsiOrigAddrType OBJECT-TYPE
     SYNTAX        InetAddressType
     MAX-ACCESS    not-accessible
     STATUS        current
     DESCRIPTION
         "The Internet address type of mvpnSpmsiOrigAddress." mvpnSpmsiOrigAddr."
     ::= { mvpnSpmsiEntry 6 }

  mvpnSpmsiOrigAddress

  mvpnSpmsiOrigAddr OBJECT-TYPE
     SYNTAX        InetAddress
     MAX-ACCESS    not-accessible
     STATUS        current
     DESCRIPTION
         "The BGP address of the PE that originated the S-PMSI."
     ::= { mvpnSpmsiEntry 7 }

  mvpnSpmsiTunnelAttribute OBJECT-TYPE
     SYNTAX        RowPointer
     MAX-ACCESS    read-only
     STATUS        current
     DESCRIPTION
         "A row pointer to the l2L3VpnMcastPmsiTunnelAttributeTable"
     ::= { mvpnSpmsiEntry 8 }

  mvpnSpmsiUpTime OBJECT-TYPE
     SYNTAX        TimeInterval
     MAX-ACCESS    read-only
     STATUS        current
     DESCRIPTION
         "The time since this S-PMSI
          was first advertised/received by the PE.
         "
     ::= { mvpnSpmsiEntry 9 }

  mvpnSpmsiExpTime OBJECT-TYPE
     SYNTAX        TimeInterval
     MAX-ACCESS    read-only
     STATUS        current
     DESCRIPTION
         "For UDP-based S-PMSI signaling for PIM-MVPN,
          the amount of time remaining before this
          received S-PMSI Join Message expires,
          or the next S-PMSI Join Message refresh is to be
          advertised again from the PE.
          Otherwise, it is 0.
         "
     ::= { mvpnSpmsiEntry 10 }

  mvpnSpmsiRefCnt OBJECT-TYPE
     SYNTAX        Unsigned32
     MAX-ACCESS    read-only
     STATUS        current
     DESCRIPTION
         "The number of c-multicast routes that are mapped to
          this S-PMSI.
         "
     ::= { mvpnSpmsiEntry 11 }

  -- Table of multicast routes in an MVPN

  mvpnMrouteTable OBJECT-TYPE
     SYNTAX        SEQUENCE OF MvpnMrouteEntry
     MAX-ACCESS    not-accessible
     STATUS        current
     DESCRIPTION
         "This table augments ipMcastRouteTable, to provide some MVPN
          specific information.
         "
     ::= { mvpnStates 4 }

  mvpnMrouteEntry OBJECT-TYPE
     SYNTAX        MvpnMrouteEntry
     MAX-ACCESS    not-accessible
     STATUS        current
     DESCRIPTION
         "The mvpnMrouteEntry matches and augments an ipMcastRouteEntry,
          with MVPN specific information, such as PMSI used.
         "
     AUGMENTS      { ipMcastRouteEntry }
        ::= { mvpnMrouteTable 1 }

  MvpnMrouteEntry ::= SEQUENCE {
     mvpnMroutePmsiPointer               RowPointer,
     mvpnMrouteNumberOfLocalReplication  Unsigned32,
     mvpnMrouteNumberOfRemoteReplication Unsigned32
  }

  mvpnMroutePmsiPointer OBJECT-TYPE
     SYNTAX        RowPointer
     MAX-ACCESS    read-only
     STATUS        current
     DESCRIPTION
         "The I-PMSI or S-PMSI this C-multicast route is using.
          This is important because an implementation may not have an
          interface corresponding to a provider tunnel,
          that can be used in ipMcastRouteNextHopEntry.
         "
     ::= { mvpnMrouteEntry 1 }

  mvpnMrouteNumberOfLocalReplication OBJECT-TYPE
     SYNTAX        Unsigned32
     MAX-ACCESS    read-only
     STATUS        current
     DESCRIPTION
         "Number of replications for local receivers.
          For example, if an ingress PE needs to send traffic out of
          N PE-CE interfaces, then mvpnMrouteNumberOfLocalReplication
          is N.
         "
     ::= { mvpnMrouteEntry 2 }

  mvpnMrouteNumberOfRemoteReplication OBJECT-TYPE
     SYNTAX        Unsigned32
     MAX-ACCESS    read-only
     STATUS        current
     DESCRIPTION
         "Number of local replications for remote PEs. For example,
          if the number of remote PEs that need to receive traffic is N,
          then mvpnMrouteNumberOfRemoteReplication is N in case of
          Ingress Replication, but may be less than N in case of RSVP-TE
          or mLDP P2MP tunnels, depending on the actual number of
          replications the PE needs do.
         "
     ::= { mvpnMrouteEntry 3 }

  -- MVPN Notifications

  mvpnMvrfChange NOTIFICATION-TYPE
     OBJECTS     {
                   mvpnGenMvrfStatusChange
                 }
     STATUS      current
     DESCRIPTION
         "A mvpnMvrfChange notification signifies a change about
          a MVRF in the PE. The change event can be creation of
          the MVRF, deletion of the MVRF or an update on the I-PMSI
          or S-PMSI configuration of the MVRF. The change event
          is indicated by mvpnGenMvrfStatusChange embedded in
          the notification. The user can then query
          mvpnGeneralTable, and/or mvpnSpmsiConfigTable to
          get the details of the change as necessary.

          Note: Since the creation of a MVRF is often followed by
          configuration of I-PMSI and/or S-PMSIs for the MVRF,
          more than one (three at most) notifications for a MVRF may
          be generated serially, and it is really not necessary to
          generate all three of them. An agent may choose to generate a
          notification for the last event only, that is for S-PMSI
          configuration.

          Similarly, deletion of I-PMSI and S-PMSI configuration on a
          MVRF happens before a MVRF is deleted and it is recommended
          that the agent send the notification for MVRF deletion
          event only.
         "
     ::= { mvpnNotifications 1 }

  -- MVPN MIB Conformance Information

  mvpnGroups      OBJECT IDENTIFIER ::= { mvpnConformance 1 }
  mvpnCompliances OBJECT IDENTIFIER ::= { mvpnConformance 2 }

  -- Compliance Statements

      mvpnModuleFullCompliance MODULE-COMPLIANCE
         STATUS  current
         DESCRIPTION
              "Compliance statement for agents that provide full support
               for the MCAST-VPN-MIB
              "
         MODULE  -- this module
         MANDATORY-GROUPS {
             mvpnScalarGroup,
             mvpnGeneralGroup,
             mvpnPmsiConfigGroup,
             mvpnSpmsiConfigGroup,
             mvpnSpmsiGroup,
             mvpnMrouteGroup,
             mvpnNotificationGroup
         }

         GROUP mvpnIpmsiGroup
             DESCRIPTION
                 "This group is mandatory for systems that support
                  BGP signaling for I-PMSI.
                 "

         GROUP mvpnInterAsIpmsiGroup
             DESCRIPTION
                 "This group is mandatory for systems that support
                  Inter-AS Segmented I-PMSI.
                 "

         GROUP mvpnBgpGeneralGroup
             DESCRIPTION
                 "This group is mandatory for systems that support
                  BGP-MVPN.
                 "

         GROUP mvpnOptionalGroup
             DESCRIPTION
                 "This group is optional.
                 "

         ::= { mvpnCompliances 1 }

      mvpnModuleReadOnlyCompliance MODULE-COMPLIANCE
         STATUS  current
         DESCRIPTION "Compliance requirement for implementations that
                      only provide read-only support for MCAST-VPN-MIB.
                      Such devices can then be monitored but cannot be
                      configured using this MIB module.
                     "
         MODULE  -- this module
         MANDATORY-GROUPS {
             mvpnScalarGroup,
             mvpnGeneralGroup,
             mvpnPmsiConfigGroup,
             mvpnSpmsiConfigGroup,
             mvpnSpmsiGroup,
             mvpnMrouteGroup,
             mvpnNotificationGroup
         }

         GROUP mvpnIpmsiGroup
             DESCRIPTION
                 "This group is mandatory for systems that support
                  BGP signaling for I-PMSI.
                 "

         GROUP mvpnInterAsIpmsiGroup
             DESCRIPTION
                 "This group is mandatory for systems that support
                  Inter-AS Segmented I-PMSI.
                 "

         GROUP mvpnBgpGeneralGroup
             DESCRIPTION
                 "This group is mandatory for systems that support
                  BGP-MVPN.
                 "

         GROUP mvpnOptionalGroup
             DESCRIPTION
                 "This group is optional.
                 "

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

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

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

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

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

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

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

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

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

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

         OBJECT       mvpnGenRowStatus
         SYNTAX       RowStatus { active(1) }
         MIN-ACCESS   read-only
         DESCRIPTION "Write access is not required."
         OBJECT       mvpnPmsiConfigRowStatus
         SYNTAX       RowStatus { active(1) }
         MIN-ACCESS   read-only
         DESCRIPTION "Write access is not required."

         OBJECT       mvpnSpmsiConfigRowStatus
         SYNTAX       RowStatus { active(1) }
         MIN-ACCESS   read-only
         DESCRIPTION "Write access is not required."

         ::= { mvpnCompliances 2 }

  -- units of conformance

      mvpnScalarGroup    OBJECT-GROUP
          OBJECTS {
                    mvpnMvrfs,
                    mvpnV4Mvrfs,
                    mvpnV6Mvrfs,
                    mvpnPimV4Mvrfs,
                    mvpnPimV6Mvrfs,
                    mvpnBgpV4Mvrfs,
                    mvpnBgpV6Mvrfs,
                    mvpnMldpMvrfs,
                    mvpnNotificationEnable
                  }
          STATUS      current
          DESCRIPTION
              "These objects are used to monitor/manage
               global MVPN parameters.
              "
          ::= { mvpnGroups 1 }

      mvpnGeneralGroup    OBJECT-GROUP
          OBJECTS {
                    mvpnGenMvrfStatusChange,
                    mvpnGenMvrfStatusChangeTime,
                    mvpnGenCmcastRouteProtocol,
                    mvpnGenIpmsiConfig,
                    mvpnGenInterAsPmsiConfig,
                    mvpnGenUmhSelection,
                    mvpnGenSiteType,
                    mvpnGenSptnlLimit,
                    mvpnGenRowStatus
                  }
          STATUS      current
          DESCRIPTION
              "These objects are used to monitor/manage
               per-VRF MVPN parameters.
              "
          ::= { mvpnGroups 2 }

      mvpnPmsiConfigGroup    OBJECT-GROUP
          OBJECTS {
                    mvpnPmsiConfigEncapsType,
                    mvpnPmsiConfigRowStatus
                  }
          STATUS      current
          DESCRIPTION
              "These objects are used to monitor/manage
               PMSI tunnel configurations.
              "
          ::= { mvpnGroups 3 }

      mvpnSpmsiConfigGroup    OBJECT-GROUP
          OBJECTS {
                    mvpnSpmsiConfigThreshold,
                    mvpnSpmsiConfigPmsiPointer,
                    mvpnSpmsiConfigRowStatus
                  }
          STATUS      current
          DESCRIPTION
              "These objects are used to monitor/manage
               S-PMSI configurations.
              "
          ::= { mvpnGroups 4 }

      mvpnIpmsiGroup    OBJECT-GROUP
          OBJECTS {
                    mvpnIpmsiUpTime,
                    mvpnIpmsiAttribute
                  }
          STATUS      current
          DESCRIPTION
              "These objects are used to monitor/manage
               Intra-AS I-PMSI attributes.
              "
          ::= { mvpnGroups 5 }

      mvpnInterAsIpmsiGroup    OBJECT-GROUP
          OBJECTS {
                    mvpnInterAsIpmsiAttribute
                  }
          STATUS      current
          DESCRIPTION
              "These objects are used to monitor/manage
               Inter-AS I-PMSI attributes.
              "
          ::= { mvpnGroups 6 }

      mvpnSpmsiGroup    OBJECT-GROUP
          OBJECTS {
                    mvpnSpmsiTunnelAttribute,
                    mvpnSpmsiUpTime,
                    mvpnSpmsiExpTime,
                    mvpnSpmsiRefCnt
                  }
          STATUS      current
          DESCRIPTION
              "These objects are used to monitor/manage
               S-PMSI attributes.
              "
          ::= { mvpnGroups 7 }

      mvpnMrouteGroup    OBJECT-GROUP
          OBJECTS {
                    mvpnMrouteNumberOfLocalReplication,
                    mvpnMrouteNumberOfRemoteReplication
                  }
          STATUS      current
          DESCRIPTION
              "These objects are used to monitor/manage
               VPN multicast forwarding states.
              "
          ::= { mvpnGroups 8 }

      mvpnBgpGeneralGroup    OBJECT-GROUP
          OBJECTS {
                    mvpnBgpGenMode,
                    mvpnBgpGenVrfRtImport,
                    mvpnBgpGenSrcAs
                  }
          STATUS      current
          DESCRIPTION
              "These objects are used to monitor/manage BGP-MVPN."
          ::= { mvpnGroups 9 }

      mvpnOptionalGroup OBJECT-GROUP
          OBJECTS {
                    mvpnMroutePmsiPointer
                  }
          STATUS      current
          DESCRIPTION
              "Support of these object is not required."
          ::= { mvpnGroups 10 }

      mvpnNotificationGroup NOTIFICATION-GROUP
       NOTIFICATIONS {
                       mvpnMvrfChange
                     }
      STATUS  current
      DESCRIPTION
             "Objects required for MVPN notifications."
          ::= { mvpnGroups 11 }

  END

4.  Security Considerations

   This MIB contains some read-only objects that may be deemed senstive
   by some though perhaps not all operators.  It also contains some
   read- write objects, whose setting will change the device's behavior
   related to MVPN.  Appropriate security procedures related to SNMP in
   general but not specific to this MIB need to be implemented by
   concerned operators.

   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 opens devices to attack.  These
   are the tables and objects and their sensitivity/vulnerability:

   o  mvpnNotificationEnable, mvpnGenCmcastRouteProtocol,
      mvpnGenIpmsiConfig, mvpnGenInterAsPmsiConfig, mvpnGenUmhSelection,
      mvpnGenSiteType, mvpnGenSptnlLimit, mvpnBgpGenMode,
      mvpnBgpGenVrfRtImport, mvpnPmsiConfigEncapsType,
      mvpnSpmsiConfigThreshold, mvpnSpmsiConfigPmsiPointer

   o  mvpnGenRowStatus, mvpnPmsiConfigRowStatus,
      mvpnSpmsiConfigRowStatus

   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
   to even encrypt the values of these objects when sending them over
   the network via SNMP.  These are the tables and objects and their
   sensitivity/vulnerability:

   o  [TBD]
   SNMP versions prior to SNMPv3 did not include adequate security.
   Even if the network itself is secure (for example by using IPsec),
   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.

   Implementations SHOULD provide the security features described by the
   SNMPv3 framework (see [RFC3410]), and implementations claiming
   compliance to the SNMPv3 standard MUST include full support for
   authentication and privacy via the User-based Security Model (USM)
   [RFC3414] with the AES cipher algorithm [RFC3826].  Implementations
   MAY also provide support for the Transport Security Model (TSM)
   [RFC5591] in combination with a secure transport such as SSH
   [RFC5592] or TLS/DTLS [RFC6353].

   Further, deployment of SNMP versions prior to SNMPv3 is NOT
   RECOMMENDED.  Instead, it is RECOMMENDED to deploy SNMPv3 and to
   enable cryptographic security.  It is then a customer/operator
   responsibility to ensure that the SNMP entity giving access to an
   instance of this MIB module is properly configured to give access to
   the objects only to those principals (users) that have legitimate
   rights to indeed GET or SET (change/create/delete) them.

5.  IANA Considerations

   IANA is requested to root MIB objects in the MIB module contained in
   this document under the mib-2 subtree.

6.  Acknowledgement

   Some of the

   This document borrowed some text has been taken almost verbatim from Cisco PIM-MVPN MIB
   [I-D.svaidya-mcast-vpn-mib].  We would like to thank Yakov Rekhter,
   Jeffrey Haas, Huajin Jeng, Durga Prasad Velamuri for their helpful
   comments.

7.  References

7.1.  Normative References

   [I-D.ietf-bess-l2l3-vpn-mcast-mib]
              Zhang, Z. and H. Tsunoda, "L2L3 VPN Multicast MIB", draft-
              ietf-bess-l2l3-vpn-mcast-mib-08
              ietf-bess-l2l3-vpn-mcast-mib-12 (work in progress), May
              November 2017.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/
              RFC2119, March 1997,
              <http://www.rfc-editor.org/info/rfc2119>. <https://www.rfc-editor.org/info/
              rfc2119>.

   [RFC2578]  McCloghrie, K., Ed., Perkins, D., Ed., and J.
              Schoenwaelder, Ed., "Structure of Management Information
              Version 2 (SMIv2)", STD 58, RFC 2578, DOI 10.17487/
              RFC2578, April 1999,
              <http://www.rfc-editor.org/info/rfc2578>. <https://www.rfc-editor.org/info/
              rfc2578>.

   [RFC2579]  McCloghrie, K., Ed., Perkins, D., Ed., and J.
              Schoenwaelder, Ed., "Textual Conventions for SMIv2", STD
              58, RFC 2579, DOI 10.17487/RFC2579, April 1999,
              <http://www.rfc-editor.org/info/rfc2579>.
              <https://www.rfc-editor.org/info/rfc2579>.

   [RFC2580]  McCloghrie, K., Ed., Perkins, D., Ed., and J.
              Schoenwaelder, Ed., "Conformance Statements for SMIv2",
              STD 58, RFC 2580, DOI 10.17487/RFC2580, April 1999,
              <http://www.rfc-editor.org/info/rfc2580>.
              <https://www.rfc-editor.org/info/rfc2580>.

   [RFC3414]  Blumenthal, U. and B. Wijnen, "User-based Security Model
              (USM) for version 3 of the Simple Network Management
              Protocol (SNMPv3)", STD 62, RFC 3414, DOI 10.17487/
              RFC3414, December 2002,
              <http://www.rfc-editor.org/info/rfc3414>. <https://www.rfc-editor.org/info/
              rfc3414>.

   [RFC3826]  Blumenthal, U., Maino, F., and K. McCloghrie, "The
              Advanced Encryption Standard (AES) Cipher Algorithm in the
              SNMP User-based Security Model", RFC 3826, DOI 10.17487/
              RFC3826, June 2004,
              <http://www.rfc-editor.org/info/rfc3826>. <https://www.rfc-editor.org/info/
              rfc3826>.

   [RFC4382]  Nadeau, T., Ed. and H. van der Linde, Ed., "MPLS/BGP Layer
              3 Virtual Private Network (VPN) Management Information
              Base", RFC 4382, DOI 10.17487/RFC4382, February 2006,
              <http://www.rfc-editor.org/info/rfc4382>.

   [RFC4601]  Fenner, B., Handley, M., Holbrook, H., and I. Kouvelas,
              "Protocol Independent Multicast - Sparse Mode (PIM-SM):
              Protocol Specification (Revised)", RFC 4601, DOI 10.17487/
              RFC4601, August 2006,
              <http://www.rfc-editor.org/info/rfc4601>.
              <https://www.rfc-editor.org/info/rfc4382>.

   [RFC5132]  McWalter, D., Thaler, D., and A. Kessler, "IP Multicast
              MIB", RFC 5132, DOI 10.17487/RFC5132, December 2007,
              <http://www.rfc-editor.org/info/rfc5132>.
              <https://www.rfc-editor.org/info/rfc5132>.

   [RFC5591]  Harrington, D. and W. Hardaker, "Transport Security Model
              for the Simple Network Management Protocol (SNMP)", STD
              78, RFC 5591, DOI 10.17487/RFC5591, June 2009,
              <http://www.rfc-editor.org/info/rfc5591>.
              <https://www.rfc-editor.org/info/rfc5591>.

   [RFC5592]  Harrington, D., Salowey, J., and W. Hardaker, "Secure
              Shell Transport Model for the Simple Network Management
              Protocol (SNMP)", RFC 5592, DOI 10.17487/RFC5592, June
              2009, <http://www.rfc-editor.org/info/rfc5592>. <https://www.rfc-editor.org/info/rfc5592>.

   [RFC6353]  Hardaker, W., "Transport Layer Security (TLS) Transport
              Model for the Simple Network Management Protocol (SNMP)",
              STD 78, RFC 6353, DOI 10.17487/RFC6353, July 2011,
              <http://www.rfc-editor.org/info/rfc6353>.
              <https://www.rfc-editor.org/info/rfc6353>.

   [RFC6513]  Rosen, E., Ed. and R. Aggarwal, Ed., "Multicast in MPLS/
              BGP IP VPNs", RFC 6513, DOI 10.17487/RFC6513, February
              2012, <http://www.rfc-editor.org/info/rfc6513>. <https://www.rfc-editor.org/info/rfc6513>.

   [RFC6514]  Aggarwal, R., Rosen, E., Morin, T., and Y. Rekhter, "BGP
              Encodings and Procedures for Multicast in MPLS/BGP IP
              VPNs", RFC 6514, DOI 10.17487/RFC6514, February 2012,
              <http://www.rfc-editor.org/info/rfc6514>.
              <https://www.rfc-editor.org/info/rfc6514>.

   [RFC6625]  Rosen, E., Ed., Rekhter, Y., Ed., Hendrickx, W., and R.
              Qiu, "Wildcards in Multicast VPN Auto-Discovery Routes",
              RFC 6625, DOI 10.17487/RFC6625, May 2012,
              <http://www.rfc-editor.org/info/rfc6625>.
              <https://www.rfc-editor.org/info/rfc6625>.

   [RFC7761]  Fenner, B., Handley, M., Holbrook, H., Kouvelas, I.,
              Parekh, R., Zhang, Z., and L. Zheng, "Protocol Independent
              Multicast - Sparse Mode (PIM-SM): Protocol Specification
              (Revised)", STD 83, RFC 7761, DOI 10.17487/RFC7761, March
              2016, <https://www.rfc-editor.org/info/rfc7761>.

7.2.  Informative References

   [I-D.svaidya-mcast-vpn-mib]
              Vaidya, S., "Multicast in BGP/MPLS IP VPNs Management
              Information Base", draft-svaidya-mcast-vpn-mib-02 (work in
              progress), March 2005.

   [RFC3410]  Case, J., Mundy, R., Partain, D., and B. Stewart,
              "Introduction and Applicability Statements for Internet-
              Standard Management Framework", RFC 3410, DOI 10.17487/
              RFC3410, December 2002,
              <http://www.rfc-editor.org/info/rfc3410>. <https://www.rfc-editor.org/info/
              rfc3410>.

Authors' Addresses

   Zhaohui (Jeffrey) Zhang (editor)
   Juniper Networks, Inc.
   10 Technology Park Drive
   Westford, MA  01886
   USA

   Email: zzhang@juniper.net
   Saud Asif
   AT&T
   C5-3D30 200 South Laurel Avenue
   Middletown, NJ 07748
   USA

   Email: sasif@att.com

   Andy Green
   BT Design 21CN Converged Core IP & Data
   01473 629360 Adastral Park, Martlesham Heath, Ipswich IP5 3RE
   UK

   Email: andy.da.green@bt.com

   Sameer Gulrajani
   Cisco Systems
   Tasman Drive San Jose, CA  95134
   USA

   Email: sameerg@cisco.com

   Pradeep G. Jain
   Alcatel-Lucent Inc
   701 E Middlefield road Mountain view, CA 94043
   USA

   Email: pradeep.jain@alcatel-lucent.com

   Hiroshi Tsunoda (editor)
   Tohoku Institute of Technology
   35-1, Yagiyama Kasumi-cho, Taihaku-ku
   Sendai  982-8577
   Japan

   Phone: +81-22-305-3411
   Email: tsuno@m.ieice.org