INTERNET-DRAFT                                        Zhaohui Zhang, Ed.
Intended Status: Proposed Standard                               Juniper
Expires: 2016-02-12 September 15, 2016                                    Saud Asif
                                                                    AT&T
                                                              Andy Green
                                                                      BT
                                                        Sameer Gulrajani
                                                                   Cisco
                                                            Pradeep Jain
                                                          Alcatel-Lucent
                                                              2015-08-12
                                                          March 14, 2016

                     MPLS/BGP Layer 3 VPN Multicast
                      Management Information Base

                      draft-ietf-bess-mvpn-mib-01

                      draft-ietf-bess-mvpn-mib-02

Abstract

   This memo defines an 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 multicast Multicast in MPLS/BGP-based Layer-3 VPN MPLS/BGP IP VPNs (MVPN) on an MVPN a router.

Status of this Memo

   This Internet-Draft is submitted to IETF in full conformance with the
   provisions of BCP 78 and 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/1id-abstracts.html

   The list of Internet-Draft Shadow Directories can be accessed at

INTERNET DRAFT            L3VPN Multicast MIB                 2015-08-12
   http://www.ietf.org/shadow.html

Copyright and License Notice

   Copyright (c) 2015 2016 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  . . . . . . . . . . . . . . . . . . . . . . . . .  3
     1.1  Terminology . . . . . . . . . . . . . . . . . . . . . . . .  3
   2  MVPN MIB  . . . . . . . . . . . . . . . . . . . . . . . . . . .  3
     2.1  Summary of MIB Module . . . . . . . . . . . . . . . . . . .  3
     2.2  MIB Module Definitions  . . . . . . . . . . . . . . . . . .  5
   3  Security Considerations . . . . . . . . . . . . . . . . . . . . 29
   4  IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 29
   5  Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . . 29
   6  References  . . . . . . . . . . . . . . . . . . . . . . . . . . 29 30
     6.1  Normative References  . . . . . . . . . . . . . . . . . . . 30
     6.2  Informative References  . . . . . . . . . . . . . . . . . . 30
   Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 30

INTERNET DRAFT            L3VPN Multicast MIB                 2015-08-12

1  Introduction

   Multicast in MPLS/BGP L3 IP VPNs (MVPN) is specified in [MVPN], [BGP-MVPN] [BGP-
   MVPN] and [MVPN-WILDCARD]. These specifications support either PIM or
   BGP as the protocol for exchanging VPN multicast (referred to as C-multicast C-
   multicast states, where 'C-' stands for 'VPN Customer-') among PEs.
   In the rest of this document we'll use the term "PIM-MVPN" to refer
   to PIM being used for exchanging C-multicast states, and "BGP-MVPN"
   to refer to BGP being used for exchanging C-multicast states.

   This document defines a standard MIB for MVPN-specific objects that
   are generic to both PIM-MVPN and BGP-MVPN.

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

   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 [MVPN] and other documents that [MVPN] refers to.
   Familiarity with Multicast, MPLS, L3VPN, MVPN concepts and/or
   mechanisms is assumed.

   Interchangeably, the term MVRF Multicast VRF (MVRF) and MVPN are used to
   refer to a partiular Multicast VPN instantiation on a particular PE
   device.

2  MVPN MIB

   This MIB enables configuring and/or monitoring of MVPNs on PE
   devices: the whole multicast VPN machinery and the per-MVRFs
   information, including the configuration, status and operational
   details, such as different PMSIs P-Multicast Service Interfaces (PMSIs) and
   the provider tunnels implementing them.

2.1  Summary of MIB Module

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

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

     - I-PMSI, S-PMSI and corresponding provider tunnels

