-- *******************************************************************
-- QTECH-VSU-MIB.mib: Qtech VSU MIB file
-- June 2011, linjincheng
--
-- Copyright (c) 2011 by Qtech Networks Co.,Ltd.
-- All rights reserved.
-- *******************************************************************
--
QTECH-VSU-MIB DEFINITIONS ::= BEGIN

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

qtechVsuMIB MODULE-IDENTITY
        LAST-UPDATED "201108290000Z"
        ORGANIZATION "$Company$"
        CONTACT-INFO
            " 
        Tel: $Telephone$

        E-mail: $E-mail$"
        DESCRIPTION
            "This module defines VSU management mibs."
        REVISION "201106210000Z"
        DESCRIPTION
            "Initial version of this MIB module."
    ::= { qtechMgmt 102 }

--********************************************************************
--                                                                  **
--                         VSU objects root                         **
--                                                                  **
--********************************************************************
qtechVsuMIBObjects OBJECT IDENTIFIER ::= { qtechVsuMIB 1 }


--***************** the VSU Topology nodes ********************
qtechVsuTopo OBJECT IDENTIFIER ::= { qtechVsuMIBObjects 1 }

qtechVsuTopoShape OBJECT-TYPE
        SYNTAX      INTEGER {
                        chain(1),
                        ring(2)
                    }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The VSU system topology shape"
    ::= { qtechVsuTopo 1 }

qtechVsuTopoConn OBJECT-TYPE
        SYNTAX      DisplayString
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The switch topology connection layout of the VSU system"
    ::= { qtechVsuTopo 2 }


--***************** the VSU device nodes *********************
qtechVsuDeviceInfo OBJECT IDENTIFIER ::= { qtechVsuMIBObjects 2 }

qtechVsuDomainID OBJECT-TYPE
        SYNTAX      INTEGER
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The VSU system domain ID"
    ::= { qtechVsuDeviceInfo 1 }

qtechVsuDeviceTable OBJECT-TYPE
        SYNTAX SEQUENCE OF  QtechVsuDeviceEntry
        MAX-ACCESS          not-accessible 
        STATUS              current         
        DESCRIPTION     
            "The whole device information in VSU system"
    ::= { qtechVsuDeviceInfo 2 }

qtechVsuDeviceEntry OBJECT-TYPE
        SYNTAX      QtechVsuDeviceEntry 
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "The device information entry"
        INDEX       { qtechVsuDeviceID }
    ::= { qtechVsuDeviceTable 1 }

QtechVsuDeviceEntry ::=
        SEQUENCE {
            qtechVsuDeviceID           INTEGER,   
            qtechVsuDeviceMac          MacAddress,
            qtechVsuDevicePri          INTEGER,
            qtechVsuDeviceDescr        DisplayString,
            qtechVsuDeviceStatus       INTEGER,
            qtechVsuDeviceRole         INTEGER
        }

qtechVsuDeviceID OBJECT-TYPE
        SYNTAX      INTEGER 
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The VSU system member device identifier"
    ::= { qtechVsuDeviceEntry 1 }

qtechVsuDeviceMac OBJECT-TYPE
        SYNTAX      MacAddress 
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The VSU system member device mac address"
    ::= { qtechVsuDeviceEntry 2 }

qtechVsuDevicePri OBJECT-TYPE
        SYNTAX      INTEGER 
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The VSU system member device priority"
    ::= { qtechVsuDeviceEntry 3 }

qtechVsuDeviceDescr OBJECT-TYPE
        SYNTAX      DisplayString 
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The VSU system member device description information"
    ::= { qtechVsuDeviceEntry 4 }

qtechVsuDeviceStatus OBJECT-TYPE
        SYNTAX      INTEGER {
                        ok(1),
                        recovery(2)
                    }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The VSU system member device status information"
    ::= { qtechVsuDeviceEntry 5 }

