-- *****************************************************************
-- QTECH-CLUSTER-MIB.mib:  Qtech CLUSTER MIB file
--
-- july 2012, sunxiaofeng
--
-- Copyright (c) 2012 by Qtech Networks Co.,Ltd.
-- All rights reserved.
-- *****************************************************************

QTECH-CLUSTER-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY,
    OBJECT-TYPE,
    NOTIFICATION-TYPE,
    Unsigned32
        FROM SNMPv2-SMI
    MacAddress,
    TimeStamp,
    DisplayString,
    RowStatus
        FROM SNMPv2-TC
    IpAddress
        FROM SNMPv2-SMI
    MODULE-COMPLIANCE,
    OBJECT-GROUP
        FROM SNMPv2-CONF
    EnabledStatus
        FROM P-BRIDGE-MIB
    qtechMgmt
        FROM QTECH-SMI;

qtechClusterMIB MODULE-IDENTITY
    LAST-UPDATED "201207010000Z"
    ORGANIZATION "Qtech Networks Co.,Ltd."
    CONTACT-INFO
            "
            Tel: 4008-111-000

            E-mail: service@qtech.com.cn"
    DESCRIPTION
            "The MIB module for the management of a group of
            devices called a 'cluster'.  A cluster comprises:

            1. A manager device, which is a device that can provide
               a single point of management (including SNMP, Web
               Console and CLI/Telnet Console) for the devices
               in the cluster;

            2. Zero or more expansion devicees, or called the
               cluster members throughout the context of this MIB,
               which are devices that can be managed via a manager
               device.  The manager device is also considered as a
               cluster member.  Thus it has an entry in the MIB tables
               defined below for cluster members.

            Only the manager device IP address, passwords, and SNMP
            community strings need to be configured in order to
            provide management access to members of the cluster.

            The Entity MIB is not cross-referenced from this MIB.

            To determine if a particular device can be a manager device
            or a member device please refer to the device's
            user's guide."
    REVISION  "201207010000Z"
    DESCRIPTION
            "Initial version of this mib."
    ::= { qtechMgmt 31 }

qtechClusterMIBObjects OBJECT IDENTIFIER ::= { qtechClusterMIB 1 }

-- MIB contains 7 groups

qtechClusterName OBJECT-TYPE
    SYNTAX        DisplayString (SIZE (0..31))
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
            "The name of the cluster.  Cluster command switch
             functionality is only enabled if this object is
             a string. a NULL string will create the cluster named 'cluster',
             This object and qtechClusterStatus in this MIB are
             the only objects that will be instantiated if the
             command switch functionality is not enabled.         
             This object in candidate switch is read-write, 
             and in candidate switch will return null
             string when retrive. But in member switch this object is
             read-only ."
    DEFVAL        { "" }
    ::= { qtechClusterMIBObjects 1 }

qtechClusterStatus OBJECT-TYPE
    SYNTAX    EnabledStatus
    MAX-ACCESS    read-write
    STATUS      current
    DESCRIPTION
            "if the role of device is manage device, the value set disable
             the manage device will delete the cluster,this command 
            can only be used on manage device delete cluster."
    DEFVAL { 1 }
   ::= { qtechClusterMIBObjects 2 }
   
qtechClusterCmdMacAddress OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The management MAC address of the manager device of the
             cluster, ie. the CPU MAC address.
             This object is not-accessible for candidate device."
    ::= { qtechClusterMIBObjects 3 }

qtechClusterCmdName OBJECT-TYPE
    SYNTAX        DisplayString
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
            "The name of the manager device of the cluster.
            This object is not-accessible for candidate device."
    ::= { qtechClusterMIBObjects 4 }

qtechClusterVlan OBJECT-TYPE
    SYNTAX      INTEGER(0..4094)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "For the vlan created by a cluster. After this value is altered, 
            the previous cluster will be deleted and a new cluster will be created 
            according to the newly value of vlan, when the value is set 0 ,the vlan
            will be get a idle vlan between 2049 and 3000"
    ::= { qtechClusterMIBObjects 5}

