-- *****************************************************************
-- FS-GVRP-MIB.mib:  FS Gvrp MIB file
--
-- March 2002, Wuzg
--
-- Copyright (c) 2002 by FS.COM Inc..
-- All rights reserved.
-- 
-- *****************************************************************
--

FS-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 FS-TC
        EnabledStatus 
                FROM P-BRIDGE-MIB
        fsMgmt
                FROM FS-SMI;
        --fsVlanMIBObjects
        --        FROM FS-VLAN-MIB;
                

fsGvrpMIB MODULE-IDENTITY
        LAST-UPDATED "200203200000Z"
        ORGANIZATION "FS.COM Inc.."
        CONTACT-INFO
                " 
                Tel: 400-865-2852 

                E-mail: https://www.fs.com/live_chat_service_mail.html"
        DESCRIPTION
                "This module defines fs Gvrp(Statistical Processing and Analysis)mibs."
        REVISION      "200203200000Z"
        DESCRIPTION
                "Initial version of this MIB module."
        ::= { fsMgmt 25}

fsGvrpMIBObjects OBJECT IDENTIFIER ::= { fsGvrpMIB 1 }


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

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


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

fsGvrpLeaveAllTimer OBJECT-TYPE
    SYNTAX  Integer32
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
              "To control Gvrp leave all timer."
    DEFVAL { 10000 }                
         ::={ fsGvrpMIBObjects 5 }
         
fsGvrpTable OBJECT-TYPE
        SYNTAX SEQUENCE OF FSGvrpEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "list of  Gvrp configuration objects."
        ::= { fsGvrpMIBObjects 6 }
    
fsGvrpEntry OBJECT-TYPE
        SYNTAX FSGvrpEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Entry contains Gvrp configuration objects."
        INDEX { fsGvrpIfIndex}
        ::= { fsGvrpTable 1 }

FSGvrpEntry ::=
        SEQUENCE {
            fsGvrpIfIndex IfIndex,
            fsGvrpRegistrationMode EnabledStatus,
            fsGvrpApplicantState EnabledStatus
        }
        
fsGvrpIfIndex OBJECT-TYPE
        SYNTAX IfIndex
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            " "
        ::= { fsGvrpEntry 1 }
                                           
fsGvrpRegistrationMode OBJECT-TYPE
        SYNTAX EnabledStatus
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Registration mode of gvrp for a port."
  DEFVAL { enabled }                
        ::= { fsGvrpEntry 2 }
                            
fsGvrpApplicantState OBJECT-TYPE
        SYNTAX EnabledStatus
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Applicant state of gvrp for a port."
  DEFVAL { enabled }                
        ::= { fsGvrpEntry 3 }        


fsGvrpStatsTable OBJECT-TYPE
        SYNTAX SEQUENCE OF FSGvrpStatsEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "list of statistics of every port."
        ::= { fsGvrpMIBObjects 7 }
    
fsGvrpStatsEntry OBJECT-TYPE
        SYNTAX FSGvrpStatsEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Entry contains Gvrp statistics."
        INDEX { fsGvrpStatsIfIndex }
        ::= { fsGvrpStatsTable 1 }

FSGvrpStatsEntry ::=
        SEQUENCE {
            fsGvrpStatsIfIndex IfIndex,
            fsGvrpRecValidGvrpPdu  Counter32,
            fsGvrpRecInvalidGvrpPdu Counter32,
            fsGvrpRecJoin Counter32,
            fsGvrpRecJoinIn Counter32,
            fsGvrpRecEmpty Counter32,
            fsGvrpRecLeaveEmpty Counter32,
            fsGvrpRecLeaveIn Counter32,
            fsGvrpRecLeaveAll Counter32,
            fsGvrpSentGvrpPdu Counter32,
            fsGvrpSentJoin Counter32,
            fsGvrpSentJoinIn Counter32,
            fsGvrpSentEmpty Counter32,
            fsGvrpSentLeaveEmpty Counter32,
            fsGvrpSentLeaveIn Counter32,
            fsGvrpSentLeaveAll Counter32,
            fsGvrpJoinIndicated Counter32,
            fsGvrpLeaveIndicated Counter32,
            fsGvrpJoinPropagated Counter32,
            fsGvrpLeavePropagated Counter32,
            fsGvrpStatisticsPortClear Integer32
        }
        
fsGvrpStatsIfIndex OBJECT-TYPE
        SYNTAX IfIndex
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            " "
        ::= { fsGvrpStatsEntry 1 }
                                           
fsGvrpRecValidGvrpPdu OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The total number of valid GVRP PDU received."
        ::= { fsGvrpStatsEntry 2 }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

fsGvrpStatisticsPortClear 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." 
        ::= { fsGvrpStatsEntry 21 }
        
fsGvrpOperVid  OBJECT-TYPE
    SYNTAX  VlanId
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
              "The vid of vlan where gvrp currently operate in."
    DEFVAL { 1 }                
         ::={ fsGvrpMIBObjects 8 }
         
fsGvrpStatisticsClear  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." 
         ::={ fsGvrpMIBObjects 9 }
         
fsGvrpResetTimer  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."
         ::={ fsGvrpMIBObjects 10 }

        

--fsVlanIfStateTable OBJECT-TYPE
--        SYNTAX SEQUENCE OF FSVlanIfStateEntry
--        MAX-ACCESS not-accessible
--        STATUS current
--        DESCRIPTION
--            "port vlan state table."
--        ::= { fsVlanMIBObjects 6 }
    
