-- *****************************************************************
-- QTECH-GVRP-MIB.mib:  Qtech Gvrp MIB file
--
-- March 2002, Wuzg
--
-- Copyright (c) 2002 by Qtech Networks Co.,Ltd.
-- All rights reserved.
-- 
-- *****************************************************************
--

QTECH-GVRP-MIB DEFINITIONS ::= BEGIN

IMPORTS
        MODULE-IDENTITY,
        OBJECT-TYPE,
        Integer32,
        Counter32
                FROM SNMPv2-SMI
        VlanId
                FROM Q-BRIDGE-MIB
        --DisplayString
        --        FROM SNMPv2-TC
        MODULE-COMPLIANCE,
        OBJECT-GROUP
                FROM SNMPv2-CONF
        --ConfigStatus,
        --MemberMap,
        IfIndex
                FROM QTECH-TC
        EnabledStatus 
                FROM P-BRIDGE-MIB
        qtechMgmt
                FROM QTECH-SMI;
        --qtechVlanMIBObjects
        --        FROM QTECH-VLAN-MIB;
                

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

                E-mail: service@qtech.com.cn"
        DESCRIPTION
                "This module defines qtech Gvrp(Statistical Processing and Analysis)mibs."
        REVISION      "200203200000Z"
        DESCRIPTION
                "Initial version of this MIB module."
        ::= { qtechMgmt 25}

qtechGvrpMIBObjects OBJECT IDENTIFIER ::= { qtechGvrpMIB 1 }


qtechGvrpStatus OBJECT-TYPE
    SYNTAX  EnabledStatus
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
              "Gvrp management function status."
    DEFVAL { disabled }               
         ::={ qtechGvrpMIBObjects 1 }

qtechGvrpDynamicVlanCreateStauts OBJECT-TYPE
    SYNTAX  EnabledStatus
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
              "To control wheather dynamic vlan creation is enabled."
    DEFVAL { disabled }               
         ::={ qtechGvrpMIBObjects 2 }


qtechGvrpJoinTimer OBJECT-TYPE
    SYNTAX  Integer32
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
              "To control Gvrp join timer."
    DEFVAL { 200 }                
         ::={ qtechGvrpMIBObjects 3 }
         
qtechGvrpLeaveTimer  OBJECT-TYPE
    SYNTAX  Integer32
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
              "To control Gvrp leave timer."
    DEFVAL { 600 }                
         ::={ qtechGvrpMIBObjects 4 }

qtechGvrpLeaveAllTimer OBJECT-TYPE
    SYNTAX  Integer32
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
              "To control Gvrp leave all timer."
    DEFVAL { 10000 }                
         ::={ qtechGvrpMIBObjects 5 }
         
qtechGvrpTable OBJECT-TYPE
        SYNTAX SEQUENCE OF QtechGvrpEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "list of  Gvrp configuration objects."
        ::= { qtechGvrpMIBObjects 6 }
    
qtechGvrpEntry OBJECT-TYPE
        SYNTAX QtechGvrpEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Entry contains Gvrp configuration objects."
        INDEX { qtechGvrpIfIndex}
        ::= { qtechGvrpTable 1 }

QtechGvrpEntry ::=
        SEQUENCE {
            qtechGvrpIfIndex IfIndex,
            qtechGvrpRegistrationMode EnabledStatus,
            qtechGvrpApplicantState EnabledStatus
        }
        
qtechGvrpIfIndex OBJECT-TYPE
        SYNTAX IfIndex
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            " "
        ::= { qtechGvrpEntry 1 }
                                           
qtechGvrpRegistrationMode OBJECT-TYPE
        SYNTAX EnabledStatus
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Registration mode of gvrp for a port."
  DEFVAL { enabled }                
        ::= { qtechGvrpEntry 2 }
                            
qtechGvrpApplicantState OBJECT-TYPE
        SYNTAX EnabledStatus
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Applicant state of gvrp for a port."
  DEFVAL { enabled }                
        ::= { qtechGvrpEntry 3 }        


qtechGvrpStatsTable OBJECT-TYPE
        SYNTAX SEQUENCE OF QtechGvrpStatsEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "list of statistics of every port."
        ::= { qtechGvrpMIBObjects 7 }
    