INTERNET DRAFT            L3VPN Multicast MIB                 2015-08-12
     - Mapping of c-multicast states to PMSI/tunnels

   To represent them, the following tables are defined.

        +--------------+
        | MvpnBgp      |
        | General      |
        +--------------+    +-------------------+    +-----------------+
        | MvpnGeneral  | -> |   MvpnPmsiConfig  | <- | MvpnSpmsiConfig |
        +--------------+    +-------------------+    +-----------------+

        +--------------+    +-------------------+    +-----------------+
        |  MvpnIpmsi   | -> | L2L3VpnMcastPmsi  | <- |    MvpnSpmsi    |
        +--------------+    | TunnelAttribute   |    +-----------------+
                         -> +-------------------+
                        /            ^
                       /             |
        +--------------+    +-------------------+
        | MvpnInterAs  |    |    MvpnMroute     |
        |   Ipmsi      |    +-------------------+
        +--------------+

   - mvpnGeneralTable/Entry mvpnGeneralTable

     An entry in this table is created for every each MVRF in the device, for
     general configuration/states of the MVRF, including I-PMSI Inclusive PMSI
     (I-PMSI) configuration.

     Existence of the corresponding VRF in [L3VPN-MIB] is necessary for
     a row to exist in this table.

   - mvpnBgpGeneralTable/Entry mvpnBgpGeneralTable

     This table augments mvpnGeneralTable and is for BGP-MVPN specific
     information.

   - mvpnSpmsiConfigTable/Entry mvpnSpmsiConfigTable

     This table contains objects for S-PMSI Selective PMSI (S-PMSI)
     configurations in an MVRF.

   - mvpnPmsiConfigTable/Entry mvpnPmsiConfigTable

     Both I-PMSI configuration (in mvpnGeneralEntry) and S-PMSI
     configuration (in mvpnSpmsiConfigEntry) refer to entries in this

INTERNET DRAFT            L3VPN Multicast MIB                 2015-08-12
     table.

   - mvpnIpmsiTable/Entry mvpnIpmsiTable

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

   - mvpnInterAsIpmsiTable/Entry mvpnInterAsIpmsiTable

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

   - mvpnSpmsiTable/Etnry

     This table contains all advertised or received S-PMSIs.

   - l2l3VpnMcastPmsiTunnelAttributeTable/Entry l2l3VpnMcastPmsiTunnelAttributeTable

     This table is defined separately in l2L3VpnMcastMIB [L2L3MVPN-MIB],
     which is common for both VPLS Multicast and MVPN. It contains
     sent/received PMSI attribute entries referred to by mvpnIpmsiEntry,
     mvpnSpmsiEntry, mvpnInterAsIpmsiEntry, and other MIB objects (e.g.,
     VPLS Multicast ones).

   - mvpnMrouteTable/Entry mvpnMrouteTable

     This table augments ipMcastMIB.ipMcast.ipMcastRouteTable [MROUTE-
     MIB], for some MVPN specific information.

2.2  MIB Module Definitions

  MCAST-VPN-MIB DEFINITIONS ::= BEGIN

  IMPORTS
     MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
     experimental, Unsigned32
        FROM SNMPv2-SMI

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

     TruthValue, RowPointer, RowStatus, TimeStamp, TimeInterval
        FROM SNMPv2-TC

     SnmpAdminString
        FROM SNMP-FRAMEWORK-MIB

INTERNET DRAFT            L3VPN Multicast MIB                 2015-08-12

     InetAddress, InetAddressType
        FROM INET-ADDRESS-MIB

     MplsLabel
        FROM MPLS-TC-STD-MIB

     mplsL3VpnVrfName, MplsL3VpnRouteDistinguisher
        FROM MPLS-L3VPN-STD-MIB

     ipMcastRouteEntry
        FROM IPMCAST-MIB

     L2L3VpnMcastProviderTunnelType
        FROM L2L3-VPN-MCAST-MIB;

  mvpnMIB MODULE-IDENTITY
     LAST-UPDATED "201405071200Z"  -- 07 May 2014 12:00:00 GMT
     ORGANIZATION "IETF Layer-3 Virtual Private
                   Networks Working Group."
     CONTACT-INFO
            " Jeffrey (Zhaohui) Zhang
              zzhang@juniper.net

              Comments and discussion to bess@ietf.org"

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

    -- Revision history.
     REVISION "201405071200Z"  -- 07 May 2014 12:00:00 GMT
     DESCRIPTION
        "Initial version of the draft."
     ::= { experimental 99 } -- number to be assigned

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

INTERNET DRAFT            L3VPN Multicast MIB                 2015-08-12
  mvpnGeneral       OBJECT IDENTIFIER ::= { mvpnObjects 2 }
  mvpnConfig        OBJECT IDENTIFIER ::= { mvpnObjects 3 }
  mvpnStates        OBJECT IDENTIFIER ::= { mvpnObjects 4 }

  -- Scalar Objects

  mvpnMvrfNumber OBJECT-TYPE
     SYNTAX        Unsigned32
     MAX-ACCESS    read-only
     STATUS        current
     DESCRIPTION
         "The total number of MVRFs for IPv4 or IPv6 or mLDP
          C-Multicast that are present in on this device." device,
          whether for IPv4, IPv6, or mLDP C-Multicast."
     ::= { mvpnScalars 1 }

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

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

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

  mvpnMvrfNumberPimV6 OBJECT-TYPE
     SYNTAX         Unsigned32
     MAX-ACCESS     read-only
     STATUS         current
     DESCRIPTION
         "The number of PIM-MVPN MVRFs for IPv6 C-Multicast that are

