-- *****************************************************************
-- MY-Gvrp-MIB.mib:  My Gvrp MIB file
--
-- $Copyright$
-- 
-- *****************************************************************
--

MY-GVRP-MIB DEFINITIONS ::= BEGIN

IMPORTS
        MODULE-IDENTITY,
        OBJECT-TYPE,
        NOTIFICATION-TYPE,
        Integer32,
        Counter32,
        IpAddress
                FROM SNMPv2-SMI
        VlanId
                FROM Q-BRIDGE-MIB
        TruthValue,
        DisplayString,
        RowStatus,
        MacAddress
                FROM SNMPv2-TC
        MODULE-COMPLIANCE,
        OBJECT-GROUP,
        NOTIFICATION-GROUP
                FROM SNMPv2-CONF
        ConfigStatus,
        MemberMap,
        IfIndex
                FROM MY-TC
        EnabledStatus 
                FROM P-BRIDGE-MIB
        myMgmt
                FROM MY-SMI
	myVlanMIBObjects                
		FROM MY-VLAN-MIB;
                

myGvrpMIB MODULE-IDENTITY
        LAST-UPDATED "200203200000Z"
        ORGANIZATION "$Company$"
        CONTACT-INFO
                " 
                Tel: $Telephone$ 

                E-mail: $E-mail$"
        DESCRIPTION
                "This module defines my Gvrp(Statistical Processing and Analysis)mibs."
        REVISION      "200203200000Z"
        DESCRIPTION
                "Initial version of this MIB module."
        ::= { myMgmt 25}

myGvrpMIBObjects OBJECT IDENTIFIER ::= { myGvrpMIB 1 }


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

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


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

myGvrpLeaveAllTimer OBJECT-TYPE
    SYNTAX  Integer32
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
              "To control Gvrp leave all timer."
    DEFVAL { 10000 }	              
         ::={ myGvrpMIBObjects 5 }
         
myGvrpTable OBJECT-TYPE
        SYNTAX SEQUENCE OF MyGvrpEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "list of  Gvrp configuration objects."
        ::= { myGvrpMIBObjects 6 }
    
myGvrpEntry OBJECT-TYPE
        SYNTAX MyGvrpEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Entry contains Gvrp configuration objects."
        INDEX { myGvrpIfIndex}
        ::= { myGvrpTable 1 }

MyGvrpEntry ::=
        SEQUENCE {
            myGvrpIfIndex IfIndex,
            myGvrpRegistrationMode INTEGER,
            myGvrpApplicantState INTEGER
        }
        
myGvrpIfIndex OBJECT-TYPE
        SYNTAX IfIndex
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            " "
        ::= { myGvrpEntry 1 }
                                           
myGvrpRegistrationMode OBJECT-TYPE
        SYNTAX EnabledStatus
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Registration mode of gvrp for a port."
	DEFVAL { enabled }	              
        ::= { myGvrpEntry 2 }
                            
myGvrpApplicantState OBJECT-TYPE
        SYNTAX EnabledStatus
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Applicant state of gvrp for a port."
	DEFVAL { enabled }	              
        ::= { myGvrpEntry 3 }        


myGvrpStatsTable OBJECT-TYPE
        SYNTAX SEQUENCE OF MyGvrpStatsEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "list of statistics of every port."
        ::= { myGvrpMIBObjects 7 }
    
myGvrpStatsEntry OBJECT-TYPE
        SYNTAX MyGvrpStatsEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Entry contains Gvrp statistics."
        INDEX { myGvrpStatsIfIndex }
        ::= { myGvrpStatsTable 1 }

MyGvrpStatsEntry ::=
        SEQUENCE {
            myGvrpStatsIfIndex IfIndex,
            myGvrpRecValidGvrpPdu  Counter32,
            myGvrpRecInvalidGvrpPdu Counter32,
            myGvrpRecJoin Counter32,
            myGvrpRecJoinIn Counter32,
            myGvrpRecEmpty Counter32,
            myGvrpRecLeaveEmpty Counter32,
            myGvrpRecLeaveIn Counter32,
            myGvrpRecLeaveAll Counter32,
            myGvrpSentGvrpPdu Counter32,
            myGvrpSentJoin Counter32,
            myGvrpSentJoinIn Counter32,
            myGvrpSentEmpty Counter32,
            myGvrpSentLeaveEmpty Counter32,
            myGvrpSentLeaveIn Counter32,
            myGvrpSentLeaveAll Counter32,
            myGvrpJoinIndicated Counter32,
            myGvrpLeaveIndicated Counter32,
            myGvrpJoinPropagated Counter32,
            myGvrpLeavePropagated Counter32,
            myGvrpStatisticsPortClear Integer32
        }
        
myGvrpStatsIfIndex OBJECT-TYPE
        SYNTAX IfIndex
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            " "
        ::= { myGvrpStatsEntry 1 }
                                           
myGvrpRecValidGvrpPdu OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The total number of valid GVRP PDU received."
        ::= { myGvrpStatsEntry 2 }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

myGvrpStatisticsPortClear 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." 
        ::= { myGvrpStatsEntry 21 }
        