qtechGvrpStatsEntry OBJECT-TYPE
        SYNTAX QtechGvrpStatsEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Entry contains Gvrp statistics."
        INDEX { qtechGvrpStatsIfIndex }
        ::= { qtechGvrpStatsTable 1 }

QtechGvrpStatsEntry ::=
        SEQUENCE {
            qtechGvrpStatsIfIndex IfIndex,
            qtechGvrpRecValidGvrpPdu  Counter32,
            qtechGvrpRecInvalidGvrpPdu Counter32,
            qtechGvrpRecJoin Counter32,
            qtechGvrpRecJoinIn Counter32,
            qtechGvrpRecEmpty Counter32,
            qtechGvrpRecLeaveEmpty Counter32,
            qtechGvrpRecLeaveIn Counter32,
            qtechGvrpRecLeaveAll Counter32,
            qtechGvrpSentGvrpPdu Counter32,
            qtechGvrpSentJoin Counter32,
            qtechGvrpSentJoinIn Counter32,
            qtechGvrpSentEmpty Counter32,
            qtechGvrpSentLeaveEmpty Counter32,
            qtechGvrpSentLeaveIn Counter32,
            qtechGvrpSentLeaveAll Counter32,
            qtechGvrpJoinIndicated Counter32,
            qtechGvrpLeaveIndicated Counter32,
            qtechGvrpJoinPropagated Counter32,
            qtechGvrpLeavePropagated Counter32,
            qtechGvrpStatisticsPortClear Integer32
        }
        
qtechGvrpStatsIfIndex OBJECT-TYPE
        SYNTAX IfIndex
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            " "
        ::= { qtechGvrpStatsEntry 1 }
                                           
qtechGvrpRecValidGvrpPdu OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The total number of valid GVRP PDU received."
        ::= { qtechGvrpStatsEntry 2 }

qtechGvrpRecInvalidGvrpPdu OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The total number of invalid GVRP PDU received."
        ::= { qtechGvrpStatsEntry 3 }
        
qtechGvrpRecJoin OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The total number of join message received."
        ::= { qtechGvrpStatsEntry 4 }
        
qtechGvrpRecJoinIn OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The total number of join in message received."
        ::= { qtechGvrpStatsEntry 5 }

qtechGvrpRecEmpty OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The total number of empty message received."
        ::= { qtechGvrpStatsEntry 6 }

qtechGvrpRecLeaveEmpty OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The total number of leave message received."
        ::= { qtechGvrpStatsEntry 7 }

qtechGvrpRecLeaveIn OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The total number of leave in message received."
        ::= { qtechGvrpStatsEntry 8 }

qtechGvrpRecLeaveAll OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The total number of leave all message received."
        ::= { qtechGvrpStatsEntry 9 }

qtechGvrpSentGvrpPdu OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The total number of GVRP PDU sent."
        ::= { qtechGvrpStatsEntry 10 }

qtechGvrpSentJoin OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The total number of join message sent."
        ::= { qtechGvrpStatsEntry 11 }

qtechGvrpSentJoinIn OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The total number of join in message sent."
        ::= { qtechGvrpStatsEntry 12 }

qtechGvrpSentEmpty OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The total number of empty message sent."
        ::= { qtechGvrpStatsEntry 13 }

qtechGvrpSentLeaveEmpty OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The total number of leave message sent."
        ::= { qtechGvrpStatsEntry 14 }

qtechGvrpSentLeaveIn OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The total number of leave in message sent."
        ::= { qtechGvrpStatsEntry 15 }

qtechGvrpSentLeaveAll OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The total number of leave all message sent."
        ::= { qtechGvrpStatsEntry 16 }

qtechGvrpJoinIndicated OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The total number of join indicated message."
        ::= { qtechGvrpStatsEntry 17 }

qtechGvrpLeaveIndicated OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The total number of Leave indicated message."
        ::= { qtechGvrpStatsEntry 18 }

qtechGvrpJoinPropagated OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The total number of join propagated message."
        ::= { qtechGvrpStatsEntry 19 }

qtechGvrpLeavePropagated OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The total number of leave propagated message."
        ::= { qtechGvrpStatsEntry 20 }