INTERNET DRAFT            L3VPN Multicast MIB                 2015-08-12
          present in this device."
     ::= { mvpnScalars 5 }

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

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

  mvpnMvrfNumberMldp OBJECT-TYPE
     SYNTAX         Unsigned32
     MAX-ACCESS     read-only
     STATUS         current
     DESCRIPTION
         "The number of BGP-MVPN MVRFs for mLDP C-Multicast that are
          present in this device."
     ::= { 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

INTERNET DRAFT            L3VPN Multicast MIB                 2015-08-12
          present in this device."
     ::= { mvpnGeneral 1 }

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

  MvpnGeneralEntry ::= SEQUENCE {
     mvpnGenAddressFamily       INTEGER,
     mvpnGenOperStatusChange    INTEGER,
     mvpnGenOperChangeTime      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 Fammily that this entry is for"
     ::= { mvpnGeneralEntry 1 }

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

INTERNET DRAFT            L3VPN Multicast MIB                 2015-08-12

          createdMvrf - indicates that the MVRF was created in the
          device.

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

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

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

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

  mvpnGenCmcastRouteProtocol OBJECT-TYPE
     SYNTAX        INTEGER { pim (1),
                             bgp (2)
                           }
     MAX-ACCESS    read-write
     STATUS        current
     DESCRIPTION
         "Protocol
         "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-write
     STATUS        current
     DESCRIPTION
         "This points to a row in mvpnPmsiConfigTable,
          for I-PMSI configuration."

INTERNET DRAFT            L3VPN Multicast MIB                 2015-08-12
     ::= { mvpnGeneralEntry 5 }

  mvpnGenInterAsPmsiConfig OBJECT-TYPE
     SYNTAX        RowPointer
     MAX-ACCESS    read-write
     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 {
                             highest-pe-address   (1),
                             c-root-group-hashing (2),
                             ucast-umh-route      (3)
                       }
     MAX-ACCESS        read-write
     STATUS            current
     DESCRIPTION
         "The UMH selection method for this mvpn, as specified in
          section 5.1.3 of [MVPN]:
            highest-pe-address   (1): PE with the highest address
            c-root-group-hashing (2): hashing based on (c-root, c-group)
            uncast-umh-route     (3): per ucast route towards c-root"

     ::= { mvpnGeneralEntry 7}

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

  mvpnGenSptnlLimit OBJECT-TYPE
     SYNTAX            Unsigned32
     MAX-ACCESS        read-write
     STATUS            current

INTERNET DRAFT            L3VPN Multicast MIB                 2015-08-12
     DESCRIPTION
         "The max number of selective provider tunnels this device
          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
  }

  mvpnBgpGenMode       OBJECT-TYPE
     SYNTAX            INTEGER {
                             rpt-spt  (1),
                             spt-only (2)
                       }

     MAX-ACCESS        read-write
     STATUS            current

INTERNET DRAFT            L3VPN Multicast MIB                 2015-08-12
     DESCRIPTION
         "For two different BGP-MVPN modes:
          rpt-spt(1):  inter-site shared tree mode
          spt-only(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 device
          adds to unicast vpn routes that it advertises for this mvpn."
     ::= { mvpnBgpGeneralEntry 2}

  mvpnBgpGenSrcAs      OBJECT-TYPE
     SYNTAX            Unsigned32
     MAX-ACCESS        read-only
     STATUS            current
     DESCRIPTION
         "The Source AS number in Source AS Extended Community that this
          device 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,

INTERNET DRAFT            L3VPN Multicast MIB                 2015-08-12
                   mvpnPmsiConfigTunnelOrTemplateName }
     ::= { mvpnPmsiConfigTable 1 }

  MvpnPmsiConfigEntry ::= SEQUENCE {
    mvpnPmsiConfigTunnelType                 L2L3VpnMcastProviderTunnelType,
    mvpnPmsiConfigTunnelAuxInfo              Unsigned32,
    mvpnPmsiConfigTunnelPimGroupAddressType  InetAddressType,
    mvpnPmsiConfigTunnelPimGroupAddress      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 type.
          pim:         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.
          rsvp-p2mp:   1 for statically specified rsvp-p2mp tunnel
                       2 for dynamically created rsvp-p2mp tunnel
          ingress-replication:
                       1 for using any existing p2p/mp2p lsp
                       2 for dynamically creating new p2p lsp"
     ::= { mvpnPmsiConfigEntry 2 }

  mvpnPmsiConfigTunnelPimGroupAddressType 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 OBJECT-TYPE

INTERNET DRAFT            L3VPN Multicast MIB                 2015-08-12
     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.
          Depending on mvpnPmsiConfigTunnelType and
          mvpnPmsiConfigTunnelAuxInfo:

          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-write
     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

INTERNET DRAFT            L3VPN Multicast MIB                 2015-08-12
     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,
                    mvpnSpmsiConfigCmcastGroupPrefixLen,
                    mvpnSpmsiConfigCmcastSourceAddress,
                    mvpnSpmsiConfigCmcastSourcePrefixLen }
     ::= { mvpnSpmsiConfigTable 1 }

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

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

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

  mvpnSpmsiConfigCmcastGroupPrefixLen OBJECT-TYPE
     SYNTAX        Unsigned32

INTERNET DRAFT            L3VPN Multicast MIB                 2015-08-12
     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 OBJECT-TYPE
     SYNTAX        InetAddress
     MAX-ACCESS    not-accessible
     STATUS        current
     DESCRIPTION
         "C-multicast source address"
     ::= { mvpnSpmsiConfigEntry 4 }

  mvpnSpmsiConfigCmcastSourcePrefixLen OBJECT-TYPE
     SYNTAX        Unsigned32
     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-write
     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-write
     STATUS        current
     DESCRIPTION
         "This points to a row in mvpnPmsiConfigTable,
          to specify tunnel attributes."
     ::= { mvpnSpmsiConfigEntry 7 }

INTERNET DRAFT            L3VPN Multicast MIB                 2015-08-12

  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 }
     ::= { mvpnIpmsiTable 1 }

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

  mvpnIpmsiAfi OBJECT-TYPE
     SYNTAX        Unsigned32 (1|2)
     MAX-ACCESS    not-accessible
     STATUS        current