myGvrpOperVid  OBJECT-TYPE
    SYNTAX  VlanId
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
              "The vid of vlan where gvrp currently operate in."
    DEFVAL { 1 }	              
         ::={ myGvrpMIBObjects 8 }
         
myGvrpStatisticsClear  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." 
         ::={ myGvrpMIBObjects 9 }
         
myGvrpResetTimer  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."
         ::={ myGvrpMIBObjects 10 }

        

myVlanIfStateTable OBJECT-TYPE
        SYNTAX SEQUENCE OF MyVlanIfStateEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "port vlan state table."
        ::= { myVlanMIBObjects 6 }
    
myVlanIfStateEntry OBJECT-TYPE
        SYNTAX MyVlanIfStateEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "list of registration state of a vlan of a port."
        INDEX { myVlanIfStateVid,myVlanIfStateIndex}
        ::= { myVlanIfStateTable 1 }
    
MyVlanIfStateEntry ::=
        SEQUENCE {
        myVlanIfStateVid VlanId,
        myVlanIfStateIndex   IfIndex,
        myVlanIfState   	INTEGER
        }    
    
myVlanIfStateVid OBJECT-TYPE
        SYNTAX VlanId
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "VID of vlan ."
        ::= { myVlanIfStateEntry 1 }  

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

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

myVlanDynTable OBJECT-TYPE
        SYNTAX SEQUENCE OF MyVlanDynEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "vlan table."
        ::= { myVlanMIBObjects 7 }
    
myVlanDynEntry OBJECT-TYPE
        SYNTAX MyVlanDynEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "list of vlan and it's distribution table."
        INDEX { myVlanDynVID }
        ::= { myVlanDynTable 1 }
    
MyVlanDynEntry ::=
        SEQUENCE {
        myVlanDynVID VlanId,
        myVlanDynPortMemberAction MemberMap,
        myVlanDynApMemberAction MemberMap,
        myVlanDynAlias DisplayString,
        myVlanDynEntryStatus ConfigStatus
        }
    
myVlanDynVID 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."
        ::= { myVlanDynEntry 1 }
 
myVlanDynPortMemberAction 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."
        ::= { myVlanDynEntry 2 }
        
myVlanDynApMemberAction 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."
        ::= { myVlanDynEntry 3 }        
        
myVlanDynAlias OBJECT-TYPE
        SYNTAX DisplayString (SIZE (0..32))
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Vlan's alias ."
        DEFVAL{""}   
        ::= { myVlanDynEntry 4 }
                
myVlanDynEntryStatus OBJECT-TYPE
        SYNTAX ConfigStatus
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Status of this entry."
        ::= { myVlanDynEntry 5 }

myGvrpMIBConformance OBJECT IDENTIFIER ::= { myGvrpMIB 2 }
myGvrpMIBCompliances OBJECT IDENTIFIER ::= { myGvrpMIBConformance 1 }
myGvrpMIBGroups      OBJECT IDENTIFIER ::= { myGvrpMIBConformance 2 }


-- compliance statements

myGvrpMIBCompliance MODULE-COMPLIANCE
        STATUS  current
        DESCRIPTION
                "The compliance statement for entities which implement
                the Gvrp MIB"
        MODULE  -- this module
                MANDATORY-GROUPS { myGvrpMIBGroup ,myGvrpStatsMIBGroup
                 }
        ::= { myGvrpMIBCompliances 1 }
                
-- units of conformance

myGvrpMIBGroup OBJECT-GROUP
        OBJECTS {
            myGvrpStatus,
            myGvrpDynamicVlanCreateStauts,            
            myGvrpJoinTimer,
            myGvrpLeaveTimer,
            myGvrpLeaveAllTimer,
            myGvrpIfIndex,
            myGvrpRegistrationMode,
            myGvrpApplicantState,
	    myVlanIfStateVid,
	    myVlanIfStateIndex,
	    myVlanIfState 
        }
        STATUS  current
        DESCRIPTION
                "A collection of objects providing Gvrp configuration."
        ::= { myGvrpMIBGroups 1 }      
           
myGvrpStatsMIBGroup OBJECT-GROUP
        OBJECTS {
            myGvrpStatsIfIndex, 
            myGvrpRecValidGvrpPdu,
            myGvrpRecInvalidGvrpPdu,
            myGvrpRecJoin, 
            myGvrpRecJoinIn, 
            myGvrpRecEmpty,
            myGvrpRecLeaveEmpty,
            myGvrpRecLeaveIn,
            myGvrpRecLeaveAll,
            myGvrpSentGvrpPdu,
            myGvrpSentJoin,
            myGvrpSentJoinIn,
            myGvrpSentEmpty,
            myGvrpSentLeaveEmpty,
            myGvrpSentLeaveIn,
            myGvrpSentLeaveAll,
            myGvrpJoinIndicated,
            myGvrpLeaveIndicated,
            myGvrpJoinPropagated,
            myGvrpLeavePropagated,
            myGvrpStatisticsPortClear
        }
        STATUS  current
        DESCRIPTION
                "A collection of statics of GVRP."
        ::= { myGvrpMIBGroups 2 }   
        
                
END