--fsVlanIfStateEntry OBJECT-TYPE
--        SYNTAX FSVlanIfStateEntry
--        MAX-ACCESS not-accessible
--        STATUS current
--        DESCRIPTION
--          "list of registration state of a vlan of a port."
--      INDEX { fsVlanIfStateVid,fsVlanIfStateIndex}
--    ::= { fsVlanIfStateTable 1 }
--
--FSVlanIfStateEntry ::=
--        SEQUENCE {
--        fsVlanIfStateVid VlanId,
--        fsVlanIfStateIndex   IfIndex,
--        fsVlanIfState     INTEGER
--        }    
--    
--fsVlanIfStateVid OBJECT-TYPE
--        SYNTAX VlanId
--        MAX-ACCESS not-accessible
--        STATUS current
--        DESCRIPTION
--            "VID of vlan ."
--        ::= { fsVlanIfStateEntry 1 }  

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

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

--fsVlanDynTable OBJECT-TYPE
--        SYNTAX SEQUENCE OF FSVlanDynEntry
--        MAX-ACCESS not-accessible
--        STATUS current
--        DESCRIPTION
--            "vlan table."
--        ::= { fsVlanMIBObjects 7 }
    
--fsVlanDynEntry OBJECT-TYPE
--        SYNTAX FSVlanDynEntry
--        MAX-ACCESS not-accessible
--        STATUS current
--        DESCRIPTION
--            "list of vlan and it's distribution table."
--        INDEX { fsVlanDynVID }
--        ::= { fsVlanDynTable 1 }
    
--FSVlanDynEntry ::=
--        SEQUENCE {
--        fsVlanDynVID VlanId,
--        fsVlanDynPortMemberAction MemberMap,
--        fsVlanDynApMemberAction MemberMap,
--        fsVlanDynAlias DisplayString,
--        fsVlanDynEntryStatus ConfigStatus
--        }
    
--fsVlanDynVID 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."
--        ::= { fsVlanDynEntry 1 }
 
--fsVlanDynPortMemberAction 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."
--        ::= { fsVlanDynEntry 2 }
        
--fsVlanDynApMemberAction 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."
--        ::= { fsVlanDynEntry 3 }        
        
--fsVlanDynAlias OBJECT-TYPE
--        SYNTAX DisplayString (SIZE (0..32))
--        MAX-ACCESS read-only
--        STATUS current
--        DESCRIPTION
--            "Vlan's alias ."
--        DEFVAL{""}   
--        ::= { fsVlanDynEntry 4 }
                
--fsVlanDynEntryStatus OBJECT-TYPE
--        SYNTAX ConfigStatus
--        MAX-ACCESS read-only
--        STATUS current
--        DESCRIPTION
--            "Status of this entry."
--        ::= { fsVlanDynEntry 5 }

fsGvrpMIBConformance OBJECT IDENTIFIER ::= { fsGvrpMIB 2 }
fsGvrpMIBCompliances OBJECT IDENTIFIER ::= { fsGvrpMIBConformance 1 }
fsGvrpMIBGroups      OBJECT IDENTIFIER ::= { fsGvrpMIBConformance 2 }


-- compliance statements

fsGvrpMIBCompliance MODULE-COMPLIANCE
        STATUS  current
        DESCRIPTION
                "The compliance statement for entities which implement
                the Gvrp MIB"
        MODULE  -- this module
                MANDATORY-GROUPS { fsGvrpMIBGroup ,fsGvrpStatsMIBGroup
                 }
        ::= { fsGvrpMIBCompliances 1 }
                
-- units of conformance

fsGvrpMIBGroup OBJECT-GROUP
        OBJECTS {
            fsGvrpStatus,
            fsGvrpDynamicVlanCreateStauts,            
            fsGvrpJoinTimer,
            fsGvrpLeaveTimer,
            fsGvrpLeaveAllTimer,
--            fsGvrpIfIndex,
            fsGvrpRegistrationMode,
            fsGvrpApplicantState
--        fsVlanIfStateVid,
--        fsVlanIfStateIndex,
--      fsVlanIfState
        }
        STATUS  current
        DESCRIPTION
                "A collection of objects providing Gvrp configuration."
        ::= { fsGvrpMIBGroups 1 }      
           
fsGvrpStatsMIBGroup OBJECT-GROUP
        OBJECTS {
--            fsGvrpStatsIfIndex,
            fsGvrpRecValidGvrpPdu,
            fsGvrpRecInvalidGvrpPdu,
            fsGvrpRecJoin, 
            fsGvrpRecJoinIn, 
            fsGvrpRecEmpty,
            fsGvrpRecLeaveEmpty,
            fsGvrpRecLeaveIn,
            fsGvrpRecLeaveAll,
            fsGvrpSentGvrpPdu,
            fsGvrpSentJoin,
            fsGvrpSentJoinIn,
            fsGvrpSentEmpty,
            fsGvrpSentLeaveEmpty,
            fsGvrpSentLeaveIn,
            fsGvrpSentLeaveAll,
            fsGvrpJoinIndicated,
            fsGvrpLeaveIndicated,
            fsGvrpJoinPropagated,
            fsGvrpLeavePropagated,
            fsGvrpStatisticsPortClear
        }
        STATUS  current
        DESCRIPTION
                "A collection of statics of GVRP."
        ::= { fsGvrpMIBGroups 2 }   
        
                
END
