-- *****************************************************************
-- QTECH-VSD-MIB.mib:  Qtech VSD MIB file
--
-- April 2014, YuShouhua
--
-- Copyright (c) 2014 by Qtech Networks Co.,Ltd.
-- All rights reserved.
-- 
-- *****************************************************************
--

QTECH-MIB-MIB DEFINITIONS ::= BEGIN

IMPORTS
        MODULE-IDENTITY,
        OBJECT-TYPE,
        NOTIFICATION-TYPE,
        Integer32
                FROM SNMPv2-SMI
        DisplayString,
        MacAddress
                FROM SNMPv2-TC
        MODULE-COMPLIANCE,
        OBJECT-GROUP,
        NOTIFICATION-GROUP
                FROM SNMPv2-CONF
        qtechMgmt
                FROM QTECH-SMI;

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

            E-mail: service@qtech.com.cn"
    DESCRIPTION
        "This module defines qtech VSD mibs."
    REVISION      "201404020000Z"
    DESCRIPTION
        "Initial version of this MIB module."
    ::= { qtechMgmt 129}

qtechVSDMIBObjects OBJECT IDENTIFIER ::= { qtechVSDMIB 1 }


--
-- VSD information
--

qtechVSDSupport OBJECT-TYPE
          SYNTAX Integer32
          MAX-ACCESS read-only
          STATUS current
          DESCRIPTION
              "This node describes whether to support VSD in this device. 0 for not support, 1 for support."
          ::= { qtechVSDMIBObjects 1 }
  
qtechVSDCurrentID OBJECT-TYPE
          SYNTAX Integer32
          MAX-ACCESS read-only
          STATUS current
          DESCRIPTION
              "The current VSD ID."
          ::= { qtechVSDMIBObjects 2 }
          
qtechVSDMaxNumber OBJECT-TYPE
          SYNTAX Integer32
          MAX-ACCESS read-only
          STATUS current
          DESCRIPTION
              "Max number of VSDs of the system permitting, including VSD 0.Only valid in VSD 0."
          ::= { qtechVSDMIBObjects 3 }
          
qtechVSDCurrentNumber OBJECT-TYPE
          SYNTAX Integer32
          MAX-ACCESS read-only
          STATUS current
          DESCRIPTION
              "The number of VSDs of this device at this time, including VSD 0. Only valid in VSD 0."
          ::= { qtechVSDMIBObjects 4 }   
          
qtechVSDMasterMac OBJECT-TYPE
          SYNTAX MacAddress
          MAX-ACCESS read-only
          STATUS current
          DESCRIPTION
              "The MAC address of this device."
          ::= { qtechVSDMIBObjects 5 }
          
qtechVSDCurrentMac OBJECT-TYPE
          SYNTAX MacAddress
          MAX-ACCESS read-only
          STATUS current
          DESCRIPTION
              "The MAC address of this VSD."
          ::= { qtechVSDMIBObjects 6 }
        
qtechVSDVituralSerial OBJECT-TYPE
        SYNTAX DisplayString (SIZE(0..32))
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The virtual serial number of this VSD."
        ::= { qtechVSDMIBObjects 7 }

qtechVSDMasterSerial OBJECT-TYPE
        SYNTAX DisplayString (SIZE(0..32))
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The serial number of this device."
        ::= { qtechVSDMIBObjects 8 }

qtechVSDInfoTable OBJECT-TYPE
        SYNTAX SEQUENCE OF QtechVSDInfoEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "List of VSDs."
        ::= { qtechVSDMIBObjects 9 }
        
qtechVSDInfoEntry OBJECT-TYPE
        SYNTAX QtechVSDInfoEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Entry of a VSD information. Only valid in VSD 0."
        INDEX { qtechVSDInfoIndex }
        ::= { qtechVSDInfoTable 1 }
    
