L2VPN Working Group Thomas D. Nadeau (Ed.) Internet Draft Lucid Vision Intended status: Standards Track Expires: July 2014 A S Kiran Koushik (Ed.) Cisco Systems, Inc. Rohit Mediratta (Ed.) Alcatel-Lucent January 13, 2014 Virtual Private Lan Services (VPLS) Management Information Base draft-ietf-l2vpn-vpls-mib-13.txt Status of this Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. This document may contain material from IETF Documents or IETF Contributions published or made publicly available before November 10, 2008. The person(s) controlling the copyright in some of this material may not have granted the IETF Trust the right to allow modifications of such material outside the IETF Standards Process. Without obtaining an adequate license from the person(s) controlling the copyright in such materials, this document may not be modified outside the IETF Standards Process, and derivative works of it may not be created outside the IETF Standards Process, except to format it for publication as an RFC or to translate it into languages other than English. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html Koushik, et. al. Expires July 13 2014 [Page 1] VPLS Management Information Base Jan, 2014 This Internet-Draft will expire on April 2, 2013. Copyright 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. Abstract This memo defines an experimental portion of the Management Information Base for use with network management protocols in the Internet community. In particular, it describes managed objects for modeling of Virtual Private LAN services. It needs to be used in conjunction with The Pseudowire (PW) Management Information Base. Table of Contents 1. Introduction...................................................3 2. Terminology....................................................3 2.1. Conventions used in this document.........................3 3. The Internet-Standard Management Framework.....................4 4. VPLS MIB Module Architecture...................................4 4.1. VPLS-GENERIC-MIB Module Usage.............................5 4.2. VPLS-LDP-MIB Module Usage.................................5 4.3. VPLS-BGP-MIB Module Usage.................................5 4.4. Relations to other MIB modules............................6 5. Example of the VPLS MIB modules usage..........................6 6. Object definitions.............................................7 6.1. VPLS-GENERIC-MIB..........................................7 6.2. VPLS-LDP-MIB Object definitions..........................28 6.3. VPLS-BGP-MIB Object definitions..........................34 Koushik, et. al. Expires July 13 2014 [Page 2] VPLS Management Information Base Jan, 2014 7. Security Considerations.......................................42 8. IANA Considerations...........................................43 9. References....................................................43 9.1. Normative References.....................................43 9.2. Informative References...................................44 10. Acknowledgments..............................................45 11. Authors' Addresses...........................................45 12. Full Copyright Statement.....................................45 1. Introduction This memo defines a portion of the Management Information Base (MIB) for use with network management protocols in the Internet community. In particular, it defines a MIB module that can be used to manage VPLS (Virtual Private LAN Services) for transmission over a packet Switched Network (PSN) using LDP [RFC4762] or BGP [RFC4761] signaling. This MIB module provides generic management of VPLS services as defined by the IETF L2VPN Working Group. Additional MIB modules are also defined for management of LDP VPLS and BGP VPLS services as defined by the IETF L2VPN Working Group. 2. Terminology This document adopts the definitions, acronyms and mechanisms described in [RFC3985]. Unless otherwise stated, the mechanisms of [RFC3985] apply and will not be re-described here. 2.1. Conventions used in this document 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]. 3. 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 set of MIB modules that are compliant to the SMIv2, which is described in STD 58 [RFC2578][RFC2579][RFC2580]. 4. VPLS MIB Module Architecture Koushik, et. al. Expires July 13 2014 [Page 3] VPLS Management Information Base Jan, 2014 The MIB structure for defining a VPLS service is composed from three MIB modules. The first is the VPLS-GENERIC-MIB module, which configures general parameters of the VPLS service that are common to all types of VPLS services. The second is the VPLS-LDP-MIB module, which configures VPLS-LDP [RFC4762] specific parameters of the VPLS service. The third is the VPLS-BGP-MIB module, which configures VPLS-BGP [RFC4761] specific parameters of the VPLS service. -------- ----------------- PW Mapping | | | | -----> | PW-MIB |-->|PW-ENET/MPLS-MIB | __________ / | | | | | | / -------- ----------------- | VPLS MIB | / ------------ | |----------------------> | | ---------- MAC addr. mapping using | BRIDGE-MIB | [SNMP-CONTEXT-MAP-MIB] | | ------------ Figure A -------- Additionally service-specific modules may be defined in other documents. 4.1. VPLS-GENERIC-MIB Module Usage An entry in the vplsConfigTable MUST exist for every VPLS service. This table holds generic parameters which apply to a VPLS service which can be signaled via LDP or BGP. A conceptual row can be created in the vplsConfigTable in one of the following ways: 1) An NMS creates a row in the vplsConfigTable using SNMP Set requests which causes the node to create and start a new VPLS service. The agent MUST support the creation of VPLS services in this way. 2) The agent MAY create a row in the vplsConfigTable automatically due to some auto discovery application, or based on Koushik, et. al. Expires July 13 2014 [Page 4] VPLS Management Information Base Jan, 2014 configuration that is done through non-SNMP applications. This mode is OPTIONAL. At least one entry in the vplsPwBindTable MUST exist for each VPLS service. This binding table links one VPLS service with one or many pseudowires (defined in [RFC5601]). Each pseudowire may be used as a spoke or as part of a mesh based on the parameters defined in this table. For each VPLS service, an entry in the vplsBgpAdConfigTable MUST exist if Auto-discovery has been enabled for that service. This table stores the information required for auto-discovery. For each VPLS service, at least one entry in the vplsBgpRteTargetTable MUST exist if auto-discovery has been configured for that service. One service can import and export multiple Route Targets. 4.2. VPLS-LDP-MIB Module Usage An entry in the vplsLdpConfigTable MUST be created by the agent for a VPLS service signaled using LDP. 4.3. VPLS-BGP-MIB Module Usage An entry in the vplsBgpConfigTable MUST be created by the agent for a VPLS service signaled using BGP. 4.4. Relations to other MIB modules - The vplsPwBindTable links the VPLS entry to the pwTable in [RFC5601] - The association of MAC addresses to VPLS entries is possible by adding a turnstile function to interpret the entries in [SNMP-CONTEXT-MAP-MIB]. In [SNMP-CONTEXT-MAP-MIB] there is a mapping between the vacmContextName [RFC3415] to dot1dBasePort [RFC4188] and vplsConfigIndex. This mapping can be used to map the vplsConfigIndex to a dot1dBasePort in the BRIDGE-MIB. This resulting value of dot1dBasePort can be used to access corresponding MAC addresses that belong to a particular vplsConfigIndex. - Unless all the necessary entries in the applicable tables have been created and all the parameters have been consistently configured in those tables, signaling cannot be performed Koushik, et. al. Expires July 13 2014 [Page 5] VPLS Management Information Base Jan, 2014 from the local node, and the vplsConfigRowStatus should report 'notReady'. - Statistics can be gathered from the Pseudowire performance tables in [RFC5601] 5. Example of the VPLS MIB modules usage In this section we provide an example of using the MIB objects described in section 7 to set up a VPLS service over MPLS. While this example is not meant to illustrate every permutation of the MIB, it is intended as an aid to understanding some of the key concepts. It is meant to be read after going through the MIB itself. In this example a VPLS service (VPLS-A) is setup using LDP for signaling the pseudowire. The binding between the VPLS service and the pseudowire is reflected in the VplsPwBindTable. The pseudowire configuration is defined in RFC 5601. In the VPLS-GENERIC-MIB module: Row in vplsConfigTable: { vplsConfigIndex 10, vplsConfigName "VPLS-A" vplsConfigAdminStatus 1(up), vplsConfigMacLearning 1(true), vplsConfigDiscardUnknownDest 2(false), vplsConfigMacAging 1(true), vplsConfigVpnId "100:10" vplsConfigRowStatus 1(active) } Row in vplsStatusTable: { vplsStatusOperStatus 1(up), vplsStatusPeerCount 1 } Row in VplsPwBindTable : { vplsPwBindConfigType manual, vplsPwBindType spoke, vplsPwBindRowStatus 1(active), vplsPwBindStorageType volatile } Koushik, et. al. Expires July 13 2014 [Page 6] VPLS Management Information Base Jan, 2014 In the VPLS-LDP-MIB module: Row in vplsLdpConfigTable: { vplsLdpConfigMacAddrWithdraw 1(true), } Row in vplsLdpPwBindTable: { vplsLdpPwBindType 1(mesh), vplsLdpPwBindMacAddressLimit 100 } 6. Object definitions 6.1. VPLS-GENERIC-MIB This MIB module makes references to the following documents. [RFC2578], [RFC2579], [RFC2580], [RFC3411], [RFC2863], [RFC4265] and [RFC3813]. VPLS-GENERIC-MIB DEFINITIONS ::= BEGIN IMPORTS NOTIFICATION-TYPE, MODULE-IDENTITY, OBJECT-TYPE, Unsigned32, Counter32, transmission FROM SNMPv2-SMI -- RFC2578 MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP FROM SNMPv2-CONF -- RFC2580 TruthValue, RowStatus, StorageType, TEXTUAL-CONVENTION FROM SNMPv2-TC -- RFC2579 SnmpAdminString FROM SNMP-FRAMEWORK-MIB -- RFC3411 pwIndex FROM PW-STD-MIB VPNIdOrZero FROM VPN-TC-STD-MIB -- RFC4265 Koushik, et. al. Expires July 13 2014 [Page 7] VPLS Management Information Base Jan, 2014 ; vplsGenericDraft01MIB MODULE-IDENTITY -- RFC Editor: Please replace vplsGenericDraft01MIB with -- vplsGenericMIB throughout the MIB and remove -- this note. LAST-UPDATED "201302221200Z" -- 22 Feb 2013 12:00:00 GMT ORGANIZATION "Layer 2 Virtual Private Networks (L2VPN) Working Group" CONTACT-INFO " Thomas D. Nadeau Email: tnadeau@juniper.net The L2VPN Working Group (email distribution l2vpn@ietf.org, http://www.ietf.org/html.charters/l2vpn-charter.html) " DESCRIPTION "Copyright (C) The IETF Trust (2013). The initial version of this MIB module was published in RFC XXXX. -- RFC Editor: Please replace XXXX with RFC number & remove -- this note. For full legal notices see the RFC itself or see: http://www.ietf.org/copyrights/ianamib.html This MIB module contains generic managed object definitions for Virtual Private LAN Services as define in [RFC4762] and [RFC4761] This MIB module enables the use of any underlying Pseudowire network." -- Revision history. REVISION "201302221200Z" -- 22 Feb 2013 12:00:00 GMT DESCRIPTION "1) Changed the OID for vplsBgpRteTargetTable from vplsObjects.6 to vplsObjects.5 2) Index to VplsPwBindTable is now pwIndex, not vplsPwBindIndex. 3) vplsConfigMtu increased to 9192 4) Default value for vplsConfigStorageType changed to nonvolatile. 5) vplsConfigServiceType should be a property of each PW. Deleting this object and adjusting the corresponding object indexes." REVISION Koushik, et. al. Expires July 13 2014 [Page 8] VPLS Management Information Base Jan, 2014 "200608301200Z" -- 30 August 2006 12:00:00 GMT DESCRIPTION "Changes from previous version: 1) Moved LDP Specific information to VPLS-LDP-MIB 2) Created the vplsStatusTable to store status information. " REVISION "200606041200Z" -- 4 June 2006 12:00:00 GMT DESCRIPTION "Initial version published as part of RFC YYYY." -- RFC Editor: please replace YYYY with IANA assigned value, and -- delete this note. ::= { transmission XXXX } -- RFC Editor: please replace XXXX with IANA assigned value, and -- delete this note. -- VPLS BGP Auto-Discovery specific Textual Convention VplsBgpRouteDistinguisher ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "Syntax for a route distinguisher. For a complete definition of a route distinguisher, see [RFC4364]. For more details on use of a route distinguisher for a VPLS service, see [RFC4761]" REFERENCE "[RFC4364]" SYNTAX OCTET STRING(SIZE (0..256)) VplsBgpRouteTarget ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "Syntax for a route target. For a complete definition of a route target, see [RFC4364]." REFERENCE "[RFC4364]" SYNTAX OCTET STRING(SIZE (0..256)) VplsBgpRouteTargetType ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "Used to define the type of a route target usage. Route targets can be specified to be imported, exported, or both. For a complete definition of a route target, see [RFC4364]." REFERENCE Koushik, et. al. Expires July 13 2014 [Page 9] VPLS Management Information Base Jan, 2014 "[RFC4364]" SYNTAX INTEGER { import(1), export(2), both(3) } -- Top-level components of this MIB. -- Notifications vplsNotifications OBJECT IDENTIFIER ::= { vplsGenericDraft01MIB 0 } -- Tables, Scalars vplsObjects OBJECT IDENTIFIER ::= { vplsGenericDraft01MIB 1 } -- Conformance vplsConformance OBJECT IDENTIFIER ::= { vplsGenericDraft01MIB 2 } -- PW Virtual Connection Table vplsConfigIndexNext OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-only STATUS current DESCRIPTION "This object contains an appropriate value to be used for vplsConfigIndex when creating entries in the vplsConfigTable. The value 0 indicates that no unassigned entries are available. To obtain the value of vplsConfigIndex for a new entry in the vplsConfigTable, the manager issues a management protocol retrieval operation to obtain the current value of vplsConfigIndex. After each retrieval operation, the agent should modify the value to reflect the next unassigned index. After a manager retrieves a value the agent will determine through its local policy when this index value will be made available for reuse." ::= { vplsObjects 1 } vplsConfigTable OBJECT-TYPE SYNTAX SEQUENCE OF VplsConfigEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table specifies information for configuring and monitoring Virtual Private Lan Services(VPLS). " ::= { vplsObjects 2 } Koushik, et. al. Expires July 13 2014 [Page 10] VPLS Management Information Base Jan, 2014 vplsConfigEntry OBJECT-TYPE SYNTAX VplsConfigEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A row in this table represents a Virtual Private Lan Service(VPLS) in a packet network. It is indexed by vplsConfigIndex, which uniquely identifies a single VPLS. A row is created via SNMP or by the agent if a VPLS service is created by a non-SNMP application or due to the Auto-Discovery process. All of the read-create objects values except vplsConfigSignalingType can be changed when vplsConfigRowStatus is in the active(1) state. Changes for vplsConfigSignalingType are only allowed when the vplsConfigRowStatus is in notInService(2) or notReady(3) states. " INDEX { vplsConfigIndex } ::= { vplsConfigTable 1 } VplsConfigEntry ::= SEQUENCE { vplsConfigIndex Unsigned32, vplsConfigName SnmpAdminString, vplsConfigDescr SnmpAdminString, vplsConfigAdminStatus INTEGER, vplsConfigMacLearning TruthValue, vplsConfigDiscardUnknownDest TruthValue, vplsConfigMacAging TruthValue, vplsConfigFwdFullHighWatermark Unsigned32, vplsConfigFwdFullLowWatermark Unsigned32, vplsConfigRowStatus RowStatus, vplsConfigMtu Unsigned32, vplsConfigVpnId VPNIdOrZero, vplsConfigStorageType StorageType, vplsConfigSignalingType INTEGER } vplsConfigIndex OBJECT-TYPE SYNTAX Unsigned32 (1..2147483647) MAX-ACCESS not-accessible Koushik, et. al. Expires July 13 2014 [Page 11] VPLS Management Information Base Jan, 2014 STATUS current DESCRIPTION "Unique index for the conceptual row identifying a VPLS service." ::= { vplsConfigEntry 1 } vplsConfigName OBJECT-TYPE SYNTAX SnmpAdminString MAX-ACCESS read-create STATUS current DESCRIPTION "A textual name of the VPLS. If there is no local name, or this object is otherwise not applicable, then this object MUST contain a zero-length octet string." DEFVAL { "" } ::= { vplsConfigEntry 2 } vplsConfigDescr OBJECT-TYPE SYNTAX SnmpAdminString MAX-ACCESS read-create STATUS current DESCRIPTION "A textual string containing information about the VPLS service. If there is no information for this VPLS service, then this object MUST contain a zero-length octet string." DEFVAL { "" } ::= { vplsConfigEntry 3 } vplsConfigAdminStatus OBJECT-TYPE SYNTAX INTEGER { up(1), down(2), testing(3) -- in some test mode } MAX-ACCESS read-create STATUS current DESCRIPTION "The desired administrative state of the VPLS service. If the administrative status of the VPLS service is changed to enabled then this service is able to utilize pseudowires to perform the tasks of a VPLS service. The testing(3) state indicates that no operational packets can be passed. " DEFVAL { down } Koushik, et. al. Expires July 13 2014 [Page 12] VPLS Management Information Base Jan, 2014 ::= { vplsConfigEntry 4 } vplsConfigMacLearning OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-create STATUS current DESCRIPTION "This object specifies if MAC Learning is enabled in this service. If this object is true then MAC Learning is enabled. If false, then MAC Learning is disabled." DEFVAL { true } ::= { vplsConfigEntry 6 } vplsConfigDiscardUnknownDest OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-create STATUS current DESCRIPTION "If the value of this object is 'true', then frames received with an unknown destination MAC are discarded in this VPLS. If 'false', then the packets are processed." DEFVAL { false } ::= { vplsConfigEntry 7 } vplsConfigMacAging OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-create STATUS current DESCRIPTION "If the value of this object is 'true' then the MAC aging process is enabled in this VPLS. If 'false', then the MAC aging process is disabled" DEFVAL { true } ::= { vplsConfigEntry 8 } vplsConfigFwdFullHighWatermark OBJECT-TYPE SYNTAX Unsigned32 (0..100) UNITS "percentage" MAX-ACCESS read-create STATUS current DESCRIPTION "This object specifies the utilization of the forwarding database for this VPLS instance at which the vplsFwdFullAlarmRaised notification will be sent." Koushik, et. al. Expires July 13 2014 [Page 13] VPLS Management Information Base Jan, 2014 DEFVAL { 95 } ::= { vplsConfigEntry 10 } vplsConfigFwdFullLowWatermark OBJECT-TYPE SYNTAX Unsigned32 (0..100) UNITS "percentage" MAX-ACCESS read-create STATUS current DESCRIPTION "This object specifies the utilization of the forwarding database for this VPLS instance at which the vplsFwdFullAlarmCleared notification will be sent." DEFVAL { 90 } ::= { vplsConfigEntry 11 } vplsConfigRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "For creating, modifying, and deleting this row. All other objects in this row must be set to valid values before this object can be set to active(1). None of the read-create objects in the conceptual rows may be changed when this object is in the active(1) state. If this object is set to destroy(6) or deleted by the agent, all associated entries in the vplsPWBindTable, vplsBGPRteTargetTable and vplsBgpVETable shall be deleted." ::= { vplsConfigEntry 12 } vplsConfigMtu OBJECT-TYPE SYNTAX Unsigned32 (64..9192) MAX-ACCESS read-create STATUS current DESCRIPTION "The value of this object specifies the MTU of this vpls instance. This can be used to limit the MTU to a value lower than the MTU supported by the associated Pseudowires" DEFVAL { 1518 } ::= { vplsConfigEntry 13 } Koushik, et. al. Expires July 13 2014 [Page 14] VPLS Management Information Base Jan, 2014 vplsConfigVpnId OBJECT-TYPE SYNTAX VPNIdOrZero MAX-ACCESS read-create STATUS current DESCRIPTION "This objects indicates the IEEE 802-1990 VPN ID of the associated VPLS service." ::= { vplsConfigEntry 14 } vplsConfigStorageType OBJECT-TYPE SYNTAX StorageType MAX-ACCESS read-create STATUS current DESCRIPTION "This variable indicates the storage type for this row." DEFVAL { nonVolatile } ::= { vplsConfigEntry 15 } vplsConfigSignalingType OBJECT-TYPE SYNTAX INTEGER { ldp(1), bgp(2), none(3) } MAX-ACCESS read-create STATUS current DESCRIPTION "Desired signaling type of the VPLS service. If the value of this object is ldp(1), then a corresponding entry in vplsLdpConfigTable is required. If the value of this object is bgp(2), then a corresponding entry in vplsBgpConfigTable is required. If the value of this object is none(3), then it indicates a static configuration of PW labels." DEFVAL { none } ::= { vplsConfigEntry 16 } -- VPLS Status table vplsStatusTable OBJECT-TYPE SYNTAX SEQUENCE OF VplsStatusEntry MAX-ACCESS not-accessible STATUS current Koushik, et. al. Expires July 13 2014 [Page 15] VPLS Management Information Base Jan, 2014 DESCRIPTION "This table provides information for monitoring Virtual Private Lan Services (VPLS). " ::= { vplsObjects 3 } vplsStatusEntry OBJECT-TYPE SYNTAX VplsStatusEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A row in this table represents a Virtual Private Lan Service(VPLS) in a packet network. It is indexed by vplsConfigIndex, which uniquely identifies a single VPLS. A row in this table is automatically created by the agent when a VPLS service is first set to active. " AUGMENTS { vplsConfigEntry } ::= { vplsStatusTable 1 } VplsStatusEntry ::= SEQUENCE { vplsStatusOperStatus INTEGER, vplsStatusPeerCount Counter32 } vplsStatusOperStatus OBJECT-TYPE SYNTAX INTEGER { other(0), up(1), down(2) } MAX-ACCESS read-only STATUS current DESCRIPTION "The current operational state of this VPLS Service." ::= { vplsStatusEntry 1 } vplsStatusPeerCount OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "This objects specifies the number of peers (pseudowires) present in this VPLS instance." ::= { vplsStatusEntry 2 } Koushik, et. al. Expires July 13 2014 [Page 16] VPLS Management Information Base Jan, 2014 -- VPLS PW Binding Table vplsPwBindTable OBJECT-TYPE SYNTAX SEQUENCE OF VplsPwBindEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table provides an association between a VPLS service and the corresponding pseudowires. A service can have more than one pseudowire association. Pseudowires are defined in the pwTable" ::= { vplsObjects 4 } vplsPwBindEntry OBJECT-TYPE SYNTAX VplsPwBindEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Each row represents an association between a VPLS instance and a pseudowire defined in the pwTable. Each index is unique in describing an entry in this table. However both indexes are required to define the one to many association of service to pseudowire. Entries in this table may be created or deleted through SNMP, as side-effects of console or other non-SNMP management commands, or upon learning via autodiscovery. It is optional for the agent to allow entries to be created that point to non-existent entries in vplsConfigTable." INDEX { vplsConfigIndex, pwIndex } ::= { vplsPwBindTable 1 } VplsPwBindEntry ::= SEQUENCE { vplsPwBindConfigType INTEGER, vplsPwBindType INTEGER, vplsPwBindRowStatus RowStatus, vplsPwBindStorageType StorageType } vplsPwBindConfigType OBJECT-TYPE SYNTAX INTEGER { Koushik, et. al. Expires July 13 2014 [Page 17] VPLS Management Information Base Jan, 2014 manual (1), autodiscovery (2) } MAX-ACCESS read-create STATUS current DESCRIPTION "The value of this object indicates whether the Pseudo Wire binding was created via SNMP/Console or via Auto-Discovery. The value of this object must be specified when the row is created and cannot be changed while the row status is active(1)" ::= { vplsPwBindEntry 1 } vplsPwBindType OBJECT-TYPE SYNTAX INTEGER { mesh (1), spoke (2) } MAX-ACCESS read-create STATUS current DESCRIPTION "The value of this object indicates whether the pseudowire binding is of type mesh or spoke. The value of this object must be specified when the row is created and cannot be changed while the row status is active(1)" ::= { vplsPwBindEntry 2 } vplsPwBindRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "For creating, modifying, and deleting this row. All other objects in this row must be set to valid values before this object can be set to active(1). None of the read-create objects in the conceptual rows may be changed when this object is in the active(1) state. If autodiscovered entries are deleted they would likely re-appear in the next autodiscovery interval." Koushik, et. al. Expires July 13 2014 [Page 18] VPLS Management Information Base Jan, 2014 ::= { vplsPwBindEntry 3 } vplsPwBindStorageType OBJECT-TYPE SYNTAX StorageType MAX-ACCESS read-create STATUS current DESCRIPTION "This variable indicates the storage type for this row." DEFVAL { volatile } ::= { vplsPwBindEntry 4 } -- vplsBgpADConfigTable vplsBgpADConfigTable OBJECT-TYPE SYNTAX SEQUENCE OF VplsBgpADConfigEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table specifies information for configuring BGP Auto-Discovery parameters for a given VPLS service. " ::= { vplsObjects 5 } vplsBgpADConfigEntry OBJECT-TYPE SYNTAX VplsBgpADConfigEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A row in this table indicates that BGP based Auto- Discovery is in use for this instance of VPLS. A row in this table is indexed by vplsConfigIndex, which uniquely identifies a single VPLS. Entries in this table may be created or deleted through SNMP, as side-effects of console or other non-SNMP management commands, or upon learning via autodiscovery. All of the read-create objects can be changed when vplsBGPADConfigRowStatus is in active(1) state." Koushik, et. al. Expires July 13 2014 [Page 19] VPLS Management Information Base Jan, 2014 INDEX { vplsConfigIndex } ::= { vplsBgpADConfigTable 1 } VplsBgpADConfigEntry ::= SEQUENCE { vplsBgpADConfigRouteDistinguisher VplsBgpRouteDistinguisher, vplsBgpADConfigPrefix Unsigned32, vplsBgpADConfigVplsId VplsBgpRouteDistinguisher, vplsBgpADConfigRowStatus RowStatus, vplsBgpADConfigStorageType StorageType } vplsBgpADConfigRouteDistinguisher OBJECT-TYPE SYNTAX VplsBgpRouteDistinguisher MAX-ACCESS read-create STATUS current DESCRIPTION " The route distinguisher for this VPLS. See [RFC4364] for a complete definition of a route distinguisher. for more details on use of a route distinguisher for a VPLS service, see [RFC4761]. When not configured, the value is derived from the lower 6 bytes of vplsBgpADConfigVplsId. " ::= { vplsBgpADConfigEntry 1 } vplsBgpADConfigPrefix OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-create STATUS current DESCRIPTION " In case of auto-discovery the default prefix advertised is the IP address of the loopback. In case the user wants to override the loopback address, vplsBgpADConfigPrefix should be set. When this value is non-zero this value is used along with vplsBgpADConfigRouteDistinguisher in the NLRI, see [RFC6074] " DEFVAL { 0 } ::= { vplsBgpADConfigEntry 2 } vplsBgpADConfigVplsId OBJECT-TYPE SYNTAX VplsBgpRouteDistinguisher MAX-ACCESS read-create STATUS current DESCRIPTION " VplsId is a unique identifier for all VSIs belonging to Koushik, et. al. Expires July 13 2014 [Page 20] VPLS Management Information Base Jan, 2014 the same VPLS. It is advertised as an extended community. " ::= { vplsBgpADConfigEntry 3 } vplsBgpADConfigRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "For creating, modifying, and deleting this row. All other objects in this row must be set to valid values before this object can be set to active(1). None of the read-create objects in the conceptual rows may be changed when this object is in the active(1) state." ::= { vplsBgpADConfigEntry 4 } vplsBgpADConfigStorageType OBJECT-TYPE SYNTAX StorageType MAX-ACCESS read-create STATUS current DESCRIPTION "This variable indicates the storage type for this row." DEFVAL { nonVolatile } ::= { vplsBgpADConfigEntry 5 } -- vplsBgpRteTargetTable vplsBgpRteTargetTable OBJECT-TYPE SYNTAX SEQUENCE OF VplsBgpRteTargetEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION " This table specifies the list of Route Targets imported or exported by BGP during auto-discovery of VPLS. " ::= { vplsObjects 6 } vplsBgpRteTargetEntry OBJECT-TYPE SYNTAX VplsBgpRteTargetEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry in this table specifies the value of the Route Target being used by BGP. Depending on the value of vplsBgpRteTargetType a Route Target might be exported or Koushik, et. al. Expires July 13 2014 [Page 21] VPLS Management Information Base Jan, 2014 imported or both. Every VPLS which uses auto-discovery for finding peer nodes can import and export multiple Route Targets. This representation allows support for hierarchical VPLS. Entries in this table may be created or deleted through SNMP, as side-effects of console or other non-SNMP management commands, or upon learning via autodiscovery. It is optional for the agent to allow entries to be created that point to non-existent entries in vplsConfigTable." INDEX { vplsConfigIndex, vplsBgpRteTargetIndex } ::= { vplsBgpRteTargetTable 1 } VplsBgpRteTargetEntry ::= SEQUENCE { vplsBgpRteTargetIndex Unsigned32, vplsBgpRteTargetRTType VplsBgpRouteTargetType, vplsBgpRteTargetRT VplsBgpRouteTarget, vplsBgpRteTargetRowStatus RowStatus, vplsBgpRteTargetStorageType StorageType } vplsBgpRteTargetIndex OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS not-accessible STATUS current DESCRIPTION "This index along with vplsConfigIndex, identifies one entry in the vplsBgpRteTargetTable. By keeping vplsConfigIndex constant and using new value of vplsBgpRteTargetIndex users can configure multiple Route Targets for the same VPLS. " ::= { vplsBgpRteTargetEntry 1 } vplsBgpRteTargetRTType OBJECT-TYPE SYNTAX VplsBgpRouteTargetType MAX-ACCESS read-create STATUS current DESCRIPTION " Used to define the type of a route target usage. Route targets can be specified to be imported, exported, or both. For a complete definition of a route target, see [RFC4364]." ::= { vplsBgpRteTargetEntry 2 } Koushik, et. al. Expires July 13 2014 [Page 22] VPLS Management Information Base Jan, 2014 vplsBgpRteTargetRT OBJECT-TYPE SYNTAX VplsBgpRouteTarget MAX-ACCESS read-create STATUS current DESCRIPTION " The route target associated with the VPLS service. For more details on use of route targets for a VPLS service, see [RFC4761] " ::= { vplsBgpRteTargetEntry 3 } vplsBgpRteTargetRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "This variable is used to create, modify, and/or delete a row in this table. All other objects in this row must be set to valid values before this object can be set to active(1). When a row in this table is in active(1) state, no objects in that row can be modified. If autodiscovered entries are deleted they would likely re-appear in the next autodiscovery interval." ::= { vplsBgpRteTargetEntry 4 } vplsBgpRteTargetStorageType OBJECT-TYPE SYNTAX StorageType MAX-ACCESS read-create STATUS current DESCRIPTION "This variable indicates the storage type for this row." DEFVAL { volatile } ::= { vplsBgpRteTargetEntry 5 } vplsStatusNotifEnable OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-write STATUS current DESCRIPTION "If this object is set to true(1), then it enables the emission of vplsStatusChanged notification, otherwise this notification is not Koushik, et. al. Expires July 13 2014 [Page 23] VPLS Management Information Base Jan, 2014 emitted." REFERENCE "See also [RFC3413] for explanation that notifications are under the ultimate control of the MIB module in this document." DEFVAL { false } ::= { vplsObjects 7 } vplsNotificationMaxRate OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-write STATUS current DESCRIPTION "This object indicates the maximum number of notifications issued per second. If events occur more rapidly, the implementation may simply fail to emit these notifications during that period, or may queue them until an appropriate time. A value of 0 means no throttling is applied and events may be notified at the rate at which they occur." DEFVAL { 0 } ::= { vplsObjects 8 } -- VPLS Service Notifications vplsStatusChanged NOTIFICATION-TYPE OBJECTS { vplsConfigVpnId, vplsConfigAdminStatus, vplsStatusOperStatus } STATUS current DESCRIPTION "The vplsStatusChanged notification is generated when there is a change in the administrative or operating status of a VPLS service. The object instances included in the notification are the ones associated with the VPLS service whose status has changed." ::= { vplsNotifications 1 } vplsFwdFullAlarmRaised NOTIFICATION-TYPE OBJECTS { vplsConfigVpnId, vplsConfigFwdFullHighWatermark, vplsConfigFwdFullLowWatermark } STATUS current Koushik, et. al. Expires July 13 2014 [Page 24] VPLS Management Information Base Jan, 2014 DESCRIPTION "The vplsFwdFullAlarmRaised notification is generated when the utilization of the Forwarding database is above the value specified by vplsConfigFwdFullHighWatermark. The object instances included in the notification are the ones associated with the VPLS service which has exceeded the threshold." ::= { vplsNotifications 2 } vplsFwdFullAlarmCleared NOTIFICATION-TYPE OBJECTS { vplsConfigVpnId, vplsConfigFwdFullHighWatermark, vplsConfigFwdFullLowWatermark } STATUS current DESCRIPTION "The vplsFwdFullAlarmCleared notification is generated when the utilization of the Forwarding database is below the value specified by vplsConfigFwdFullLowWatermark. The object instances included in the notification are the ones associated with the VPLS service which has fallen below the threshold." ::= { vplsNotifications 3 } -- Conformance Section vplsCompliances OBJECT IDENTIFIER ::= { vplsConformance 1 } -- Compliance requirement for fully compliant implementations vplsModuleFullCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "Compliance requirement for implementations that provide full support for VPLS-GENERIC-MIB. Such devices can then be monitored and configured using this MIB module." MODULE -- this module MANDATORY-GROUPS { vplsGroup, vplsPwBindGroup, vplsNotificationGroup } Koushik, et. al. Expires July 13 2014 [Page 25] VPLS Management Information Base Jan, 2014 ::= { vplsCompliances 1 } -- Compliance requirement for read-only implementations. vplsModuleReadOnlyCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "Compliance requirement for implementations that only provide read-only support for VPLS-GENERIC-MIB. Such devices can then be monitored but cannot be configured using this MIB modules." MODULE -- this module MANDATORY-GROUPS { vplsGroup, vplsPwBindGroup, vplsNotificationGroup } OBJECT vplsConfigName MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT vplsConfigDescr MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT vplsConfigAdminStatus MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT vplsConfigMacLearning MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT vplsConfigDiscardUnknownDest MIN-ACCESS read-only DESCRIPTION "Write access is not required." Koushik, et. al. Expires July 13 2014 [Page 26] VPLS Management Information Base Jan, 2014 OBJECT vplsConfigMacAging MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT vplsConfigFwdFullHighWatermark MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT vplsConfigFwdFullLowWatermark MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT vplsConfigRowStatus MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT vplsConfigMtu MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT vplsPwBindConfigType MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT vplsPwBindType MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT vplsPwBindRowStatus MIN-ACCESS read-only DESCRIPTION "Write access is not required." ::= { vplsCompliances 2 } -- Units of conformance. vplsGroups OBJECT IDENTIFIER ::= { vplsConformance 2 } Koushik, et. al. Expires July 13 2014 [Page 27] VPLS Management Information Base Jan, 2014 vplsGroup OBJECT-GROUP OBJECTS { vplsConfigName, vplsBgpADConfigRouteDistinguisher, vplsBgpRteTargetRTType, vplsBgpRteTargetRT, vplsBgpRteTargetRowStatus, vplsBgpRteTargetStorageType, vplsBgpADConfigPrefix, vplsBgpADConfigVplsId, vplsBgpADConfigRowStatus, vplsBgpADConfigStorageType, vplsConfigDescr, vplsConfigAdminStatus, vplsConfigMacLearning, vplsConfigDiscardUnknownDest, vplsConfigMacAging, vplsConfigVpnId, vplsConfigFwdFullHighWatermark, vplsConfigFwdFullLowWatermark, vplsConfigRowStatus, vplsConfigIndexNext, vplsConfigMtu, vplsConfigStorageType, vplsConfigSignalingType, vplsStatusOperStatus, vplsStatusPeerCount, vplsStatusNotifEnable, vplsNotificationMaxRate } STATUS current DESCRIPTION "The group of objects supporting management of L2VPN VPLS services" ::= { vplsGroups 1 } vplsPwBindGroup OBJECT-GROUP OBJECTS { vplsPwBindConfigType, vplsPwBindType, vplsPwBindRowStatus, vplsPwBindStorageType } STATUS current DESCRIPTION "The group of objects supporting management of Koushik, et. al. Expires July 13 2014 [Page 28] VPLS Management Information Base Jan, 2014 Pseudo Wire (PW) Binding to VPLS." ::= { vplsGroups 2 } vplsNotificationGroup NOTIFICATION-GROUP NOTIFICATIONS { vplsStatusChanged, vplsFwdFullAlarmRaised, vplsFwdFullAlarmCleared } STATUS current DESCRIPTION "The group of notifications supporting the Notifications generated for VPLS Services" ::= { vplsGroups 3 } END 6.2. VPLS-LDP-MIB Object definitions This MIB module makes references to the following documents. [RFC2578], [RFC2579], [RFC2580], [RFC3411], [RFC2863], [RFC4265] and [RFC3813]. VPLS-LDP-MIB DEFINITIONS ::= BEGIN IMPORTS MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, Unsigned32, transmission FROM SNMPv2-SMI -- RFC2578 MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP FROM SNMPv2-CONF -- RFC2580 TruthValue FROM SNMPv2-TC -- RFC2579 pwIndex, pwID FROM PW-STD-MIB vplsConfigIndex, vplsConfigName FROM VPLS-GENERIC-MIB; vplsLdpDraft01MIB MODULE-IDENTITY -- RFC Editor: Please replace vplsLdpDraft01MIB with -- vplsLdpMIB throughout the MIB and remove -- this note. Koushik, et. al. Expires July 13 2014 [Page 29] VPLS Management Information Base Jan, 2014 LAST-UPDATED "201302221200Z" -- 22 Feb 2013 12:00:00 GMT ORGANIZATION "Layer 2 Virtual Private Networks (L2VPN) Working Group" CONTACT-INFO " Rohit Mediratta Email: Rohit.mediratta@alcatel-lucent.com The L2VPN Working Group (email distribution l2vpn@ietf.org, http://www.ietf.org/html.charters/l2vpn-charter.html) " DESCRIPTION "Copyright (C) The IETF Trust (2013). The initial version of this MIB module was published in RFC XXXX. -- RFC Editor: Please replace XXXX with RFC number & remove -- this note. For full legal notices see the RFC itself or see: http://www.ietf.org/copyrights/ianamib.html This MIB module contains managed object definitions for LDP signaled Virtual Private LAN Services as in [RFC4762] This MIB module enables the use of any underlying pseudowire network. " -- Revision history. REVISION "201302221200Z" -- 22 Feb 2013 12:00:00 GMT DESCRIPTION "Editorial changes." REVISION "200608301200Z" -- 30 Aug 2006 12:00:00 GMT DESCRIPTION "Initial version published as part of RFC YYYY." -- RFC Editor: please replace YYYY with IANA assigned value, and -- delete this note. ::= { transmission XXXX } -- RFC Editor: please replace XXXX with IANA assigned value, and -- delete this note. -- Top-level components of this MIB. -- Notifications Koushik, et. al. Expires July 13 2014 [Page 30] VPLS Management Information Base Jan, 2014 vplsLdpNotifications OBJECT IDENTIFIER ::= { vplsLdpDraft01MIB 0 } -- Tables, Scalars vplsLdpObjects OBJECT IDENTIFIER ::= { vplsLdpDraft01MIB 1 } -- Conformance vplsLdpConformance OBJECT IDENTIFIER ::= { vplsLdpDraft01MIB 2 } vplsLdpConfigTable OBJECT-TYPE SYNTAX SEQUENCE OF VplsLdpConfigEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table specifies information for configuring and monitoring LDP specific parameters for Virtual Private Lan Services (VPLS)." ::= { vplsLdpObjects 1 } vplsLdpConfigEntry OBJECT-TYPE SYNTAX VplsLdpConfigEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A row in this table represents LDP specific information for Virtual Private Lan Services (VPLS) in a packet network. It is indexed by vplsConfigIndex, which uniquely identifies a single VPLS. A row is automatically created when a VPLS service is configured using LDP signaling. All of the writable objects values can be changed when vplsConfigRowStatus is in the active(1) state. " INDEX { vplsConfigIndex } ::= { vplsLdpConfigTable 1 } Koushik, et. al. Expires July 13 2014 [Page 31] VPLS Management Information Base Jan, 2014 VplsLdpConfigEntry ::= SEQUENCE { vplsLdpConfigMacAddrWithdraw TruthValue } vplsLdpConfigMacAddrWithdraw OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-write STATUS current DESCRIPTION "This object specifies if MAC address withdrawal is enabled in this service. If this object is true then MAC address withdrawal is enabled. If false, then MAC address withdrawal is disabled." DEFVAL { true } ::= { vplsLdpConfigEntry 1 } -- VPLS LDP PW Binding Table vplsLdpPwBindTable OBJECT-TYPE SYNTAX SEQUENCE OF VplsLdpPwBindEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table provides LDP specific information for an association between a VPLS service and the corresponding pseudowires. A service can have more than one pseudowire association. Pseudowires are defined in the pwTable." ::= { vplsLdpObjects 2 } vplsLdpPwBindEntry OBJECT-TYPE SYNTAX VplsLdpPwBindEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Each row represents an association between a VPLS instance and one or more pseudowires defined in the pwTable. Each index is unique in describing an entry in this table. However both indexes are required to define the one to many association of service to pseudowire. An entry in this table in instantiated only when LDP signaling is used to configure VPLS service. Each entry in this table provides LDP specific information for the VPLS represented by Koushik, et. al. Expires July 13 2014 [Page 32] VPLS Management Information Base Jan, 2014 vplsConfigIndex." INDEX { vplsConfigIndex, pwIndex } ::= { vplsLdpPwBindTable 1 } VplsLdpPwBindEntry ::= SEQUENCE { vplsLdpPwBindMacAddressLimit Unsigned32 } vplsLdpPwBindMacAddressLimit OBJECT-TYPE SYNTAX Unsigned32 (0..4294967295) MAX-ACCESS read-write STATUS current DESCRIPTION "The value of this object specifies the maximum number of learned and static entries allowed in the Forwarding database for this PW Binding. The value 0 means there is no limit for this PW Binding." DEFVAL { 0 } ::= { vplsLdpPwBindEntry 1 } -- VPLS LDP Service Notifications vplsLdpPwBindMacTableFull NOTIFICATION-TYPE OBJECTS { vplsConfigName, pwID } STATUS current DESCRIPTION "The vplsLdpPwBindMacTableFull notification is generated when the number of learned MAC-Addresses increases to the value specified in vplsLdpPwBindMacAddressLimit." ::= { vplsLdpNotifications 1 } -- Conformance Section vplsLdpCompliances OBJECT IDENTIFIER ::= { vplsLdpConformance 1 } -- Compliance requirement for fully compliant implementations vplsLdpModuleFullCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "Compliance requirement for implementations that Koushik, et. al. Expires July 13 2014 [Page 33] VPLS Management Information Base Jan, 2014 provide full support for VPLS-LDP-MIB. Such devices can then be monitored and configured using this MIB module." MODULE -- this module MANDATORY-GROUPS { vplsLdpGroup, vplsLdpNotificationGroup } ::= { vplsLdpCompliances 1 } -- Compliance requirement for read-only implementations. vplsLdpModuleReadOnlyCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "Compliance requirement for implementations that only provide read-only support for VPLS-LDP-MIB. Such devices can then be monitored but cannot be configured using this MIB modules." MODULE -- this module MANDATORY-GROUPS { vplsLdpGroup, vplsLdpNotificationGroup } OBJECT vplsLdpConfigMacAddrWithdraw MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT vplsLdpPwBindMacAddressLimit MIN-ACCESS read-only DESCRIPTION "Write access is not required." ::= { vplsLdpCompliances 2 } -- Units of conformance. vplsLdpGroups OBJECT IDENTIFIER ::= { vplsLdpConformance 2 } Koushik, et. al. Expires July 13 2014 [Page 34] VPLS Management Information Base Jan, 2014 vplsLdpGroup OBJECT-GROUP OBJECTS { vplsLdpConfigMacAddrWithdraw, vplsLdpPwBindMacAddressLimit } STATUS current DESCRIPTION "The group of objects supporting management of L2VPN VPLS services using LDP." ::= { vplsLdpGroups 1 } vplsLdpNotificationGroup NOTIFICATION-GROUP NOTIFICATIONS { vplsLdpPwBindMacTableFull } STATUS current DESCRIPTION "The group of notifications supporting the Notifications generated for VPLS Ldp Service" ::= { vplsLdpGroups 2 } END 6.3. VPLS-BGP-MIB Object definitions VPLS-BGP-MIB DEFINITIONS ::= BEGIN IMPORTS MODULE-IDENTITY, OBJECT-TYPE, Unsigned32, transmission FROM SNMPv2-SMI -- RFC2578 MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF -- RFC2580 RowStatus, StorageType FROM SNMPv2-TC -- RFC2579 SnmpAdminString FROM SNMP-FRAMEWORK-MIB -- RFC3411 pwIndex FROM PW-STD-MIB -- RFC5601 vplsConfigIndex Koushik, et. al. Expires July 13 2014 [Page 35] VPLS Management Information Base Jan, 2014 FROM VPLS-GENERIC-MIB ; vplsBgpDraft01MIB MODULE-IDENTITY -- RFC Editor: Please replace vplsBgpDraft01MIB with -- vplsBgpMIB throughout the MIB and remove -- this note. LAST-UPDATED "201302221200Z" -- 22 Feb 2013 12:00:00 GMT ORGANIZATION "Layer 2 Virtual Private Networks (L2VPN) Working Group" CONTACT-INFO " V. J. Shah Email: vshah@juniper.net The L2VPN Working Group (email distribution l2vpn@ietf.org, http://www.ietf.org/html.charters/l2vpn-charter.html) " DESCRIPTION "Copyright (C) The IETF Trust (2013). The initial version of this MIB module was published in RFC XXXX. -- RFC Editor: Please replace XXXX with RFC number & remove -- this note. For full legal notices see the RFC itself or see: http://www.ietf.org/copyrights/ianamib.html This MIB module contains managed object definitions for BGP signaled Virtual Private LAN Services as in [RFC4761] This MIB module enables the use of any underlying pseudowire network. " -- Revision history. REVISION "201302221200Z" -- 22 Feb 2013 12:00:00 GMT DESCRIPTION "Initial version published as part of RFC YYYY." -- RFC Editor: please replace YYYY with IANA assigned value, and -- delete this note. ::= { transmission XXXX } -- RFC Editor: please replace XXXX with IANA assigned value, and -- delete this note. -- Top-level components of this MIB. Koushik, et. al. Expires July 13 2014 [Page 36] VPLS Management Information Base Jan, 2014 -- Tables, Scalars vplsBgpObjects OBJECT IDENTIFIER ::= { vplsBgpDraft01MIB 1 } -- Conformance vplsBgpConformance OBJECT IDENTIFIER ::= { vplsBgpDraft01MIB 2 } -- Vpls Bgp Config Table vplsBgpConfigTable OBJECT-TYPE SYNTAX SEQUENCE OF VplsBgpConfigEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table specifies information for configuring and monitoring BGP specific parameters for Virtual Private LAN Services (VPLS)." ::= { vplsBgpObjects 1 } vplsBgpConfigEntry OBJECT-TYPE SYNTAX VplsBgpConfigEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A row in this table represents BGP specific information for Virtual Private LAN Services (VPLS) in a packet network. It is indexed by vplsConfigIndex, which uniquely identifies a single instance of a VPLS service. A row is automatically created when a VPLS service is created that is configured to use BGP signaling. All of the writable objects values can be changed when vplsConfigRowStatus is in the active(1) state. " INDEX { vplsConfigIndex } ::= { vplsBgpConfigTable 1 } VplsBgpConfigEntry ::= Koushik, et. al. Expires July 13 2014 [Page 37] VPLS Management Information Base Jan, 2014 SEQUENCE { vplsBgpConfigVERangeSize Unsigned32 } vplsBgpConfigVERangeSize OBJECT-TYPE SYNTAX Unsigned32 (0..65535) MAX-ACCESS read-write STATUS current DESCRIPTION "Specifies the size of the range of VE ids in this VPLS service. This number controls the size of the label block advertised for this VE by the PE. A value of 0 indicates that the range is not configured and the PE derives the range value from received advertisements from other PEs." DEFVAL { 0 } ::= { vplsBgpConfigEntry 1 } -- Vpls Edge Device (VE) Identifier Table vplsBgpVETable OBJECT-TYPE SYNTAX SEQUENCE OF VplsBgpVEEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table associates VPLS Edge devices to a VPLS service" ::= { vplsBgpObjects 2 } vplsBgpVEEntry OBJECT-TYPE SYNTAX VplsBgpVEEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry in this table is created for each VE Id configured on a PE for a particular VPLS service instance. Entries in this table may be created or deleted through SNMP, as side-effects of console or other non-SNMP management commands, or upon learning via autodiscovery. It is optional for the agent to allow entries to be created that point to non-existent entries in vplsConfigTable." INDEX { vplsConfigIndex, vplsBgpVEId } ::= { vplsBgpVETable 1 } Koushik, et. al. Expires July 13 2014 [Page 38] VPLS Management Information Base Jan, 2014 VplsBgpVEEntry ::= SEQUENCE { vplsBgpVEId Unsigned32, vplsBgpVEName SnmpAdminString, vplsBgpVEPreference Unsigned32, vplsBgpVERowStatus RowStatus, vplsBgpVEStorageType StorageType } vplsBgpVEId OBJECT-TYPE SYNTAX Unsigned32 (1..65535) MAX-ACCESS not-accessible STATUS current DESCRIPTION "A secondary index identifying a VE within an instance of a VPLS service." ::= { vplsBgpVEEntry 1 } vplsBgpVEName OBJECT-TYPE SYNTAX SnmpAdminString MAX-ACCESS read-create STATUS current DESCRIPTION "Descriptive name for the site or u-PE associated with this VE Id." DEFVAL { "" } ::= { vplsBgpVEEntry 2 } vplsBgpVEPreference OBJECT-TYPE SYNTAX Unsigned32 (0..65535) MAX-ACCESS read-create STATUS current DESCRIPTION "Specifies the preference of the VE Id on this PE if the site is multi-homed and VE Id is re-used." DEFVAL { 0 } ::= { vplsBgpVEEntry 3 } vplsBgpVERowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "This variable is used to create, modify, and/or delete a row in this table. All other objects in this row must be set to valid values before this object can be set to active(1). Koushik, et. al. Expires July 13 2014 [Page 39] VPLS Management Information Base Jan, 2014 When a row in this table is in active(1) state, no objects in that row can be modified except vplsBgpSiteRowStatus." ::= { vplsBgpVEEntry 5 } vplsBgpVEStorageType OBJECT-TYPE SYNTAX StorageType MAX-ACCESS read-create STATUS current DESCRIPTION "This variable indicates the storage type for this row." DEFVAL { volatile } ::= { vplsBgpVEEntry 6 } -- VPLS BGP PW Binding Table vplsBgpPwBindTable OBJECT-TYPE SYNTAX SEQUENCE OF VplsBgpPwBindEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table provides BGP specific information for an association between a VPLS service and the corresponding pseudowires. A service can have more than one pseudowire association. Pseudowires are defined in the pwTable." ::= { vplsBgpObjects 3 } vplsBgpPwBindEntry OBJECT-TYPE SYNTAX VplsBgpPwBindEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Each row represents an association between a VPLS instance and one or more Pseudowires defined in the pwTable. Each index is unique in describing an entry in this table. However both indexes are required to define the one to many association of service to pseudowire. An entry in this table in instantiated only when BGP signaling is used to configure VPLS service. Each entry in this table provides BGP specific information for the VPlS represented by vplsConfigIndex." INDEX { vplsConfigIndex, pwIndex } ::= { vplsBgpPwBindTable 1 } Koushik, et. al. Expires July 13 2014 [Page 40] VPLS Management Information Base Jan, 2014 VplsBgpPwBindEntry ::= SEQUENCE { vplsBgpPwBindLocalVEId Unsigned32, vplsBgpPwBindRemoteVEId Unsigned32 } vplsBgpPwBindLocalVEId OBJECT-TYPE SYNTAX Unsigned32 (1..65535) MAX-ACCESS read-only STATUS current DESCRIPTION "Identifies the local VE that this pseudowire is associated with." ::= { vplsBgpPwBindEntry 1 } vplsBgpPwBindRemoteVEId OBJECT-TYPE SYNTAX Unsigned32 (1..65535) MAX-ACCESS read-only STATUS current DESCRIPTION "Identifies the remote VE that this pseudowire is associated with." ::= { vplsBgpPwBindEntry 2 } -- Conformance Section -- Compliance requirement for fully compliant implementations vplsBgpCompliances OBJECT IDENTIFIER ::= { vplsBgpConformance 1 } vplsBgpModuleFullCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "Compliance requirement for implementations that provide full support for VPLS-BGP-MIB. Such devices can then be monitored and configured using this MIB module." MODULE -- this module MANDATORY-GROUPS { vplsBgpConfigGroup, vplsBgpVEGroup, vplsBgpPwBindGroup Koushik, et. al. Expires July 13 2014 [Page 41] VPLS Management Information Base Jan, 2014 } ::= { vplsBgpCompliances 1 } -- Compliance requirement for read-only implementations. vplsBgpModuleReadOnlyCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "Compliance requirement for implementations that only provide read-only support for VPLS-BGP-MIB. Such devices can then be monitored but cannot be configured using this MIB modules." MODULE -- this module MANDATORY-GROUPS { vplsBgpConfigGroup, vplsBgpVEGroup, vplsBgpPwBindGroup } OBJECT vplsBgpConfigVERangeSize MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT vplsBgpVEName MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT vplsBgpVEPreference MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT vplsBgpVERowStatus MIN-ACCESS read-only DESCRIPTION "Write access is not required." ::= { vplsBgpCompliances 2 } -- Units of conformance. vplsBgpGroups Koushik, et. al. Expires July 13 2014 [Page 42] VPLS Management Information Base Jan, 2014 OBJECT IDENTIFIER ::= { vplsBgpConformance 2 } vplsBgpConfigGroup OBJECT-GROUP OBJECTS { vplsBgpConfigVERangeSize } STATUS current DESCRIPTION "The group of objects supporting configuration of L2VPN VPLS services using BGP" ::= { vplsBgpGroups 1 } vplsBgpVEGroup OBJECT-GROUP OBJECTS { vplsBgpVEName, vplsBgpVEPreference, vplsBgpVERowStatus, vplsBgpVEStorageType } STATUS current DESCRIPTION "The group of objects supporting management of VPLS Edge devices for L2VPN VPLS services using BGP" ::= { vplsBgpGroups 2 } vplsBgpPwBindGroup OBJECT-GROUP OBJECTS { vplsBgpPwBindLocalVEId, vplsBgpPwBindRemoteVEId } STATUS current DESCRIPTION "The group of objects supporting management of Pseudo Wires for L2VPN VPLS services using BGP" ::= { vplsBgpGroups 3 } END 7. Security Considerations It is clear that the MIB modules described in this document in association with the PW-STD-MIB [RFC5601] are potentially useful for monitoring of VPLS capable LERs. These MIB modules can also be used for configuration of certain objects, and anything that can be configured can be incorrectly configured, with potentially undesirable results. While the read-write and read-create objects must be protected by Koushik, et. al. Expires July 13 2014 [Page 43] VPLS Management Information Base Jan, 2014 secure SNMP, none of them are especially disruptive. Similarly, while the read-only objects might present privacy concerns and due consideration should be given to protecting them with secure SNMP, none of these objects contain especially sensitive information. 8. IANA Considerations -- (Note to RFC-Editor:) -- IANA is requested to root the MIB modules -- contained in this document under the transmission subtree. -- 9. References 9.1. Normative References [RFC2119] S. Bradner, "Key Words for use in RFCs to Indicate Requirement Levels", RFC 2119, BCP 14, March 1997. [RFC2578] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., Rose, M., and S. Waldbusser, "Structure of Management Information Version 2 (SMIv2)", STD 58, RFC 2578, April 1999. [RFC2579] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., Rose, M., and S. Waldbusser, "Textual Conventions for SMIv2", STD 58, RFC 2579, April 1999. [RFC2580] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., Rose, M., and S. Waldbusser, "Conformance Statements for SMIv2", STD 58, RFC 2580, April 1999. [RFC3413] Levi, D., Meyer, P., and B. Stewart, "Simple Network Management Protocol (SNMP) Applications", STD 62, RFC 3413, December 2002. [RFC3415] Wijnen, B., Presuhn, R. and K. McCloghrie, "View- based Access Control Model (VACM) for the Simple Network Management Protocol (SNMP)", STD 62, RFC 3415, December 2002. [RFC4188] Norseth, K., and Bell, E., "Definitions of Managed Objects for Bridges", RFC 4188, Sept 2006. [RFC4265] Schliesser, B. and T. Nadeau, "Definition of Textual Conventions for Virtual Private Network (VPN) Management", RFC 4265, November 2005. Koushik, et. al. Expires July 13 2014 [Page 44] VPLS Management Information Base Jan, 2014 [RFC4364] Rosen, E. and Y. Rekhter, "BGP/MPLS IP Virtual Private Networks (VPNs)", RFC 4364, February 2006. [RFC4761] Kompella, K. and Y. Rekhter, "Virtual Private LAN Service (VPLS) Using BGP for Auto-Discovery and Signaling",RFC 4761, January 2007. [RFC4762] Lasserre, M. and Kompella, V. (Editors), "Virtual Private LAN Service (VPLS) Using Label Distribution Protocol (LDP) Signaling", RFC 4762, January 2007. [RFC5601] T. Nadeau, Ed., D. Zelig, Ed., "Pseudowire (PW) Management Information Base (MIB)", RFC 5601, July 2009. 9.2. Informative References [RFC2863] McCloghrie, K. and F. Kastenholtz, "The Interfaces Group MIB", RFC 2863, June 2000. [RFC3410] Case, J., Mundy, R., Partain, D., and B. Stewart, "Introduction and Applicability Statements for Internet-Standard Management Framework", RFC 3410, December 2002. [RFC3411] Harrington, D., Presuhn, R., and B. Wijnen, "An Architecture for Describing Simple Network Management Protocol (SNMP) Management Frameworks", STD 62, RFC 3411, December 2002. [RFC3813] Srinivasan, C., Viswanathan, A. and Nadeau, T., "Multiprotocol Label Switching (MPLS) Label Switching Router (LSR) Management Information Base", RFC 3813, June 2004 [SNMP-CONTEXT-MAP-MIB] SNMP Context Mapping MIB, AS, Kiran Koushik, Nadeau, T, draft-kkoushik-snmp-context-map-mib. [RFC3985] Bryant, S. and P. Pate, "Pseudo Wire Emulation Edge-to- Edge (PWE3) Architecture", RFC 3985, March 2005. [RFC6074] E. Rosen et. al., "Provisioning, Autodiscovery, and Signaling in L2VPNs", RFC 6074, January 2011. 10. Acknowledgments Koushik, et. al. Expires July 13 2014 [Page 45] VPLS Management Information Base Jan, 2014 We wish to thank Marcelo Mourier and Reva Bailey for their valuable feedback. Some portion of the work has been referenced from their original Timetra Enterprise MIB work. We wish to thank Praveen Muley, VJ Shah, Li Wentao, Kong Yong, Luo Jian, Feng Jun, Takeshi Usui for their feedback. 11. Authors' Addresses Thomas D. Nadeau Lucid Vision Email: tnadeau@lucidvision.com A S Kiran Koushik Cisco Systems Inc. 12515 Research Blvd, Bldg 4, Austin, TX 78759 Email: kkoushik@cisco.com Rohit Mediratta Alcatel-Lucent, 701 E Middlefield Rd. Mountain View, CA 94040 Email: rohit.mediratta@alcatel-lucent.com 12. Full Copyright Statement 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. This document may contain material from IETF Documents or IETF Contributions published or made publicly available before November 10, 2008. The person(s) controlling the copyright in some of this Koushik, et. al. Expires July 13 2014 [Page 46] VPLS Management Information Base Jan, 2014 material may not have granted the IETF Trust the right to allow modifications of such material outside the IETF Standards Process. Without obtaining an adequate license from the person(s) controlling the copyright in such materials, this document may not be modified outside the IETF Standards Process, and derivative works of it may not be created outside the IETF Standards Process, except to format it for publication as an RFC or to translate it into languages other than English. Koushik, et. al. Expires July 13 2014 [Page 47]