qtechClusterHopsLimit OBJECT-TYPE
    SYNTAX        INTEGER(1..16)
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
            "The hop counts between the farthest device and the manage device 
            in the topology discovery, namely, the scope of topology discovery. 
            Devices within this scope can be discovered by the manage device."
    DEFVAL        { 5}
    ::= { qtechClusterMIBObjects 6}

qtechClusterTimerTopo OBJECT-TYPE
    SYNTAX        INTEGER(10..300)
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
            "Set the timer time for cluster topology collect. This value ranges 
            from 10 to 300 (60 by default), and the unit is second."
    DEFVAL        { 60}
    ::= { qtechClusterMIBObjects 7}

qtechClusterTimerHello OBJECT-TYPE
    SYNTAX        INTEGER(10..300)
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
            "Set handshaking time administrator device and member device,This value ranges 
            from 10 to 300 (30 by default), and the unit is second."
    DEFVAL        { 30}
    ::= { qtechClusterMIBObjects 8 }

qtechClusterTimerHold OBJECT-TYPE
    SYNTAX        INTEGER(10..300)
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
            "Set holdtime of administrator device in the cluster,This value ranges 
            from 10 to 300 (90 by default), and the unit is second."
    DEFVAL        { 90}
    ::= { qtechClusterMIBObjects 9}

qtechClusterTftpServer OBJECT-TYPE
    SYNTAX        IpAddress
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
            "Set the shared TFTP server of the cluster. When the public network IP addresses
            are not set on member devices, use the TFTP agent service of the management device
            to upload or download files from the designated TFTP server."
    ::= { qtechClusterMIBObjects 10 }

qtechClusterNumberOfMembers OBJECT-TYPE
    SYNTAX        INTEGER(0..240)
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
            "The number of cluster member devices,The manager device is considered as a cluster
             member also. "
    DEFVAL        { 0}
    ::= { qtechClusterMIBObjects 11 }


qtechClusterMaxNumberOfMembers OBJECT-TYPE
    SYNTAX        INTEGER(0..240)
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
            "The maximum number of cluster member devices allowed in the
             cluster.  The manager device is considered as a cluster
             member also. "
    DEFVAL        { 0}
    ::= { qtechClusterMIBObjects 12 }

qtechClusterDevMaxCapicity OBJECT-TYPE
    SYNTAX        Unsigned32
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
            "The maximum number of cluster dev allowed in the
             cluster. the max number of cluster members is 512"
    DEFVAL        { 0}
    ::= { qtechClusterMIBObjects 13 }

qtechClusterAutoAdd OBJECT-TYPE
    SYNTAX        INTEGER {
                            disable-with-def(0),
                            enable(1),
                            disabled-with-static(2),
                            disabled-with-del(3)
                          }
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
            "Description the add Members method of Cluster.Set the value 1 to enable auto-add functionality.
            Set the value 0 or 3 to delete all auto-add Members by Cluster.
            The value 2 indicates that Cluster will change all Members to static."
    DEFVAL   { 1 }
    ::= { qtechClusterMIBObjects 14}

qtechClusterExplore OBJECT-TYPE
    SYNTAX       EnabledStatus
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
            "Collect topology information manually. This command improves 
            the convergence of the cluster topology. And this command 
            can only be used on manage device."
    DEFVAL { 2 }
    ::= { qtechClusterMIBObjects 15 }
  
qtechClusterSpecifyAdmin       OBJECT IDENTIFIER ::= { qtechClusterMIBObjects 16}

qtechClusterSpecifyAdminAddress OBJECT-TYPE
    SYNTAX       MacAddress
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
            "Specify the mac address of the cluster that the manage device ,
            And this command can only be used on member devices of the cluster 
            or the candidate devices of the cluster."
    ::= { qtechClusterSpecifyAdmin 1 }

