INTERNET-DRAFT Saud Asif Intended Status: Proposed Standard AT&T Expires: 2014-03-01 Andy Green BT Sameer Gulrajani Cisco Pradeep Jain Alcatel-Lucent Jeffrey Zhang Juniper 2013-08-29 MPLS/BGP Layer 3 VPN Multicast Management Information Base draft-ietf-l3vpn-mvpn-mib-03 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 in MPLS/BGP-based Layer-3 VPN (MVPN) on an MVPN 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 Jeffrey Zhang Expires 2014-03-01 [Page 1] INTERNET DRAFT L3VPN Multicast MIB 2013-08-29 http://www.ietf.org/shadow.html Copyright and License Notice Copyright (c) 2013 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 0 Draft history . . . . . . . . . . . . . . . . . . . . . . . . . 3 1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.1 Terminology . . . . . . . . . . . . . . . . . . . . . . . . 3 2 MVPN MIB . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.1 Summary of MIB Module . . . . . . . . . . . . . . . . . . . 4 2.2 MIB Module Definitions . . . . . . . . . . . . . . . . . . 5 3 Security Considerations . . . . . . . . . . . . . . . . . . . . 26 4 IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 27 5 Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . . 27 6 References . . . . . . . . . . . . . . . . . . . . . . . . . . 27 6.1 Normative References . . . . . . . . . . . . . . . . . . . 27 6.2 Informative References . . . . . . . . . . . . . . . . . . 27 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 27 Jeffrey Zhang Expires 2014-03-01 [Page 2] INTERNET DRAFT L3VPN Multicast MIB 2013-08-29 0 Draft history This draft is a first pass at a MIB document for [MVPN]. As such, it should be considered as a early work. Some aspects of BGP-MVPN (see definition below in "Introduction"), such as exranet, may be specified in future revisions. [note to author/reviewers: conformance groups to be added ] [this section should be removed as soon as its stops being relevant] 1 Introduction Multicast in MPLS/BGP L3 VPNs is specified in {[MVPN], [BGP-MVPN]}. These specifications support either PIM or BGP as the protocol for exchanging VPN multicast (referred to as 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 {[MVPN], [BGP- MVPN]} with PIM being used for exchanging C-multicast states, and "BGP-MVPN" to refer to {[MVPN], [BGP-MVPN]} with BGP is 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 Layer-3 VPN (L3VPN) WG at l3vpn@ietf.org. 1.1 Terminology 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 RFC 2119 [RFC2119]. 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 and MVPN are used to refer to a partiular Multicast VPN instantiation on a particular PE device. Jeffrey Zhang Expires 2014-03-01 [Page 3] INTERNET DRAFT L3VPN Multicast MIB 2013-08-29 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 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 - 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 An entry in this table is created for every MVRF in the device, for general configuration/states of the MVRF, including I-PMSI configuration. Existence of the corresponding VRF in [L3VPN-MIB] is necessary for Jeffrey Zhang Expires 2014-03-01 [Page 4] INTERNET DRAFT L3VPN Multicast MIB 2013-08-29 a row to exist in this table. - mvpnBgpGeneralTable/Entry This table augments mvpnGeneralTable and is for BGP-MVPN specific information. - mvpnSpmsiConfigTable/Entry This table contains objects for S-PMSI configurations in an MVRF. - mvpnPmsiConfigTable/Entry Both I-PMSI configuration (in mvpnGeneralEntry) and S-PMSI configuration (in mvpnSpmsiConfigEntry) refer to entries in this table. - mvpnIpmsiTable/Entry This table contains all advertised or received intra-as I-PMSIs. With PIM-MVPN, it is applicable only when BGP-Based Autodiscovery of MVPN Membership is used. - mvpnInterAsIpmsiTable/Entry This table contains all advertised or 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 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 This table augments ipMcastMIB.ipMcast.ipMcastRouteTable, for some MVPN specific information. 2.2 MIB Module Definitions Jeffrey Zhang Expires 2014-03-01 [Page 5] INTERNET DRAFT L3VPN Multicast MIB 2013-08-29 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 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 "201301071200Z" -- 07 January 2013 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 l3vpn@ietf.org" DESCRIPTION "This MIB contains managed object definitions for multicast in BGP/MPLS IP VPNs defined by [MVPN]. Copyright (C) The Internet Society (2013)." -- Revision history. REVISION "201301071200Z" -- 07 January 2013 12:00:00 GMT Jeffrey Zhang Expires 2014-03-01 [Page 6] INTERNET DRAFT L3VPN Multicast MIB 2013-08-29 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 } mvpnScalars OBJECT IDENTIFIER ::= { mvpnObjects 1 } 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 number of MVRFs for IPv4 or IPv6 or mLDP C-Multicast that are present in this device." ::= { 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 Jeffrey Zhang Expires 2014-03-01 [Page 7] INTERNET DRAFT L3VPN Multicast MIB 2013-08-29 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 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." Jeffrey Zhang Expires 2014-03-01 [Page 8] INTERNET DRAFT L3VPN Multicast MIB 2013-08-29 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 device." ::= { mvpnGeneral 1 } mvpnGeneralEntry OBJECT-TYPE SYNTAX MvpnGeneralEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry in this table is created for every MVRF in the device." INDEX { mplsL3VpnVrfName } ::= { mvpnGeneralTable 1 } MvpnGeneralEntry ::= SEQUENCE { mvpnGenOperStatusChange INTEGER, mvpnGenOperChangeTime TimeStamp, mvpnGenCmcastRouteProtocolV4 INTEGER, mvpnGenCmcastRouteProtocolV6 INTEGER, mvpnGenIpmsiConfigV4 RowPointer, mvpnGenIpmsiConfigV6 RowPointer, mvpnGenInterAsPmsiConfigV4 RowPointer, mvpnGenInterAsPmsiConfigV6 RowPointer, mvpnGenRowStatus RowStatus } 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. Jeffrey Zhang Expires 2014-03-01 [Page 9] INTERNET DRAFT L3VPN Multicast MIB 2013-08-29 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 1 } 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 2 } mvpnGenCmcastRouteProtocolV4 OBJECT-TYPE SYNTAX INTEGER { pim (1), bgp (2) } MAX-ACCESS read-write STATUS current DESCRIPTION "Protocol used to signal IPv4 C-multicast states across the provider core. pim(1): PIM (PIM-MVPN). bgp(2): BGP (BGP-MVPN)." ::= { mvpnGeneralEntry 3 } mvpnGenCmcastRouteProtocolV6 OBJECT-TYPE SYNTAX INTEGER { pim (1), bgp (2) } MAX-ACCESS read-write STATUS current DESCRIPTION Jeffrey Zhang Expires 2014-03-01 [Page 10] INTERNET DRAFT L3VPN Multicast MIB 2013-08-29 "Protocol used to signal IPv6 C-multicast states across the provider core. pim(1): PIM (PIM-MVPN). bgp(2): BGP (BGP-MVPN)." ::= { mvpnGeneralEntry 4 } mvpnGenIpmsiConfigV4 OBJECT-TYPE SYNTAX RowPointer MAX-ACCESS read-write STATUS current DESCRIPTION "This points to a row in mvpnPmsiConfigTable, for I-PMSI configuration for IPv4." ::= { mvpnGeneralEntry 5 } mvpnGenIpmsiConfigV6 OBJECT-TYPE SYNTAX RowPointer MAX-ACCESS read-write STATUS current DESCRIPTION "This points to a row in mvpnPmsiConfigTable, for I-PMSI configuration for IPv6." ::= { mvpnGeneralEntry 6 } mvpnGenInterAsPmsiConfigV4 OBJECT-TYPE SYNTAX RowPointer MAX-ACCESS read-write STATUS current DESCRIPTION "This points to a row in mvpnPmsiConfigTable, for inter-as I-PMSI configuration for IPv4, in case of segmented inter-as provider tunnels." ::= { mvpnGeneralEntry 7 } mvpnGenInterAsPmsiConfigV6 OBJECT-TYPE SYNTAX RowPointer MAX-ACCESS read-write STATUS current DESCRIPTION "This points to a row in mvpnPmsiConfigTable, for inter-as I-PMSI configuration for IPv6, in case of segmented inter-as provider tunnels." ::= { mvpnGeneralEntry 8 } mvpnGenRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current Jeffrey Zhang Expires 2014-03-01 [Page 11] INTERNET DRAFT L3VPN Multicast MIB 2013-08-29 DESCRIPTION "This is used to create or delete a row in this table." ::= { mvpnGeneralEntry 9 } -- 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, mvpnBgpGenUmhSelection INTEGER, mvpnBgpGenSiteType INTEGER, mvpnBgpGenCmcastImportRt MplsL3VpnRouteDistinguisher, mvpnBgpGenSrcAs Unsigned32, mvpnBgpGenSptnlLimit Unsigned32 } mvpnBgpGenMode OBJECT-TYPE SYNTAX INTEGER { rpt-spt (1), spt-only (2) } MAX-ACCESS read-write STATUS current DESCRIPTION "For two different BGP-MVPN modes: rpt-spt(1): intersite-site shared tree mode spt-only(2): inter-site source-only tree mode." ::= { mvpnBgpGeneralEntry 1} mvpnBgpGenUmhSelection OBJECT-TYPE Jeffrey Zhang Expires 2014-03-01 [Page 12] INTERNET DRAFT L3VPN Multicast MIB 2013-08-29 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" ::= { mvpnBgpGeneralEntry 2} mvpnBgpGenSiteType 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." ::= { mvpnBgpGeneralEntry 3} mvpnBgpGenCmcastImportRt OBJECT-TYPE SYNTAX MplsL3VpnRouteDistinguisher MAX-ACCESS read-write STATUS current DESCRIPTION "The C-multicast Import RT that this device adds to unicast vpn routes that it advertises for this mvpn." ::= { mvpnBgpGeneralEntry 4} 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 5} Jeffrey Zhang Expires 2014-03-01 [Page 13] INTERNET DRAFT L3VPN Multicast MIB 2013-08-29 mvpnBgpGenSptnlLimit OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-write STATUS current DESCRIPTION "The max number of selective provider tunnels this device allows for this mvpn." ::= { mvpnBgpGeneralEntry 6} -- 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, 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 Jeffrey Zhang Expires 2014-03-01 [Page 14] INTERNET DRAFT L3VPN Multicast MIB 2013-08-29 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 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: Jeffrey Zhang Expires 2014-03-01 [Page 15] INTERNET DRAFT L3VPN Multicast MIB 2013-08-29 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 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, Jeffrey Zhang Expires 2014-03-01 [Page 16] INTERNET DRAFT L3VPN Multicast MIB 2013-08-29 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 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 } Jeffrey Zhang Expires 2014-03-01 [Page 17] INTERNET DRAFT L3VPN Multicast MIB 2013-08-29 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 } 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." Jeffrey Zhang Expires 2014-03-01 [Page 18] INTERNET DRAFT L3VPN Multicast MIB 2013-08-29 ::= { 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 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 Jeffrey Zhang Expires 2014-03-01 [Page 19] INTERNET DRAFT L3VPN Multicast MIB 2013-08-29 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 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. Jeffrey Zhang Expires 2014-03-01 [Page 20] INTERNET DRAFT L3VPN Multicast MIB 2013-08-29 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 } 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 } Jeffrey Zhang Expires 2014-03-01 [Page 21] INTERNET DRAFT L3VPN Multicast MIB 2013-08-29 -- 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 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, 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." Jeffrey Zhang Expires 2014-03-01 [Page 22] INTERNET DRAFT L3VPN Multicast MIB 2013-08-29 ::= { 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 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 Jeffrey Zhang Expires 2014-03-01 [Page 23] INTERNET DRAFT L3VPN Multicast MIB 2013-08-29 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 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 Jeffrey Zhang Expires 2014-03-01 [Page 24] INTERNET DRAFT L3VPN Multicast MIB 2013-08-29 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, mvpnMrouteDataRate 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 to local receivers." ::= { mvpnMrouteEntry 2 } mvpnMrouteNumberOfRemoteReplication OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current Jeffrey Zhang Expires 2014-03-01 [Page 25] INTERNET DRAFT L3VPN Multicast MIB 2013-08-29 DESCRIPTION "Number of (local) replications to remote receivers." ::= { mvpnMrouteEntry 3 } mvpnMrouteDataRate OBJECT-TYPE SYNTAX Unsigned32 (0..4294967295) UNITS "kilobits per second" MAX-ACCESS read-only STATUS current DESCRIPTION "The data rate for traffic following this route." ::= { mvpnMrouteEntry 4 } -- 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 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 } END 3 Security Considerations Jeffrey Zhang Expires 2014-03-01 [Page 26] INTERNET DRAFT L3VPN Multicast MIB 2013-08-29 4 IANA Considerations 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 6.1 Normative References [KEYWORDS] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [RFC4382] 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. [BGP-MVPN] R. Aggarwal, E. Rosen, T. Morin, Y. Rekhter, BGP Encodings and Procedures for Multicast in MPLS/BGP IP VPNs, RFC 6514. [L2L3MVPN-MIB] Zhang, J., L2L3 VPN Multicast MIB, draft-zzhang-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 Saud Asif AT&T C5-3D30 200 South Laurel Avenue Jeffrey Zhang Expires 2014-03-01 [Page 27] INTERNET DRAFT L3VPN Multicast MIB 2013-08-29 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 Jeffrey (Zhaohui) Zhang Juniper Networks, Inc. 10 Technology Park Drive Westford, MA 01886 USA Email: zzhang@juniper.net Jeffrey Zhang Expires 2014-03-01 [Page 28]