QtechVSDInfoEntry ::=
        SEQUENCE {
           qtechVSDInfoIndex Integer32,
           qtechVSDValid Integer32,
           qtechVSDName DisplayString,
           qtechVSDMacAddress MacAddress,
           qtechVSDSerialNumber DisplayString,
           qtechVSDUniqueNumber DisplayString 
        }
        
qtechVSDInfoIndex OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "An unique value of each VSD in VSDInfoTable, equal to the value of VSD_ID + 1 . Its value ranges between
             1 and the value of the object qtechVSDMaxNumber."
        ::= { qtechVSDInfoEntry 1 }
              
qtechVSDValid OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Is this VSD valid. 0-for not valid,1-for valid"
        ::= { qtechVSDInfoEntry 2 }

qtechVSDName OBJECT-TYPE
        SYNTAX DisplayString (SIZE(0..32))
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Name of the vsd."
        ::= { qtechVSDInfoEntry 3 }
        
qtechVSDMacAddress OBJECT-TYPE
          SYNTAX  MacAddress
          MAX-ACCESS read-only
          STATUS current
          DESCRIPTION
              "The MAC address of VSD"
          ::= { qtechVSDInfoEntry 4 }

qtechVSDSerialNumber OBJECT-TYPE
        SYNTAX DisplayString (SIZE(1..32))
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Serial number of the device which this VSD belongs."
        ::= { qtechVSDInfoEntry 5 }

qtechVSDUniqueNumber OBJECT-TYPE
        SYNTAX DisplayString (SIZE(1..32))
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "A unique number of this VSD."
        ::= { qtechVSDInfoEntry 6 }

qtechVSDPortInfoTable OBJECT-TYPE
        SYNTAX SEQUENCE OF QtechVSDPortInfoEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "a list of port Entries."
        ::= { qtechVSDMIBObjects 10 }
    
qtechVSDPortInfoEntry OBJECT-TYPE
        SYNTAX QtechVSDPortInfoEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Entry containing VSD information about one port."
        INDEX { qtechVSDPortDevice,  qtechVSDPortSlot, qtechVSDPortSubslot, qtechVSDPortPortIdx}
        ::= { qtechVSDPortInfoTable 1 }

QtechVSDPortInfoEntry ::= 
        SEQUENCE {
             qtechVSDPortDevice Integer32,
             qtechVSDPortSlot Integer32,
             qtechVSDPortSubslot Integer32,
             qtechVSDPortPortIdx Integer32,
             qtechVSDPortIfIndex Integer32,
             qtechVSDPortVSDIndex Integer32
        }
    
qtechVSDPortDevice OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The device id of this port."
        ::= { qtechVSDPortInfoEntry 1 }

qtechVSDPortSlot OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The slot id of this port."
        ::= { qtechVSDPortInfoEntry 2 }

qtechVSDPortSubslot OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The sub slot id of this port. In switch, it always be 0."
        ::= { qtechVSDPortInfoEntry 3 }

qtechVSDPortPortIdx OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The port index of this port in this card."
        ::= { qtechVSDPortInfoEntry 4 }

qtechVSDPortIfIndex OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The If index of this port in VSD."
        ::= { qtechVSDPortInfoEntry 5 }
    
qtechVSDPortVSDIndex OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The index of VSD which this port belongs."
        ::= { qtechVSDPortInfoEntry 6 }
    
qtechVSDMIBTraps OBJECT IDENTIFIER ::= { qtechVSDMIB 2 }      

qtechVSDChgDesc OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS accessible-for-notify
        STATUS current
        DESCRIPTION
          "The description of VSD changes, such as creating a new VSD, removing a VSD, etc."
        ::= { qtechVSDMIBTraps 1 }       
        
qtechVSDStatusChange NOTIFICATION-TYPE
        OBJECTS   {qtechVSDChgDesc}
        STATUS     current
        DESCRIPTION
                "While status of the VSD changed, this trap will be sent. Only valid in VSD 0."
        ::= { qtechVSDMIBTraps 2 }           