qtechClusterSpecifyAdminName OBJECT-TYPE
    SYNTAX       DisplayString (SIZE (0..31))
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
            "Specify the name of the manage device of the cluster,
            And this command can only be used on member devices of the cluster 
            or the candidate devices of the cluster."
    ::= { qtechClusterSpecifyAdmin 2 }

-- The Cluster device info
qtechClusterDeviceInfo                          OBJECT IDENTIFIER ::= { qtechClusterMIBObjects 17}

qtechClusterDeviceEnable OBJECT-TYPE
    SYNTAX    EnabledStatus
    MAX-ACCESS    read-write
    STATUS      current
    DESCRIPTION
            "Wether the device can be added to a cluster, if this device
            is already in a cluster, will be delete from cluster(if in the
            cluster) and will never be added to any cluster."
    DEFVAL { 1 }
   ::= { qtechClusterDeviceInfo 1 }

qtechClusterDeviceRole OBJECT-TYPE
    SYNTAX       INTEGER {
                           candidateDevice(1),
                           managerDevice(2),
                           memberDevice(3)
                          }
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
            "The role of the device.  A device can become a member
             device only when it is added to the cluster at the manager
             device.  For devices that do not belong to any cluster,
             the qtechStatusClusterMode is set to 'candidateDevice'."
     DEFVAL { 1 }
    ::= { qtechClusterDeviceInfo 2 }

qtechClusterDeviceIP OBJECT-TYPE
    SYNTAX       IpAddress
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
            "The ip address of the device that specified by the manage device of the cluster"
    ::= { qtechClusterDeviceInfo 3 }

qtechClusterDeviceSn OBJECT-TYPE
    SYNTAX       INTEGER(1..240)
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
            "the uniquely identifies of the device of the cluster."
    ::= { qtechClusterDeviceInfo 4 }
    
    
    -- The Cluster Ip Pool table   
qtechClusterIpPoolTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF QtechClusterIpPoolEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "The table is used config the cluster ip address pool."
    ::= { qtechClusterMIBObjects 18 } 
    
qtechClusterIpPoolEntry OBJECT-TYPE
    SYNTAX      QtechClusterIpPoolEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "Entry items"
    INDEX { qtechClusterIpPool, qtechClusterIpMask }
    ::= { qtechClusterIpPoolTable 1 } 
    
QtechClusterIpPoolEntry ::=
      SEQUENCE {
               qtechClusterIpPool                   IpAddress,
               qtechClusterIpMask                     IpAddress,
               qtechClusterIpPoolRowStatus         RowStatus
      } 
      
qtechClusterIpPool OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "As the management ip-pool configured by Cluster is altered, the cluster will be deleted. 
             A new cluster will be created according to the newly ip-pool. the management ip-pool must be private address of enterprises10.0.0.0-10.255.255.255172.16.0.0-172.37.255.255192.168.0.0-192.168.255.255"
    ::= { qtechClusterIpPoolEntry 1 }  
    
qtechClusterIpMask OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "For the IP address mask created by a cluster. After this value is altered, 
            the previous cluster will be deleted and a new cluster will be created 
            according to the newly created cluster IP mask."
    ::= { qtechClusterIpPoolEntry 2 } 
    
qtechClusterIpPoolRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The row status of this table."
    ::= { qtechClusterIpPoolEntry 3 } 

--   The Cluster Member Add Table

qtechClusterMemberAddTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF QtechClusterMemberAddEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "The table of manage the member device of the cluster or assign uniquely identifies
            of the clsuter to any device"
    ::= { qtechClusterMIBObjects 19 }

qtechClusterMemberAddEntry OBJECT-TYPE
    SYNTAX      QtechClusterMemberAddEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            " The table of member add configuration identified by its 
            mac address and the member id."
    INDEX { qtechClusterMemberAddSn }
    ::= { qtechClusterMemberAddTable 1 }

QtechClusterMemberAddEntry ::=
      SEQUENCE {
                qtechClusterMemberAddSn                     INTEGER,
                qtechClusterMemberAddMacAddress               MacAddress,              
                qtechClusterMemberAddRowStatus              RowStatus
      }