qtechGvrpStatisticsPortClear OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "This object allow of clearing gvrp statistics. 
            set its value to any but 0, will cause agent clear
            gvrp statistics, set it to 0 will cause no action." 
        ::= { qtechGvrpStatsEntry 21 }
        
qtechGvrpOperVid  OBJECT-TYPE
    SYNTAX  VlanId
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
              "The vid of vlan where gvrp currently operate in."
    DEFVAL { 1 }                
         ::={ qtechGvrpMIBObjects 8 }
         
qtechGvrpStatisticsClear  OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
            "This object allow of clearing all gvrp statistics. 
            set its value to any but 0, will cause agent clear
            all gvrp statistics, set it to 0 will cause no action." 
         ::={ qtechGvrpMIBObjects 9 }
         
qtechGvrpResetTimer  OBJECT-TYPE
    SYNTAX  VlanId
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
              "This object allow of clearing gvrp timer(join,leave,leave) 
            set its value to any but 0, will cause agent clear
            gvrp timer, set it to 0 will cause no action."
         ::={ qtechGvrpMIBObjects 10 }

        

--qtechVlanIfStateTable OBJECT-TYPE
--        SYNTAX SEQUENCE OF QtechVlanIfStateEntry
--        MAX-ACCESS not-accessible
--        STATUS current
--        DESCRIPTION
--            "port vlan state table."
--        ::= { qtechVlanMIBObjects 6 }
    
--qtechVlanIfStateEntry OBJECT-TYPE
--        SYNTAX QtechVlanIfStateEntry
--        MAX-ACCESS not-accessible
--        STATUS current
--        DESCRIPTION
--          "list of registration state of a vlan of a port."
--      INDEX { qtechVlanIfStateVid,qtechVlanIfStateIndex}
--    ::= { qtechVlanIfStateTable 1 }
--
--QtechVlanIfStateEntry ::=
--        SEQUENCE {
--        qtechVlanIfStateVid VlanId,
--        qtechVlanIfStateIndex   IfIndex,
--        qtechVlanIfState     INTEGER
--        }    
--    
--qtechVlanIfStateVid OBJECT-TYPE
--        SYNTAX VlanId
--        MAX-ACCESS not-accessible
--        STATUS current
--        DESCRIPTION
--            "VID of vlan ."
--        ::= { qtechVlanIfStateEntry 1 }  

--qtechVlanIfStateIndex OBJECT-TYPE
--        SYNTAX IfIndex
--        MAX-ACCESS not-accessible
--        STATUS current
--        DESCRIPTION
--            " "
--        ::= { qtechVlanIfStateEntry 2 }          

--qtechVlanIfState OBJECT-TYPE
--        SYNTAX INTEGER{
--          dynamic(1),
--          static(2)
--  }         
--        MAX-ACCESS read-only
--        STATUS current
--        DESCRIPTION
--            "The registration state of a port of a vlan ."
--        ::= { qtechVlanIfStateEntry 3 }    

--qtechVlanDynTable OBJECT-TYPE
--        SYNTAX SEQUENCE OF QtechVlanDynEntry
--        MAX-ACCESS not-accessible
--        STATUS current
--        DESCRIPTION
--            "vlan table."
--        ::= { qtechVlanMIBObjects 7 }
    
--qtechVlanDynEntry OBJECT-TYPE
--        SYNTAX QtechVlanDynEntry
--        MAX-ACCESS not-accessible
--        STATUS current
--        DESCRIPTION
--            "list of vlan and it's distribution table."
--        INDEX { qtechVlanDynVID }
--        ::= { qtechVlanDynTable 1 }
    
--QtechVlanDynEntry ::=
--        SEQUENCE {
--        qtechVlanDynVID VlanId,
--        qtechVlanDynPortMemberAction MemberMap,
--        qtechVlanDynApMemberAction MemberMap,
--        qtechVlanDynAlias DisplayString,
--        qtechVlanDynEntryStatus ConfigStatus
--        }
    
--qtechVlanDynVID OBJECT-TYPE
--        SYNTAX VlanId
--        MAX-ACCESS read-only
--        STATUS current
--        DESCRIPTION
--            "VID of vlan that is dynamic vlan which includes only dynamic or static 
--            vlan which includes dynamic members."
--        ::= { qtechVlanDynEntry 1 }
 
