QTECH-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,  TEXTUAL-CONVENTION
         FROM SNMPv2-TC                     -- RFC2579

      SnmpAdminString
         FROM SNMP-FRAMEWORK-MIB            -- RFC3411

      qtechvplsConfigIndex, qtechvplsPwBindIndex
         FROM QTECH-VPLS-GENERIC-MIB
      qtechMgmt
         FROM QTECH-SMI
      ;

   qtechvplsBgpDraft01MIB MODULE-IDENTITY
      LAST-UPDATED "201004281200Z"  -- 28 April 2010 12:00:00 GMT
      ORGANIZATION "Qtech Networks Co.,Ltd."
      CONTACT-INFO
                "
                Tel: 4008-111-000

                E-mail: service@qtech.com.cn"

      DESCRIPTION
          "Copyright (C) Qtech Networks (2010).

           This MIB module contains managed object definitions for
           BGP signalled Virtual Private LAN Services as in
           [RFC4761]

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

      -- Revision history.
      REVISION
          "201004281200Z"  -- 28 April 2010 12:00:00 GMT
      DESCRIPTION "Initial version published as part of Qtech private MIB."
         ::= { qtechMgmt 79 }

   -- VPLS BGP specific Textual Conventions.
   QtechVplsBgpRouteDistinguisher ::= 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))

   QtechVplsBgpRouteTarget ::= 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))

   -- Top-level components of this MIB.

   -- Tables, Scalars
   qtechvplsBgpObjects       OBJECT IDENTIFIER
                                 ::= { qtechvplsBgpDraft01MIB 1 }
   -- Conformance
   qtechvplsBgpConformance   OBJECT IDENTIFIER
                                 ::= { qtechvplsBgpDraft01MIB 2 }

     -- Vpls Edge Device (VE) Identifier Table

     qtechvplsBgpVETable OBJECT-TYPE
         SYNTAX        SEQUENCE OF QtechVplsBgpVEEntry
         MAX-ACCESS    not-accessible
         STATUS        current
         DESCRIPTION
            "This table associates VPLS Edge devices to a VPLS instance"
         ::= { qtechvplsBgpObjects 1 }

     qtechvplsBgpVEEntry OBJECT-TYPE
         SYNTAX        QtechVplsBgpVEEntry
         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."
         INDEX  { qtechvplsConfigIndex, qtechvplsBgpVEindex }
         ::= { qtechvplsBgpVETable 1 }

     QtechVplsBgpVEEntry ::= SEQUENCE {
          qtechvplsBgpVEindex        Unsigned32,
          qtechvplsBgpVEId           Unsigned32,
          qtechvplsBgpRangeSize      Unsigned32,
          qtechvplsBgpVEPreference   Unsigned32,
          qtechvplsBgpVERowStatus    RowStatus
        }

      qtechvplsBgpVEindex  OBJECT-TYPE
          SYNTAX          Unsigned32  (1..2147483647)
          MAX-ACCESS      not-accessible
          STATUS          current
          DESCRIPTION
               "Unique index for the conceptual row identifying
                VE in a VPLS instance."
          ::= { qtechvplsBgpVEEntry 1 }

     qtechvplsBgpVEId OBJECT-TYPE
        SYNTAX        Unsigned32 (1..256)
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION
            "A secondary index identifying a VE within an
             instance of a VPLS service."
        ::= { qtechvplsBgpVEEntry 2 }

     qtechvplsBgpRangeSize OBJECT-TYPE
        SYNTAX        Unsigned32 (1..256)
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION
            "Specifies the range size for the given VE ID."
        DEFVAL           { 16 }
        ::= { qtechvplsBgpVEEntry 3}

     qtechvplsBgpVEPreference OBJECT-TYPE
        SYNTAX        Unsigned32 (0..256)
        MAX-ACCESS    read-only
        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.

             Set this 0 if the site is NOT dual-homed or multi-homed."
        DEFVAL           { 0 }
        ::= { qtechvplsBgpVEEntry 4}

     qtechvplsBgpVERowStatus 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.  When a row in this
             table is in active(1) state, no objects in that row
             can be modified except qtechvplsBgpSiteRowStatus."
        ::= { qtechvplsBgpVEEntry 5 }

      -- VPLS BGP PW Binding Table

      qtechvplsBgpPwBindTable OBJECT-TYPE
          SYNTAX          SEQUENCE OF QtechVplsBgpPwBindEntry
          MAX-ACCESS      not-accessible
          STATUS          current
          DESCRIPTION
               "This table provides BGP specific information for
                an association between a VPLS service and the
                corresponding Pseudo Wires. A service can have more
                than one Pseudo Wire association. Pseudo Wires are
                defined in the pwTable."
          ::= { qtechvplsBgpObjects 2 }

      qtechvplsBgpPwBindEntry OBJECT-TYPE
          SYNTAX          QtechVplsBgpPwBindEntry
          MAX-ACCESS      not-accessible
          STATUS          current
          DESCRIPTION
               "Each row represents an association between a
                VPLS instance and one or more Pseudo Wires
                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 signalling is used to configure VPLS service.

                Each entry in this table provides BGP specific
                information for the VPlS represented by
                qtechvplsConfigIndex."
          INDEX  { qtechvplsConfigIndex, qtechvplsPwBindIndex }
          ::= { qtechvplsBgpPwBindTable 1 }

      QtechVplsBgpPwBindEntry ::=
          SEQUENCE {
              qtechvplsBgpPwBindLocalVEId    Unsigned32,
              qtechvplsBgpPwBindRemoteVEId   Unsigned32
          }

      qtechvplsBgpPwBindLocalVEId   OBJECT-TYPE
           SYNTAX          Unsigned32 (1..256)
           MAX-ACCESS      read-only
           STATUS          current
           DESCRIPTION
                "Identifies the local VE that this Pseudo Wire
                 is associated with."
          ::= { qtechvplsBgpPwBindEntry 1 }

      qtechvplsBgpPwBindRemoteVEId   OBJECT-TYPE
           SYNTAX          Unsigned32 (1..256)
           MAX-ACCESS      read-only
           STATUS          current
           DESCRIPTION
                "Identifies the remote VE that this Pseudo Wire
                 is associated with."
          ::= { qtechvplsBgpPwBindEntry 2 }

   -- Compliance requirement for read-only implementations.

   qtechvplsBgpCompliances
     OBJECT IDENTIFIER ::= { qtechvplsBgpConformance 1 }

   qtechvplsBgpModuleFullCompliance MODULE-COMPLIANCE
      STATUS current
      DESCRIPTION
           "Compliance requirement for implementations that
            provide full support for VPLS-BGP-DRAFT-01-MIB.
            Such devices can then be monitored and configured using
            this MIB module."

      MODULE -- this module

          MANDATORY-GROUPS {
               qtechvplsBgpConfigGroup,
               qtechvplsBgpVEGroup,
               qtechvplsBgpPwBindGroup
           }
      ::= { qtechvplsBgpCompliances 1 }


   qtechvplsBgpModuleReadOnlyCompliance MODULE-COMPLIANCE
      STATUS current
      DESCRIPTION
           "Compliance requirement for implementations that only
            provide read-only support for VPLS-BGP-DRAFT-01-MIB.
            Such devices can then be monitored but cannot be
            configured using this MIB modules."

      MODULE -- this module

          MANDATORY-GROUPS {
               qtechvplsBgpConfigGroup,
               qtechvplsBgpVEGroup,
               qtechvplsBgpPwBindGroup
           }

           OBJECT          qtechvplsBgpConfigRouteDistinguisher
           MIN-ACCESS      read-only
           DESCRIPTION
               "Write access is not required."

           OBJECT          qtechvplsBgpConfigRouteTarget
           MIN-ACCESS      read-only
           DESCRIPTION
               "Write access is not required."

           OBJECT          qtechvplsBgpVEName
           MIN-ACCESS      read-only
           DESCRIPTION
               "Write access is not required."

      ::= { qtechvplsBgpCompliances 2 }

-- Units of conformance.

      qtechvplsBgpGroups
        OBJECT IDENTIFIER ::= { qtechvplsBgpConformance 2 }


      qtechvplsBgpVEGroup OBJECT-GROUP
          OBJECTS {
              qtechvplsBgpVEPreference
          }
          STATUS          current
          DESCRIPTION
               "The group of objects supporting management of VPLS
                Edge devices for L2VPN VPLS services using BGP"
          ::= { qtechvplsBgpGroups 2 }

      qtechvplsBgpPwBindGroup OBJECT-GROUP
          OBJECTS {
              qtechvplsBgpPwBindLocalVEId,
              qtechvplsBgpPwBindRemoteVEId
          }
          STATUS          current
          DESCRIPTION
               "The group of objects supporting management of
                Pseudo Wires for L2VPN VPLS services using BGP"
          ::= { qtechvplsBgpGroups 3 }

END