qtechClusterMemberAddSn OBJECT-TYPE
    SYNTAX      INTEGER(0..240)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "An arbitrary value which uniquely identifies the
             cluster member device number. when the value set 0,
             the value of number will be specify a idle number beween 2 and 240,
             when the value set 1,the value is invalid."
    ::= { qtechClusterMemberAddEntry 1 }
qtechClusterMemberAddMacAddress OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
            "The MAC address of the member device."
    ::= { qtechClusterMemberAddEntry 2 }

qtechClusterMemberAddRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The row status of this table."
    ::= { qtechClusterMemberAddEntry 3 }

--    The Cluster Member Table

qtechClusterMemberTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF QtechClusterMemberEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "This table contains one row per cluster member,
            including the manager device."
    ::= { qtechClusterMIBObjects 20}

qtechClusterMemberEntry OBJECT-TYPE
    SYNTAX      QtechClusterMemberEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "An entry containing cluster management information
            applicable to a particular cluster member. If the
            entry contain the manager device, this entry cannot
            be modified."
    INDEX { qtechClusterMemberSn, qtechClusterMemberUpMAC, qtechClusterMemberLcIfx, qtechClusterMemberUpIfx}
    ::= { qtechClusterMemberTable 1 }

QtechClusterMemberEntry ::=
      SEQUENCE {
                qtechClusterMemberSn                       Unsigned32,
                qtechClusterMemberUpMAC                    MacAddress,
                qtechClusterMemberLcIfx                    Unsigned32,
                qtechClusterMemberUpIfx                    Unsigned32,
                qtechClusterMemberLcPort                   DisplayString,
                qtechClusterMemberUpPort                   DisplayString,
                qtechClusterMemberMacAddress               MacAddress,
                qtechClusterMemberName                     DisplayString,
                qtechClusterMemberIp                       IpAddress,
                qtechClusterMemberHops                     Unsigned32,
                qtechClusterMemberState                    DisplayString,      
                qtechClusterMemberUpSn                     Unsigned32,              
                qtechClusterMemberLastTopoUpdateTime       Unsigned32,
                qtechClusterMemberLastUdpUpdateTime        Unsigned32,
                qtechClusterMemberNoRecvTopoRspCount       Unsigned32,
                qtechClusterMemberNoRecvUdpRspCount        Unsigned32,
                qtechClusterMemberReload                   EnabledStatus
      }

qtechClusterMemberSn OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "An arbitrary value which uniquely identifies the
             cluster member device number. It ranges from 0 to
             qtechStatusMaxNumberOfMembers - 1. incluing the manager
             device."
    ::= { qtechClusterMemberEntry 1 }
    
qtechClusterMemberUpMAC OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The mac address of the uplink device of the cluster."
    ::= { qtechClusterMemberEntry 2 }
    
qtechClusterMemberLcIfx OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The interface index of port of the member device of the cluster."
    ::= { qtechClusterMemberEntry 3 }
    
qtechClusterMemberUpIfx OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The interface index of port of the uplink device of the cluster."
    ::= { qtechClusterMemberEntry 4 }
    
qtechClusterMemberLcPort OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The port member of the member device of the cluster."
    ::= { qtechClusterMemberEntry 5 }

qtechClusterMemberUpPort OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The port member of the uplink device of the cluster."
    ::= { qtechClusterMemberEntry 6 }
    
qtechClusterMemberMacAddress OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The management MAC address of the member device."
    ::= { qtechClusterMemberEntry 7 }

qtechClusterMemberName OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The name of the device."
    ::= { qtechClusterMemberEntry 8 }

qtechClusterMemberIp OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The private IP address of the member device of the cluster "
    ::= { qtechClusterMemberEntry 9 }

qtechClusterMemberHops OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The hop counts between the device and the management device 
            in the topology discovery."
    ::= { qtechClusterMemberEntry 10 }