qtechVsuDeviceRole OBJECT-TYPE
        SYNTAX      INTEGER {
                        active(1),
                        standby(2),
                        candidate(3)
                    }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The VSU system member device role information"
    ::= { qtechVsuDeviceEntry 6 }


--***************** the VSU VSL nodes *********************
qtechVsuVsl OBJECT IDENTIFIER ::= { qtechVsuMIBObjects 3 }

qtechVsuVslPortTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF  QtechVsuVslPortEntry
        MAX-ACCESS          not-accessible 
        STATUS              current
        DESCRIPTION
            "The VSU VSL port members table"
    ::= { qtechVsuVsl 1 }

qtechVsuVslPortEntry OBJECT-TYPE
        SYNTAX      QtechVsuVslPortEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "The VSU VSL port members entry"
        INDEX       { qtechVsuVslPortIfIndex } 
    ::= { qtechVsuVslPortTable 1 }

QtechVsuVslPortEntry ::=
        SEQUENCE {
            qtechVsuVslPortIfIndex     INTEGER,       
            qtechVsuVslApIf            DisplayString,
            qtechVsuVslPortState       INTEGER,
            qtechVsuVslPortPeerIfIndex INTEGER
        }

qtechVsuVslPortIfIndex OBJECT-TYPE    
        SYNTAX      INTEGER
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The VSU VSL AP member port index"
    ::= { qtechVsuVslPortEntry 1 }
    
qtechVsuVslApIf OBJECT-TYPE    
        SYNTAX      DisplayString
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The VSU VSL AP interface name"
    ::= { qtechVsuVslPortEntry 2 }

qtechVsuVslPortState OBJECT-TYPE
        SYNTAX      INTEGER {
                        down(1),        
                        up(2),
                        ok(3),
                        disable(4),
                        aged(5)
                    }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The VSU VSL AP member port's state"
    ::= { qtechVsuVslPortEntry 3 }

qtechVsuVslPortPeerIfIndex OBJECT-TYPE
        SYNTAX      INTEGER
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The VSU VSL member port's peer port index"
    ::= { qtechVsuVslPortEntry 4 }
    
qtechVsuVslTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF  QtechVsuVslEntry
        MAX-ACCESS          not-accessible 
        STATUS              current
        DESCRIPTION
            "The VSU VSL AP table"
    ::= { qtechVsuVsl 2 }

qtechVsuVslEntry OBJECT-TYPE
        SYNTAX      QtechVsuVslEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "The VSU VSL AP entry"
        INDEX       { qtechVsuVslApIndex } 
    ::= { qtechVsuVslTable 1 }

QtechVsuVslEntry ::=
        SEQUENCE {   
            qtechVsuVslApIndex         INTEGER,
            qtechVsuVslApUptime        DisplayString
        }
    
qtechVsuVslApIndex OBJECT-TYPE    
        SYNTAX      INTEGER
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The VSU VSL AP index, which is computed by: (switch_id - 1) * 2 + vsl_ap_id"
    ::= { qtechVsuVslEntry 1 }

qtechVsuVslApUptime OBJECT-TYPE    
        SYNTAX      DisplayString
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The VSU VSL AP Up time"
    ::= { qtechVsuVslEntry 2 }


--***************** the VSU DAD nodes *********************
qtechVsuDad OBJECT IDENTIFIER ::= { qtechVsuMIBObjects 4 }

qtechVsuDadExIntfTable OBJECT-TYPE
        SYNTAX SEQUENCE OF  QtechVsuDadExIntfEntry
        MAX-ACCESS          not-accessible
        STATUS              current
        DESCRIPTION
            "The VSU dual-active excluded interface table"
    ::= { qtechVsuDad 1 }

qtechVsuDadExIntfEntry OBJECT-TYPE
        SYNTAX      QtechVsuDadExIntfEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "The VSU dual-active excluded interface entry"
        INDEX       { qtechVsuDadExIfIndex }
    ::= { qtechVsuDadExIntfTable 1 }

QtechVsuDadExIntfEntry ::=
        SEQUENCE {
            qtechVsuDadExIfIndex   INTEGER
        }