INTERNET DRAFT            L3VPN Multicast MIB                 2015-08-12
     DESCRIPTION
         "The address family this I-PMSI is for.
          1 - IPv4
          2 - IPv6"
     ::= { 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."
     ::= { mvpnIpmsiEntry 3 }

  mvpnIpmsiOrigAddress OBJECT-TYPE
     SYNTAX        InetAddress
     MAX-ACCESS    not-accessible
     STATUS        current
     DESCRIPTION
         "The BGP address of the device 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 device."
     ::= { 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

INTERNET DRAFT            L3VPN Multicast MIB                 2015-08-12
  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          Unsigned32,
     mvpnInterAsIpmsiRD           MplsL3VpnRouteDistinguisher,
     mvpnInterAsIpmsiSrcAs        Unsigned32,
     mvpnInterAsIpmsiAttribute    RowPointer
     }

  mvpnInterAsIpmsiAfi OBJECT-TYPE
     SYNTAX        Unsigned32 (1|2)
     MAX-ACCESS    not-accessible
     STATUS        current
     DESCRIPTION
         "The address family this I-PMSI is for.
          1 - IPv4
          2 - IPv6"
     ::= { 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 }

INTERNET DRAFT            L3VPN Multicast MIB                 2015-08-12

  mvpnInterAsIpmsiSrcAs OBJECT-TYPE
     SYNTAX        Unsigned32
     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 device."
     ::= { mvpnStates 3 }

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

  MvpnSpmsiEntry ::= SEQUENCE {
     mvpnSpmsiCmcastAddrType        InetAddressType,
     mvpnSpmsiCmcastGroup           InetAddress,
     mvpnSpmsiCmcastGroupPrefixLen  Unsigned32,

INTERNET DRAFT            L3VPN Multicast MIB                 2015-08-12
     mvpnSpmsiCmcastSource          InetAddress,
     mvpnSpmsiCmcastSourcePrefixLen Unsigned32,
     mvpnSpmsiOrigAddrType          InetAddressType,
     mvpnSpmsiOrigAddress           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 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
     MAX-ACCESS    not-accessible
     STATUS        current
     DESCRIPTION
         "S-PMSI C-multicast group address prefix length."
     ::= { mvpnSpmsiEntry 3 }

  mvpnSpmsiCmcastSource 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

INTERNET DRAFT            L3VPN Multicast MIB                 2015-08-12
     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."
     ::= { mvpnSpmsiEntry 6 }

  mvpnSpmsiOrigAddress OBJECT-TYPE
     SYNTAX        InetAddress
     MAX-ACCESS    not-accessible
     STATUS        current
     DESCRIPTION
         "The BGP address of the device 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 device."
     ::= { 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

INTERNET DRAFT            L3VPN Multicast MIB                 2015-08-12
          advertised again from the device.
          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,

INTERNET DRAFT            L3VPN Multicast MIB                 2015-08-12
          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     {
                   mvpnGenOperStatusChange
                 }
     STATUS      current
     DESCRIPTION
         "A mvpnMvrfChange notification signifies a change about
          a MVRF in the device. 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 mvpnGenOperStatusChange 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

INTERNET DRAFT            L3VPN Multicast MIB                 2015-08-12
          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 2 }

  -- MVPN MIB Conformance Information

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

  -- Compliance Statements

      mvpnCompliance MODULE-COMPLIANCE
          STATUS  current
          DESCRIPTION
             "The compliance statement "
         MODULE  -- this module
         MANDATORY-GROUPS {
             mvpnScalarGroup,
             mvpnGeneralGroup,
             mvpnSpmsiConfigGroup,
             mvpnSpmsiGroup,
             mvpnMrouteGroup
             }

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

         ::= { mvpnCompliances 1 }

INTERNET DRAFT            L3VPN Multicast MIB                 2015-08-12

  -- units of conformance

      mvpnScalarGroup    OBJECT-GROUP
          OBJECTS {
              mvpnMvrfNumber,
              mvpnMvrfNumberV4,
              mvpnMvrfNumberV6,
              mvpnMvrfNumberPimV4,
              mvpnMvrfNumberPimV6,
              mvpnMvrfNumberBgpV4,
              mvpnMvrfNumberBgpV6,
              mvpnMvrfNumberMldp,
              mvpnNotificationEnable
              }
          STATUS      current
          DESCRIPTION
             "These objects are used to monitor/manage
             global MVPN parameters."
          ::= { mvpnGroups 1 }

      mvpnGeneralGroup    OBJECT-GROUP
          OBJECTS {
              mvpnGenOperStatusChange,
              mvpnGenOperChangeTime,
              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 }

INTERNET DRAFT            L3VPN Multicast MIB                 2015-08-12

      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 {

INTERNET DRAFT            L3VPN Multicast MIB                 2015-08-12
              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}

  END

3  Security Considerations

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

4  IANA Considerations

  This document does not require

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

5  Acknowledgement

  Some of the text has been taken almost verbatim from [CISCO-MIB].

  We would like to thank Yakov Rekhter, Jeffrey Haas, Huajin Jeng, Durga
  Prasad Velamuri for their helpful comments.

6  References
INTERNET DRAFT            L3VPN Multicast MIB                 2015-08-12

6.1  Normative References

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

   [L3VPN-MIB]  Nadeau, T., Ed., and H. van der Linde, Ed., "MPLS/BGP
              Layer 3 Virtual Private Network (VPN) Management
              Information Base", RFC 4382, February 2006.

   [MROUTE-MIB] McWalter, D., Thaler, D., and A. Kessler, "IP Multicast
              MIB", RFC 5132, December 2007.

   [MVPN] Eric C. Rosen, Rahul Aggarwal, et. al., Multicast in MPLS/BGP
              IP VPNs, RFC 6513, February 2012.

   [BGP-MVPN] R. Aggarwal, E. Rosen, T. Morin, Y. Rekhter, BGP Encodings
              and Procedures for Multicast in MPLS/BGP IP VPNs,
              RFC 6514, February 2012.

   [MVPN-WILDCARD] E. Rosen, Y. Rekhter, Wildcards in Multicast VPN
              Auto-Discovery Routes, RFC 6625, May 2012.

   [L2L3MVPN-MIB] Zhang, J., L2L3 VPN Multicast MIB, draft-ietf-bess-
              l2l3-vpn-mcast-mib, Work In Progress.

6.2  Informative References

   [CISCO-MIB] Susheela Vaidya, Thomas D. Nadeau, Harmen Van der Linde,
              Multicast in BGP/MPLS IP VPNs Management Information Base,
              draft-svaidya-mcast-vpn-mib-02.txt, Work In Progress,
              April 2005.

Authors' Addresses

              Zhaohui 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

INTERNET DRAFT            L3VPN Multicast MIB                 2015-08-12
              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