qtechClusterMemberState OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The status of cluster management connectivity between
            the manage device and a cluster member. Cluster management
            connectivity is determined by the exchange of cluster
            management messages between the manage device and a
            cluster member. A member that has failed to exchange
            cluster management messages with the manage device is
            deemed to be inactive. Otherwise, it is deemed to be active."
    ::= { qtechClusterMemberEntry 11 }

qtechClusterMemberUpSn OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The uniquely identifies of the uplink device of the member device,
             if the uplink device of the member device is null,
             the qtechClusterMemberUpSn vlaue is 0."
    ::= { qtechClusterMemberEntry 12 }

qtechClusterMemberLastTopoUpdateTime OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The last time of the device for cluster topology collect."
    ::= { qtechClusterMemberEntry 13 }

qtechClusterMemberLastUdpUpdateTime OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The last update time of the member device of the cluster."
    ::= { qtechClusterMemberEntry 14 }

qtechClusterMemberNoRecvTopoRspCount OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The count that no receive the response of the topology collect of the member device."
    ::= { qtechClusterMemberEntry 15 }

qtechClusterMemberNoRecvUdpRspCount OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The count that no receive the response package of the hello time of the member device."
    ::= { qtechClusterMemberEntry 16 }
    
qtechClusterMemberReload OBJECT-TYPE
    SYNTAX      EnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "when the value is set enable,the member device will reboot."
    ::= { qtechClusterMemberEntry 17 }
--      The Cluster Candidate Table

qtechClusterCandidateTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF QtechClusterCandidateEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "This table contains one row per cluster candidate,
             A cluster candidate is a device that is currently
             eligible to be added to the cluster of a manager
             device.  A device is eligible if it satisfies the
             following conditions:
             1. It supports the cluster management protocol.


             The entries in this table and the entries in
             qtechMemberTable are mutually exclusive at all
             times.  That is, any device that is a cluster
             member never shows up in the qtechCandidateTable
             or is never a candidate at the same time .  Also, any
             candidate that shows up in qtechCandidateTable should not
             appear in qtechMemberTable."
    ::= { qtechClusterMIBObjects 21 }

qtechClusterCandidateEntry       OBJECT-TYPE
    SYNTAX      QtechClusterCandidateEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "An entry pertaining to a single candidate device."
    INDEX { qtechClusterCandidateMacAddress, qtechClusterCandidateUpMAC, qtechClusterCandidateLcIfx, qtechClusterCandidateUpIfx}
    ::= { qtechClusterCandidateTable 1 }

QtechClusterCandidateEntry ::= SEQUENCE {
        qtechClusterCandidateMacAddress            MacAddress,
        qtechClusterCandidateUpMAC                 MacAddress,
        qtechClusterCandidateLcIfx                 Unsigned32,
        qtechClusterCandidateUpIfx                 Unsigned32, 
        qtechClusterCandidateLcPort                DisplayString,
        qtechClusterCandidateUpPort                DisplayString,
        qtechClusterCandidateUpSn                  Unsigned32,    
        qtechClusterCandidateHops                  Unsigned32,
        qtechClusterCandidateState                 DisplayString
}

qtechClusterCandidateMacAddress OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The management MAC address of a device qualified to
             to be a cluster member of the manager device
             cluster."
    ::= { qtechClusterCandidateEntry 1 }
    
qtechClusterCandidateUpMAC OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The mac address of the uplink device of the candidate device."
    ::= { qtechClusterCandidateEntry 2 }
    
qtechClusterCandidateLcIfx OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The interface index of port of the candidate device of the cluster."
    ::= { qtechClusterCandidateEntry 3 }
    
qtechClusterCandidateUpIfx OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The interface index of port of the uplink device of the candidate device."
    ::= { qtechClusterCandidateEntry 4 }    

qtechClusterCandidateLcPort OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The port number of the candidate device of the cluster."
    ::= { qtechClusterCandidateEntry 5 }

qtechClusterCandidateUpPort OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The port number of the uplink device of the candidate device."
    ::= { qtechClusterCandidateEntry 6 }
    