qtechVsuDadExIfIndex OBJECT-TYPE
        SYNTAX      INTEGER
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The VSU dual-active excluded interface index"
    ::= { qtechVsuDadExIntfEntry 1 }
    
qtechVsuDadAP OBJECT IDENTIFIER ::= { qtechVsuDad 2 }

qtechVsuDadAPEnable OBJECT-TYPE
        SYNTAX      INTEGER {
                        yes(1),
                        no(2)
                    }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Indicate weather DAD AP detection is enable"
    ::= { qtechVsuDadAP 1}
    
qtechVsuDadAPIfIndex OBJECT-TYPE
        SYNTAX      INTEGER
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The VSU DAD AP interface index"
    ::= { qtechVsuDadAP 2}
    
qtechVsuDadAPIfStatus OBJECT-TYPE    
        SYNTAX      INTEGER {
                        down(1),
                        up(2)
                    }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The VSU DAD AP interface status"
    ::= { qtechVsuDadAP 3 }

qtechVsuDadAPMemberIfTable  OBJECT-TYPE
        SYNTAX SEQUENCE OF  QtechVsuDadAPMemberIfEntry
        MAX-ACCESS          not-accessible
        STATUS              current
        DESCRIPTION
            "The VSU DAD AP member interface table"
    ::= { qtechVsuDadAP 4 }

qtechVsuDadAPMemberIfEntry OBJECT-TYPE
        SYNTAX      QtechVsuDadAPMemberIfEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "The VSU DAD AP member interface entry"
        INDEX {qtechVsuDadAPMemberIfindex}
    ::= { qtechVsuDadAPMemberIfTable 1 }

QtechVsuDadAPMemberIfEntry ::=
        SEQUENCE {
            qtechVsuDadAPMemberIfindex INTEGER,
            qtechVsuDadAPMemberIfStatus INTEGER
        }

qtechVsuDadAPMemberIfindex OBJECT-TYPE
        SYNTAX      INTEGER
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The VSU DAD AP member interface index"
    ::= { qtechVsuDadAPMemberIfEntry 1 }
    
qtechVsuDadAPMemberIfStatus OBJECT-TYPE
        SYNTAX      INTEGER {
                        down(1),
                        up(2)
                    }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The VSU DAD AP member interface status"
    ::= { qtechVsuDadAPMemberIfEntry 2 }

qtechVsuDadAPRelayIfTable OBJECT-TYPE
        SYNTAX SEQUENCE OF  QtechVsuDadAPRelayIfEntry
        MAX-ACCESS          not-accessible
        STATUS              current
        DESCRIPTION
            "The VSU DAD AP relay interface table"
    ::= { qtechVsuDadAP 5 }

qtechVsuDadAPRelayIfEntry OBJECT-TYPE
        SYNTAX      QtechVsuDadAPRelayIfEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "The VSU DAD AP relay interface entry"
        INDEX       { qtechVsuDadAPRelayIfIndex }
    ::= { qtechVsuDadAPRelayIfTable 1 }

QtechVsuDadAPRelayIfEntry ::=
        SEQUENCE {
            qtechVsuDadAPRelayIfIndex   INTEGER
        }

qtechVsuDadAPRelayIfIndex OBJECT-TYPE
        SYNTAX      INTEGER
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The VSU DAD AP relay interface index"
    ::= { qtechVsuDadAPRelayIfEntry 1 }
    
qtechVsuDadBFD OBJECT IDENTIFIER ::= { qtechVsuDad 3 }

qtechVsuDadBFDEnable OBJECT-TYPE
        SYNTAX      INTEGER {
                        yes(1),
                        no(2)
                    }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Indicate weather BFD detection is enable"
    ::= { qtechVsuDadBFD 1 }

qtechVsuDadBFDIfTable OBJECT-TYPE
        SYNTAX SEQUENCE OF  QtechVsuDadBFDIfEntry
        MAX-ACCESS          not-accessible
        STATUS              current
        DESCRIPTION
            "The VSU BFD interface table"
    ::= { qtechVsuDadBFD 2 }

