VPLS-GENERIC-MIB DEFINITIONS ::= BEGIN


   IMPORTS

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

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

   TruthValue, RowStatus, StorageType, TEXTUAL-CONVENTION
      FROM SNMPv2-TC                     -- RFC 2579

   SnmpAdminString
      FROM SNMP-FRAMEWORK-MIB            -- RFC 3411

   pwIndex
      FROM PW-STD-MIB                    -- RFC 5601

   VPNIdOrZero
      FROM VPN-TC-STD-MIB                -- RFC 4265

   ;

   vplsGenericMIB MODULE-IDENTITY
      LAST-UPDATED "201405191200Z"  -- 19 May 2014 12:00:00 GMT
      ORGANIZATION "Layer 2 Virtual Private Networks (L2VPN)
                                 Working Group"
      CONTACT-INFO
          "
           Thomas D. Nadeau
           Email:  tnadeau@lucidvison.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 generic managed object definitions
           for Virtual Private LAN Service as defined in RFC 4761 and
           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 274 }

   VplsBgpRouteDistinguisher ::= TEXTUAL-CONVENTION
     STATUS        current
     DESCRIPTION
         "Syntax for a route distinguisher that matches the
          definition in RFC 4364.  For a complete
          definition of a route distinguisher, see RFC 4364.
          For more details on use of a route distinguisher
          for a VPLS service, see RFC 4761."
     REFERENCE
         "RFC 4364"
     SYNTAX       OCTET STRING(SIZE (0..256))

   VplsBgpRouteTarget ::= TEXTUAL-CONVENTION
      STATUS        current
      DESCRIPTION
          "Syntax for a Route Target that matches the
           definition in RFC 4364.  For a complete
           definition of a Route Target, see RFC 4364."
      REFERENCE
          "RFC 4364"





      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 RFC 4364."
      REFERENCE
        "RFC 4364"
      SYNTAX         INTEGER { import(1), export(2), both(3) }

   -- Top-level components of this MIB.

   -- Notifications
   vplsNotifications OBJECT IDENTIFIER
                                 ::= { vplsGenericMIB 0 }
   -- Tables, Scalars
   vplsObjects       OBJECT IDENTIFIER
                                 ::= { vplsGenericMIB 1 }
   -- Conformance
   vplsConformance   OBJECT IDENTIFIER
                                 ::= { vplsGenericMIB 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 Service (VPLS).
                "
          ::= { vplsObjects 2 }

      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
          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 }
          ::= { 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.  The value of this object must
                be higher than vplsConfigFwdFullLowWatermark."

          DEFVAL          { 95 }
          ::= { vplsConfigEntry 10 }

      vplsConfigFwdFullLowWatermark OBJECT-TYPE
          SYNTAX          Unsigned32 (0..99)
          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.  The value of this
                object must be less than
                vplsConfigFwdFullHighWatermark."
          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 }

      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
       DESCRIPTION
             "This table provides information for monitoring
             Virtual Private LAN Service (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 }

    -- 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 nonexistent entries in
              vplsConfigTable."
        INDEX  { vplsConfigIndex, pwIndex }
        ::= { vplsPwBindTable 1 }

    VplsPwBindEntry ::=
        SEQUENCE {





            vplsPwBindConfigType              INTEGER,
            vplsPwBindType                  INTEGER,
            vplsPwBindRowStatus             RowStatus,
            vplsPwBindStorageType             StorageType
        }

    vplsPwBindConfigType   OBJECT-TYPE
         SYNTAX          INTEGER {
                                 manual        (1),
                                 autodiscovery (2)
                         }
         MAX-ACCESS      read-create
         STATUS          current
         DESCRIPTION
              "The value of this object indicates
               whether the pseudowire 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."
        ::= { 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."





         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 RFC 4364
         for a complete definition of a route distinguisher.
         For more details on use of a route distinguisher
         for a VPLS service, see RFC 4761.  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
         Network Layer Reachability Information (NLRI), see RFC 6074.
         "
         DEFVAL { 0 }
         ::= { vplsBgpADConfigEntry 2 }

   vplsBgpADConfigVplsId          OBJECT-TYPE
         SYNTAX          VplsBgpRouteDistinguisher
         MAX-ACCESS      read-create
         STATUS          current
         DESCRIPTION
         "VplsId is a unique identifier for all Virtual Switch
          Instances (VSIs) belonging to 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, imported, or both.  Every VPLS that
           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 nonexistent 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 a 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 RFC 4364."





           ::= { vplsBgpRteTargetEntry 2 }

     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 RFC 4761.
           "
           ::= { 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 a vplsStatusChanged
            notification; otherwise, this notification is not





            emitted."
           REFERENCE
           "See also RFC 3413 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 it 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





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





           }

      ::= { 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."






           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 }






   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
             pseudowire (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