qtechClusterCandidateUpSn OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The port number of the uplink device of the candidate device."
    ::= { qtechClusterCandidateEntry 7 }   
    
qtechClusterCandidateHops OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The hop counts between the candidate device and the management device 
            in the topology discovery."
    ::= { qtechClusterCandidateEntry 8 }
    
qtechClusterCandidateState OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The status of cluster management connectivity between
            the manage device and a cluster candidate. Cluster management
            connectivity is determined by the exchange of cluster
            management messages between the manage device and a
            cluster candidate member. A candidate member that has failed to exchange
            cluster management messages with the manage device is
            deemed to be inactive. Otherwise, it is deemed to be active."
    ::= { qtechClusterCandidateEntry 9 }
    
--    The Cluster blacklist Table

qtechClusterBlacklistTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF QtechClusterBlacklistEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "This table contains one row per cluster blacklist,
            the device is not permitted to join in any cluster
            in the black list table"
    ::= { qtechClusterMIBObjects 22}

qtechClusterBlacklistEntry       OBJECT-TYPE
    SYNTAX      QtechClusterBlacklistEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "An entry pertaining to a single device in blacklist table."
    INDEX { qtechClusterBlacklistMacAddress }
    ::= { qtechClusterBlacklistTable 1 }

QtechClusterBlacklistEntry ::= SEQUENCE {
      qtechClusterBlacklistMacAddress                MacAddress,
      qtechClusterBlackListRowStatus                 RowStatus
}

qtechClusterBlacklistMacAddress OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The management MAC address of a device which is
            in blacklist table ."
    ::= { qtechClusterBlacklistEntry 1 }

qtechClusterBlackListRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The status of the table."
    ::= { qtechClusterBlacklistEntry 2 }

--     The Cluster Password Auth Pool Table

qtechClusterPasswordAuth                    OBJECT IDENTIFIER ::= { qtechClusterMIBObjects 23}

qtechClusterPasswordAuthPoolTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF QtechClusterPasswordAuthPoolEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "This table shows current configurations for the password pool of the cluster."
    ::= { qtechClusterPasswordAuth 1 }

qtechClusterPasswordAuthPoolEntry       OBJECT-TYPE
    SYNTAX      QtechClusterPasswordAuthPoolEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "Entry items"
    INDEX { qtechClusterPasswordSn }
    ::= { qtechClusterPasswordAuthPoolTable 1 }

QtechClusterPasswordAuthPoolEntry ::= SEQUENCE {
      qtechClusterPasswordSn                    INTEGER,
      qtechClusterPassword                      DisplayString,
      qtechClusterPasswordAuthRowStatus        RowStatus
}

qtechClusterPasswordSn OBJECT-TYPE
    SYNTAX      INTEGER(1..16)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The uniquely identifies of the password pool of the cluster."
    ::= { qtechClusterPasswordAuthPoolEntry 1 }

qtechClusterPassword OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (1..126))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
            "The password of the password pool."
    ::= { qtechClusterPasswordAuthPoolEntry 2 }

qtechClusterPasswordAuthRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The status of the table."
    ::= { qtechClusterPasswordAuthPoolEntry 3}

--  The Cluster device auth password Tables

qtechClusterDeviceAuthPasswordTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF QtechClusterDeviceAuthPasswordEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "This table shows current configurations for the password of the cluster devices."
    ::= { qtechClusterPasswordAuth 2 }

qtechClusterDeviceAuthPasswordEntry       OBJECT-TYPE
    SYNTAX      QtechClusterDeviceAuthPasswordEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "Entry items"
    INDEX { qtechClusterDeviceMacAddress }
    ::= { qtechClusterDeviceAuthPasswordTable 1 }

QtechClusterDeviceAuthPasswordEntry ::= SEQUENCE {
      qtechClusterDeviceMacAddress                MacAddress,
      qtechClusterDevicePassword                DisplayString ,
      qtechClusterDevicePasswordRowStatus        RowStatus
}