qtechVsuDadBFDIfEntry OBJECT-TYPE
        SYNTAX      QtechVsuDadBFDIfEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "The VSU BFD interface entry"
        INDEX { 
            qtechVsuDadBFDIfIndex1,
            qtechVsuDadBFDIfIndex2
        }
    ::= { qtechVsuDadBFDIfTable 1 }

QtechVsuDadBFDIfEntry ::=
        SEQUENCE {
            qtechVsuDadBFDIfIndex1   INTEGER,
            qtechVsuDadBFDIfIndex2   INTEGER,
            qtechVsuDadBFDIfStatus   INTEGER
        }

qtechVsuDadBFDIfIndex1 OBJECT-TYPE    
        SYNTAX      INTEGER
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The VSU BFD interface index"
    ::= { qtechVsuDadBFDIfEntry 1 }
    
qtechVsuDadBFDIfIndex2 OBJECT-TYPE    
        SYNTAX      INTEGER
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The VSU BFD interface index"
    ::= { qtechVsuDadBFDIfEntry 2 }
    
qtechVsuDadBFDIfStatus OBJECT-TYPE    
        SYNTAX      INTEGER {
                        down(1),
                        up(2)
                    }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The VSU BFD interface status"
    ::= { qtechVsuDadBFDIfEntry 3 }
        
    
--***************** the VSU forward nodes *********************
qtechVsuForward OBJECT IDENTIFIER ::= { qtechVsuMIBObjects 5 }

qtechVsuForwardApllf OBJECT-TYPE
        SYNTAX      INTEGER {
                        on(1),
                        off(2)
                    }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Indicate weather AP local forward first is on"
    ::= { qtechVsuForward 1 }

qtechVsuForwardEcmpllf OBJECT-TYPE
        SYNTAX      INTEGER {
                        on(1),
                        off(2)
                    }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Indicate weather ECMP local forward first is on"
    ::= { qtechVsuForward 2 }


--******************* the VSU Version nodes *********************
qtechVsuVersion OBJECT-TYPE
        SYNTAX      DisplayString
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The VSU system version"
    ::= { qtechVsuMIBObjects 6 }


--********************************************************************
--                                                                  **
--                          traps nodes                             **
--                                                                  **
--********************************************************************
qtechVsuMIBTraps OBJECT IDENTIFIER ::= { qtechVsuMIB 2 }
qtechVsuTrapsNtfObjects OBJECT IDENTIFIER ::= { qtechVsuMIBTraps 1 } 

qtechVsuDeviceState OBJECT-TYPE    
        SYNTAX      INTEGER {
                        plugin(1),
                        remove(2)
                    }
        MAX-ACCESS  accessible-for-notify
        STATUS      current
        DESCRIPTION
            "The description of device change state"
    ::= { qtechVsuTrapsNtfObjects 1 }

qtechVsuSlotID OBJECT-TYPE    
        SYNTAX      INTEGER 
        MAX-ACCESS  accessible-for-notify
        STATUS      current
        DESCRIPTION
            "The description of slot id"
    ::= { qtechVsuTrapsNtfObjects 2 }

qtechVsuDadResult OBJECT-TYPE
        SYNTAX      INTEGER {
                        good(1),
                        bad(2)
                    }
        MAX-ACCESS  accessible-for-notify
        STATUS      current
        DESCRIPTION
            "The description of dual-active detection results"
    ::= { qtechVsuTrapsNtfObjects 3 }

qtechVsuTrapsNotifications OBJECT IDENTIFIER ::= { qtechVsuMIBTraps 2 }

qtechVsuNotifyTopoChange NOTIFICATION-TYPE
        OBJECTS     {
                        qtechVsuTopoShape
                    }
        STATUS      current
        DESCRIPTION
            "This notification is send by VSU master when topology shape change"
    ::= { qtechVsuTrapsNotifications 1 }
    
