VPLS-LDP-MIB DEFINITIONS ::= BEGIN

IMPORTS

MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
Unsigned32, transmission
   FROM SNMPv2-SMI                    -- RFC 2578

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

TruthValue
   FROM SNMPv2-TC                     -- RFC 2579

pwIndex, pwID
   FROM PW-STD-MIB                    -- RFC 5601

vplsConfigIndex, vplsConfigName
   FROM VPLS-GENERIC-MIB;

vplsLdpMIB MODULE-IDENTITY
   LAST-UPDATED "201405191200Z"  -- 19 May 2014 12:00:00 GMT
   ORGANIZATION "Layer 2 Virtual Private Networks (L2VPN)
                 Working Group"

   CONTACT-INFO
       "
        Rohit Mediratta
        Email:  romedira@cisco.com

        The L2VPN Working Group
        (email distribution l2vpn@ietf.org,
        http://www.ietf.org/wg/l2vpn/charter/)
        "
   DESCRIPTION
       "Copyright (c) 2014 IETF Trust and the persons
        identified as authors of the code.  All rights reserved.

        Redistribution and use in source and binary forms, with
        or without modification, is permitted pursuant to, and
        subject to the license terms contained in, the Simplified
        BSD License set forth in Section 4.c of the IETF Trust's
        Legal Provisions Relating to IETF Documents
        (http://trustee.ietf.org/license-info).

        The initial version of this MIB module was published in
        RFC 7257; for full legal notices see the RFC itself.

        This MIB module contains managed object definitions for
        LDP-signaled Virtual Private LAN Services as in
        RFC 4762.

        This MIB module enables the use of any
        underlying pseudowire network."

   -- Revision history.
   REVISION
       "201405191200Z"  -- 19 May 2014 12:00:00 GMT
   DESCRIPTION "Initial version published as part of RFC 7257."
       ::= { transmission 275 }

-- Top-level components of this MIB.
-- Notifications

vplsLdpNotifications OBJECT IDENTIFIER
                              ::= { vplsLdpMIB 0 }

-- Tables, Scalars
vplsLdpObjects       OBJECT IDENTIFIER
                              ::= { vplsLdpMIB 1 }
-- Conformance

vplsLdpConformance   OBJECT IDENTIFIER
                              ::= { vplsLdpMIB 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 Service (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 Service (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 }

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

 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