qtechClusterDeviceMacAddress OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The mac address of the device."
    ::= { qtechClusterDeviceAuthPasswordEntry 1 }

qtechClusterDevicePassword OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (1..126))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
            " The auth password of the device."
    ::= { qtechClusterDeviceAuthPasswordEntry 2 }

qtechClusterDevicePasswordRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The status of the table."
    ::= { qtechClusterDeviceAuthPasswordEntry 3}

-- traps definition

qtechClusterTraps OBJECT IDENTIFIER ::= { qtechClusterMIB 2 }

qtechClusterMemberStateChangeTrap    NOTIFICATION-TYPE
                OBJECTS { qtechClusterMemberSn,qtechClusterMemberState}
                STATUS  current
                DESCRIPTION
                    "While the state of member device changed, then this trap will be sent.
                    The qtechClusterMemberState node is as follow, 1 indicates Ready status, 
                    2 indicates Active status, 3 indicates Connect status, 
                    and 4 indicates Disconnect status. The node value is as follow."
            ::= { qtechClusterTraps 1}

qtechClusterMemberFailureTrap    NOTIFICATION-TYPE
                OBJECTS {qtechClusterCandidateMacAddress}
                STATUS  current
                DESCRIPTION
                    "When a device add cluster failure, send a snmp trap to the network
                    management. then this trap will be sent."
            ::= { qtechClusterTraps 2}


qtechClusterDevMaximumAllowedTrap    NOTIFICATION-TYPE
                STATUS  current
                DESCRIPTION
                    "The number of cluster devices including candidates and members reaches the maximum allowed,
                    then this trap will be sent."
            ::= { qtechClusterTraps 3}
            
qtechClusterMemberMaximumAllowedTrap    NOTIFICATION-TYPE
                STATUS  current
                DESCRIPTION
                    "The number of cluster member including members reaches the maximum allowed,
                    then this trap will be sent."
            ::= { qtechClusterTraps 4}

-- Conformance Information

qtechClusterMIBConformance OBJECT IDENTIFIER ::= { qtechClusterMIB 3 }
qtechClusterMIBCompliances OBJECT IDENTIFIER
            ::= { qtechClusterMIBConformance 1 }
qtechClusterMIBGroups      OBJECT IDENTIFIER
            ::= { qtechClusterMIBConformance 2 }

-- Compliance statements

qtechClusterCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
            "The compliance statement for the CLUSTER MIB."
    MODULE  -- this module
    MANDATORY-GROUPS { qtechClusterStatusGroup,
                        qtechClusterMemberStatusGroup,
                        qtechClusterMemberGroup,
                        qtechClusterCandidateGroup,
                        qtechClusterMemberAddGroup,
                        qtechClusterBlackListGroup,
                        uijieClusterPasswordAuthPoolGroup,
                        qtechDeviceAuthPasswordGroup,
                        qtechClusterCandidateStatusGroup
                       }
    ::= { qtechClusterMIBCompliances 1 }

-- MIB groupings

qtechClusterStatusGroup  OBJECT-GROUP
    OBJECTS {
             qtechClusterName,
             qtechClusterCmdMacAddress,
             qtechClusterIpPool,
             qtechClusterIpMask,
             qtechClusterVlan,
             qtechClusterHopsLimit,
             qtechClusterHopsLimit,
             qtechClusterTimerTopo,
             qtechClusterTimerHello,
             qtechClusterTimerHold,
             qtechClusterTftpServer,
             qtechClusterNumberOfMembers,
             qtechClusterMaxNumberOfMembers,
             qtechClusterDevMaxCapicity
            }
    STATUS  current
    DESCRIPTION
            "The collection of objects which are used to represent
             the status of the cluster."
    ::= { qtechClusterMIBGroups 1 }