--qtechVlanDynPortMemberAction OBJECT-TYPE
--        SYNTAX MemberMap
--        MAX-ACCESS read-only
--        STATUS current
--        DESCRIPTION
--            "Each octet in member map assigned to a physical port, the value of
--             the octect indicates the action of a physical port in the
--             vlan. Drop(1) indicate that the vlan doesn't include this physical port, 
--             Add(2) indicate that the vlan include this physical port."
--        ::= { qtechVlanDynEntry 2 }
        
--qtechVlanDynApMemberAction OBJECT-TYPE
--        SYNTAX MemberMap
--        MAX-ACCESS read-only
--        STATUS current
--        DESCRIPTION
--            "Each octet in member map assigned to a aggreate port, the value of
--             the octect indicates the action of a aggreate port in the
--            vlan. Drop(1) indicate that the vlan doesn't include this physical port, 
--             Add(2) indicate that the vlan include this physical port."
--        ::= { qtechVlanDynEntry 3 }        
        
--qtechVlanDynAlias OBJECT-TYPE
--        SYNTAX DisplayString (SIZE (0..32))
--        MAX-ACCESS read-only
--        STATUS current
--        DESCRIPTION
--            "Vlan's alias ."
--        DEFVAL{""}   
--        ::= { qtechVlanDynEntry 4 }
                
--qtechVlanDynEntryStatus OBJECT-TYPE
--        SYNTAX ConfigStatus
--        MAX-ACCESS read-only
--        STATUS current
--        DESCRIPTION
--            "Status of this entry."
--        ::= { qtechVlanDynEntry 5 }

qtechGvrpMIBConformance OBJECT IDENTIFIER ::= { qtechGvrpMIB 2 }
qtechGvrpMIBCompliances OBJECT IDENTIFIER ::= { qtechGvrpMIBConformance 1 }
qtechGvrpMIBGroups      OBJECT IDENTIFIER ::= { qtechGvrpMIBConformance 2 }


-- compliance statements

qtechGvrpMIBCompliance MODULE-COMPLIANCE
        STATUS  current
        DESCRIPTION
                "The compliance statement for entities which implement
                the Gvrp MIB"
        MODULE  -- this module
                MANDATORY-GROUPS { qtechGvrpMIBGroup ,qtechGvrpStatsMIBGroup
                 }
        ::= { qtechGvrpMIBCompliances 1 }
                
-- units of conformance

qtechGvrpMIBGroup OBJECT-GROUP
        OBJECTS {
            qtechGvrpStatus,
            qtechGvrpDynamicVlanCreateStauts,            
            qtechGvrpJoinTimer,
            qtechGvrpLeaveTimer,
            qtechGvrpLeaveAllTimer,
--            qtechGvrpIfIndex,
            qtechGvrpRegistrationMode,
            qtechGvrpApplicantState
--        qtechVlanIfStateVid,
--        qtechVlanIfStateIndex,
--      qtechVlanIfState
        }
        STATUS  current
        DESCRIPTION
                "A collection of objects providing Gvrp configuration."
        ::= { qtechGvrpMIBGroups 1 }      
           
qtechGvrpStatsMIBGroup OBJECT-GROUP
        OBJECTS {
--            qtechGvrpStatsIfIndex,
            qtechGvrpRecValidGvrpPdu,
            qtechGvrpRecInvalidGvrpPdu,
            qtechGvrpRecJoin, 
            qtechGvrpRecJoinIn, 
            qtechGvrpRecEmpty,
            qtechGvrpRecLeaveEmpty,
            qtechGvrpRecLeaveIn,
            qtechGvrpRecLeaveAll,
            qtechGvrpSentGvrpPdu,
            qtechGvrpSentJoin,
            qtechGvrpSentJoinIn,
            qtechGvrpSentEmpty,
            qtechGvrpSentLeaveEmpty,
            qtechGvrpSentLeaveIn,
            qtechGvrpSentLeaveAll,
            qtechGvrpJoinIndicated,
            qtechGvrpLeaveIndicated,
            qtechGvrpJoinPropagated,
            qtechGvrpLeavePropagated,
            qtechGvrpStatisticsPortClear
        }
        STATUS  current
        DESCRIPTION
                "A collection of statics of GVRP."
        ::= { qtechGvrpMIBGroups 2 }   
        
                
END