qtechVSDPortChgDesc OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS accessible-for-notify
        STATUS current
        DESCRIPTION
          "The description of VSD port changes, such as alloc ports to VSD, etc."
        ::= { qtechVSDMIBTraps 3 }       
        
qtechVSDPortStatusChange NOTIFICATION-TYPE
        OBJECTS   {qtechVSDPortChgDesc}
        STATUS     current
        DESCRIPTION
                "While port status of the VSD changed, this trap will be sent. Only valid in VSD 0."
        ::= { qtechVSDMIBTraps 4 }        

-- conformance information

qtechVSDMIBConformance OBJECT IDENTIFIER ::= { qtechVSDMIB 3 }
qtechVSDMIBCompliances OBJECT IDENTIFIER ::= { qtechVSDMIBConformance 1 }
qtechVSDMIBGroups      OBJECT IDENTIFIER ::= { qtechVSDMIBConformance 2 }


-- compliance statements

qtechVSDMIBCompliance MODULE-COMPLIANCE
        STATUS  current
        DESCRIPTION
                "The compliance statement for entities which implement
                the Qtech VSD MIB"
        MODULE  -- this module
                 
                GROUP      qtechVSDInfoMIBGroup
                 DESCRIPTION
                     "VSD general information."  

                GROUP      qtechVSDDetailInfoMIBGroup
                 DESCRIPTION
                     "Information of each VSD"  
                 
                GROUP      qtechVSDPortInfoMIBGroup
                 DESCRIPTION
                     "VSD port infomation" 
                 
                GROUP      qtechVSDChgDescGroup
                 DESCRIPTION
                     "Objects for VSD change notification."  
                                      
                GROUP       qtechVSDMIBNotificationGroup
                DESCRIPTION
                     "VSD change notification."  
                     
        ::= { qtechVSDMIBCompliances 1 }        
                    
-- units of conformance

qtechVSDInfoMIBGroup OBJECT-GROUP
        OBJECTS {
          qtechVSDSupport,
          qtechVSDCurrentID,
          qtechVSDMaxNumber, 
          qtechVSDCurrentNumber,
          qtechVSDMasterMac,
          qtechVSDCurrentMac,
          qtechVSDVituralSerial,
          qtechVSDMasterSerial
        }
        STATUS  current
        DESCRIPTION
                "A collection of objects providing VSD information to a Qtech agent."
        ::= { qtechVSDMIBGroups 1 } 

qtechVSDDetailInfoMIBGroup OBJECT-GROUP
        OBJECTS {
           qtechVSDInfoIndex,
           qtechVSDValid,
           qtechVSDName,
           qtechVSDMacAddress,
           qtechVSDSerialNumber,
           qtechVSDUniqueNumber
        }
        STATUS  current
        DESCRIPTION
                "A collection of objects providing optional VSD information."
        ::= { qtechVSDMIBGroups 2 } 
        
qtechVSDPortInfoMIBGroup OBJECT-GROUP
        OBJECTS {
             qtechVSDPortDevice,
             qtechVSDPortSlot,
             qtechVSDPortSubslot,
             qtechVSDPortPortIdx,
             qtechVSDPortIfIndex,
             qtechVSDPortVSDIndex
        }
        STATUS  current
        DESCRIPTION
                "A collection of objects providing port information of VSDs."
        ::= { qtechVSDMIBGroups 3 }                
                               
qtechVSDChgDescGroup OBJECT-GROUP
        OBJECTS {
             qtechVSDChgDesc,
             qtechVSDPortChgDesc
        }
        STATUS  current
        DESCRIPTION
                "Objects that providing a literal description of VSD's change."
        ::= { qtechVSDMIBGroups 4 }             
        
qtechVSDMIBNotificationGroup NOTIFICATION-GROUP
        NOTIFICATIONS {
            qtechVSDStatusChange,
            qtechVSDPortStatusChange
        }
        STATUS        current
        DESCRIPTION
                "The collection of notifications which used to inform VSD general status information"
        ::= { qtechVSDMIBGroups 5}          

-- definitions in RFC 1213 made

        
END
      