qtechClusterMemberStatusGroup OBJECT-GROUP
    OBJECTS {
            qtechClusterName,
            qtechClusterDeviceEnable,
            qtechClusterDeviceRole,
            qtechClusterDeviceIP,
            qtechClusterDeviceSn
            }
    STATUS  current
    DESCRIPTION
            "The collection of objects which are used to represent
             the status of the cluster member.  These objects are accessible
             on the cluster members and the manager device."
    ::= { qtechClusterMIBGroups 2 }

qtechClusterCandidateStatusGroup OBJECT-GROUP
    OBJECTS {
             qtechClusterName,
             qtechClusterDeviceRole,
             qtechClusterDeviceEnable
            }
    STATUS  current
    DESCRIPTION
            "The collection of objects which are used to represent
             the status of single devices which are not in any cluster.
             These objects are accessible on any single device."
    ::= { qtechClusterMIBGroups 3 }

qtechClusterMemberGroup    OBJECT-GROUP
    OBJECTS {
                qtechClusterMemberSn,
                qtechClusterMemberMacAddress,
                qtechClusterMemberLcIfx ,
                qtechClusterMemberUpIfx ,
                qtechClusterMemberLcPort,
                qtechClusterMemberUpPort,
                qtechClusterMemberName,
                qtechClusterMemberIp,
                qtechClusterMemberHops,
                qtechClusterMemberState,                
                qtechClusterMemberUpSn,
                qtechClusterMemberUpMAC,                
                qtechClusterMemberLastTopoUpdateTime,
                qtechClusterMemberLastUdpUpdateTime,
                qtechClusterMemberNoRecvTopoRspCount,
                qtechClusterMemberNoRecvUdpRspCount,
                qtechClusterMemberReload
            }
    STATUS  current
    DESCRIPTION
            "The collection of objects which are used to represent
             the members of a cluster."
    ::= { qtechClusterMIBGroups 4 }

qtechClusterCandidateGroup    OBJECT-GROUP
    OBJECTS {
                qtechClusterCandidateMacAddress,
                qtechClusterCandidateUpMAC,
                qtechClusterCandidateLcIfx,
                qtechClusterCandidateUpIfx, 
                qtechClusterCandidateLcPort,
                qtechClusterCandidateUpPort,
                qtechClusterCandidateHops,               
                qtechClusterCandidateUpSn,                   
                qtechClusterCandidateState                  
            }
    STATUS  current
    DESCRIPTION
            "The collection of objects which are used to represent
             cluster candidates.  These objects are accessible
             on the manager device only."
    ::= { qtechClusterMIBGroups 5 }

qtechClusterMemberAddGroup    OBJECT-GROUP
    OBJECTS {
             qtechClusterMemberAddMacAddress,
             qtechClusterMemberAddSn,
             qtechClusterMemberAddRowStatus
            }
    STATUS  current
    DESCRIPTION
            "The collection of objects which are used to represent
             cluster Member add operate.  These objects are accessible
             on the manager device only."
    ::= { qtechClusterMIBGroups 6 }

qtechClusterBlackListGroup    OBJECT-GROUP
    OBJECTS {
             qtechClusterBlacklistMacAddress
            }
    STATUS  current
    DESCRIPTION
            "The collection of objects which are used to represent
             cluster blackList.  These objects are accessible
             on the manager device only."
    ::= { qtechClusterMIBGroups 7 }

qtechClusterPasswordAuthPoolGroup    OBJECT-GROUP
    OBJECTS {
             qtechClusterPasswordSn,
             qtechClusterPassword
            }
    STATUS  current
    DESCRIPTION
            "The collection of objects which are used to represent
             cluster auth password pool.  These objects are accessible
             on the manager device only."
    ::= { qtechClusterMIBGroups 8 }

qtechClsuterDeviceAuthPasswordGroup    OBJECT-GROUP
    OBJECTS {
             qtechClusterDeviceMacAddress,
             qtechClusterDevicePassword
            }
    STATUS  current
    DESCRIPTION
            "The collection of objects which are used to represent
             cluster device auth Password.  These objects are accessible
             on the manager device only."
    ::= { qtechClusterMIBGroups 9 }

END