qtechVsuNotifyDeviceChange NOTIFICATION-TYPE
        OBJECTS     {
                        qtechVsuDeviceID,
                        qtechVsuDeviceState
                    }
        STATUS      current
        DESCRIPTION
            "This notification is send by VSU master when device plugin or remove"
    ::= { qtechVsuTrapsNotifications 2 }

qtechVsuNotifyDeviceRoleChange NOTIFICATION-TYPE
        OBJECTS     {
                        qtechVsuDeviceID,
                        qtechVsuSlotID,
                        qtechVsuDeviceRole
                    }
        STATUS      current
        DESCRIPTION
            "This notification is send by VSU master when device role change"
    ::= { qtechVsuTrapsNotifications 3 }

qtechVsuNotifyDad NOTIFICATION-TYPE
        OBJECTS     {
                        qtechVsuDadResult
                    }
        STATUS      current
        DESCRIPTION
            "This notification is send by VSU master when dual-active device detected"
    ::= { qtechVsuTrapsNotifications 4 }

--********************************************************************
--                                                                  **
--                conformance information                           **
--                                                                  **
--********************************************************************
qtechVsuMIBConformance OBJECT IDENTIFIER ::= { qtechVsuMIB 3}
qtechVsuMIBCompliances OBJECT IDENTIFIER ::= { qtechVsuMIBConformance 1}
qtechVsuMIBGroups OBJECT IDENTIFIER ::= { qtechVsuMIBConformance 2}

--***************** compliance information ********************
qtechVsuMIBCompliance MODULE-COMPLIANCE
        STATUS current
        DESCRIPTION
            "The compliance statement for entities which implement the Qtech VSU"
        MODULE 
            MANDATORY-GROUPS { qtechVsuMIBObjectsGroup, qtechVsuMIBTrapsGroup }  
    ::= { qtechVsuMIBCompliances 1 }

--***************** units of conformance ********************
qtechVsuMIBObjectsGroup OBJECT-GROUP
        OBJECTS {
            qtechVsuTopoShape,
            qtechVsuTopoConn,
            qtechVsuDomainID,
            qtechVsuDeviceID,
            qtechVsuDeviceMac,
            qtechVsuDevicePri,
            qtechVsuDeviceDescr,
            qtechVsuDeviceStatus,
            qtechVsuDeviceRole,
            qtechVsuVslPortIfIndex,
            qtechVsuVslApIf,
            qtechVsuVslPortState,
            qtechVsuVslPortPeerIfIndex,
            qtechVsuVslApUptime,
            qtechVsuDadExIfIndex,
            qtechVsuDadAPEnable,
            qtechVsuDadAPIfIndex,
            qtechVsuDadAPIfStatus,
            qtechVsuDadAPMemberIfindex,
            qtechVsuDadAPMemberIfStatus,
            qtechVsuDadAPRelayIfIndex,
            qtechVsuDadBFDEnable,
            qtechVsuDadBFDIfIndex1,
            qtechVsuDadBFDIfIndex2,
            qtechVsuDadBFDIfStatus,
            qtechVsuForwardApllf,
            qtechVsuForwardEcmpllf,
            qtechVsuVersion,
            qtechVsuDeviceState,
            qtechVsuSlotID,
            qtechVsuDadResult
        }
        STATUS  current
        DESCRIPTION
            "A collection of objects providing VSU running status to a Qtech agent"
    ::= { qtechVsuMIBGroups 1 }

qtechVsuMIBTrapsGroup NOTIFICATION-GROUP
        NOTIFICATIONS {
            qtechVsuNotifyTopoChange,
            qtechVsuNotifyDeviceChange,
            qtechVsuNotifyDeviceRoleChange,
            qtechVsuNotifyDad
        }
        STATUS current
        DESCRIPTION 
            "A collection of traps providing VSU running status to a Qtech agent"
    ::= { qtechVsuMIBGroups 2 }

END

