-- =================================================================
-- Copyright (C) 2009 by  HUAWEI TECHNOLOGIES. All rights reserved.
--
-- Description: Huawei GVRP MIB
-- Reference: HUAWEI Enterprise MIB
-- Version: V1.0
-- History:
--          V1.0 (1) Created by wujunhong, 2009.09.27
-- =================================================================

-- ==================================================================
--
-- Varibles and types be imported
--
-- ==================================================================
HUAWEI-GARP-APP-MIB DEFINITIONS ::= BEGIN

    IMPORTS         
        hwDatacomm
            FROM HUAWEI-MIB
        ifIndex,ifEntry
            FROM RFC1213-MIB
        MODULE-IDENTITY, OBJECT-IDENTITY, Counter32, Integer32,
        OBJECT-TYPE
            FROM SNMPv2-SMI 
        OBJECT-GROUP, MODULE-COMPLIANCE           
            FROM SNMPv2-CONF 
        TimeInterval, TEXTUAL-CONVENTION
            FROM SNMPv2-TC;       
            
-- ==================================================================        
--
-- Module Identifier                
--
-- ==================================================================
    hwGarpAppMIB MODULE-IDENTITY 
        LAST-UPDATED "200909270000Z"
        ORGANIZATION 
            "Huawei Technologies co., Ltd."
        CONTACT-INFO 
            "Huawei Nanjing R&D Center, 101 Software Avenue, Yuhua District, Nanjing, Jiangsu, PRC
            Zip:210012 
            Http://www.huawei.com                                       
            E-mail:support@huawei.com "
        DESCRIPTION 
            "This MIB describes objects used for config GARP, and some statistic information."
        REVISION "200909270000Z"
        DESCRIPTION
            "The initial revision of this MIB module."
        ::= { hwDatacomm 213 }

-- =============================================================
-- Textual Conventions
-- =============================================================
    InterfaceIndex ::= TEXTUAL-CONVENTION
       DISPLAY-HINT "d"
       STATUS       current
       DESCRIPTION
               "A unique value, greater than zero, for each interface or
               interface sub-layer in the managed system.  It is
               recommended that values are assigned contiguously starting
               from 1.  The value for each interface sub-layer must remain
               constant at least from one re-initialization of the entity's
               network management system to the next re-initialization."
       SYNTAX       Integer32 (1..2147483647)

-- ============================================================================
-- Objects Identifier
-- ============================================================================ 

-- ============================================================================
-- Node definitions
-- ============================================================================ 

    hwGarpAppProtoObject OBJECT-IDENTITY
            STATUS current
            DESCRIPTION
                "This object describes objects used for config GARP, and some statistic information."
            ::= { hwGarpAppMIB 1 }

     hwGarpAppLeaveAllTime OBJECT-TYPE
        SYNTAX      TimeInterval
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "The GARP LeaveAll time, in centiseconds."
        ::= { hwGarpAppProtoObject 1 }

     hwGarpAppSwitchCountTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF HwGarpAppSwitchCountEntry
        MAX-ACCESS not-accessible
        STATUS   current
        DESCRIPTION
            "A table containing statistics about various frames on the switch."
        ::= { hwGarpAppProtoObject 2 }


     hwGarpAppSwitchCountEntry OBJECT-TYPE
        SYNTAX  HwGarpAppSwitchCountEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "A table containing statistics about various frames on the switch."
        AUGMENTS    { hwGarpAppTrunkStatusEntry  }
        ::= { hwGarpAppSwitchCountTable 1 }

    HwGarpAppSwitchCountEntry   ::=
    SEQUENCE {
        hwGarpAppSwitchGmrpRxPkt    Counter32,
        hwGarpAppSwitchGvrpRxPkt    Counter32,
        hwGarpAppSwitchGmrpTxPkt    Counter32,
        hwGarpAppSwitchGvrpTxPkt    Counter32,
        hwGarpAppSwitchDiscardedPkt Counter32,
        hwGarpAppSwitchGarpStatClear INTEGER
        }

     hwGarpAppSwitchGmrpRxPkt OBJECT-TYPE
        SYNTAX  Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Number of GMRP frames received."
        ::= { hwGarpAppSwitchCountEntry 1 }

     hwGarpAppSwitchGvrpRxPkt OBJECT-TYPE
        SYNTAX  Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Number of GVRP frames received."
        ::= { hwGarpAppSwitchCountEntry 2 }

     hwGarpAppSwitchGmrpTxPkt OBJECT-TYPE
        SYNTAX  Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Number of GMRP frames transmitted."
        ::= { hwGarpAppSwitchCountEntry 3 }

     hwGarpAppSwitchGvrpTxPkt  OBJECT-TYPE
         SYNTAX  Counter32
         MAX-ACCESS read-only
         STATUS current
        DESCRIPTION
            "Number of GVRP frames transmitted."
         ::= { hwGarpAppSwitchCountEntry 4 }

     hwGarpAppSwitchDiscardedPkt  OBJECT-TYPE
         SYNTAX  Counter32
         MAX-ACCESS read-only
         STATUS current
        DESCRIPTION
            "Number of discarded frames."
         ::= { hwGarpAppSwitchCountEntry 5 }

     hwGarpAppSwitchGarpStatClear OBJECT-TYPE
        SYNTAX  INTEGER { clear(1) }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Clear various Statistics viz. read operation not supported."
        ::= { hwGarpAppSwitchCountEntry 6 }

     hwGarpAppHoldTimeTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF HwGarpAppHoldTimeEntry
        MAX-ACCESS not-accessible
        STATUS   current
        DESCRIPTION
            "A table for setting/getting the HoldTime of the port."
        ::= { hwGarpAppProtoObject 3 }

     hwGarpAppHoldTimeEntry OBJECT-TYPE
        SYNTAX HwGarpAppHoldTimeEntry
        MAX-ACCESS not-accessible
        STATUS   current
        DESCRIPTION
            "A table for setting/getting the HoldTime of the port."
         AUGMENTS    { ifEntry }
        ::= { hwGarpAppHoldTimeTable 1 }

    HwGarpAppHoldTimeEntry  ::=
    SEQUENCE {
        hwGarpAppHoldTime   Integer32
        }

     hwGarpAppHoldTime OBJECT-TYPE
        SYNTAX  Integer32  (10..32765)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "HoldTime of the port."
        DEFVAL  { 10 }
        ::= { hwGarpAppHoldTimeEntry 1 }
        
-- ============================================================================
-- ========================config under interface==============================
-- ============================================================================

    hwGarpAppInfObject OBJECT IDENTIFIER ::= {  hwGarpAppMIB 2  }

    hwGarpAppTrunkStatusTable  OBJECT-TYPE
        SYNTAX SEQUENCE OF HwGarpAppTrunkStatusEntry
        MAX-ACCESS not-accessible 
        STATUS   current
        DESCRIPTION "GVRP attributes on the VlanTrunk port."
        ::= { hwGarpAppInfObject  1 }

    hwGarpAppTrunkStatusEntry  OBJECT-TYPE
        SYNTAX HwGarpAppTrunkStatusEntry
        MAX-ACCESS not-accessible 
        STATUS   current
        DESCRIPTION "GVRP attributes on the VlanTrunk port."
        INDEX   { hwGarpAppTrunkIndex }
        ::= { hwGarpAppTrunkStatusTable 1 }

    HwGarpAppTrunkStatusEntry    ::=
    SEQUENCE {
        hwGarpAppTrunkIndex              InterfaceIndex,
        hwGarpAppTrunkGvrpRegistration   INTEGER,   
        hwGarpAppTrunkPassListLow        OCTET STRING,
        hwGarpAppTrunkPassListHigh       OCTET STRING
        }

    hwGarpAppTrunkIndex  OBJECT-TYPE
        SYNTAX  InterfaceIndex
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION "Index number of the VLANTrunk interface."
        ::= { hwGarpAppTrunkStatusEntry 1 }

    hwGarpAppTrunkGvrpRegistration OBJECT-TYPE
        SYNTAX  INTEGER
        {
        normal  (1),
        fixed   (2),
        forbidden   (3)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "GVRP registration information
            normal:     This is the default configuration. Allow to create, register
                        and unregister vlans dynamiclly at this port.
            fixed:      Aallow to create and register vlan manually at this port.
                        Prevent from unregistering vlans or registering known
                        vlans of this port at another trunk port.
            forbidden:  Unregister all vlans but vlan 1, forbid to create or
                        register any other vlans at this port."
        ::= { hwGarpAppTrunkStatusEntry 2 }
                                        
    hwGarpAppTrunkPassListLow OBJECT-TYPE
        SYNTAX  OCTET STRING
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION "Each octet within this value specifies a set of eight
                    VLANs, with the first octet specifying VLANs 1 through
                    8, the second octet specifying VLANs 9 through 16, etc.
                    Within each octet, the most significant bit represents
                    the highest numbered VLAN, and the least significant bit
                    represents the lowest numbered VLAN. Thus, each actually
                    passed VLAN of the trunk port is represented by a single
                    bit within the value of this object. If that bit has a
                    value of '1' then that VLAN is actually passed in the set
                    of VLANs; the VLAN is not actually passed if its bit has
                    a value of '0'."
        ::= { hwGarpAppTrunkStatusEntry 3 }

    hwGarpAppTrunkPassListHigh OBJECT-TYPE
        SYNTAX  OCTET STRING
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION "Each octet within this value specifies a set of eight
                    VLANs, with the first octet specifying VLANs 2049 through
                    2056, the second octet specifying VLANs 2057 through 2064,
                    etc. Within each octet, the most significant bit represents
                    the highest numbered VLAN, and the least significant bit
                    represents the lowest numbered VLAN. Thus, each actually
                    passed VLAN of the trunk port is represented by a single
                    bit within the value of this object. If that bit has a
                    value of '1' then that VLAN is actually passed in the set
                    of VLANs; the VLAN is not actually passed if its bit has
                    a value of '0'."
        ::= { hwGarpAppTrunkStatusEntry 4 }
                                        
-- ============================================================================
-- ============== conformance information ============================
-- ============================================================================

    hwGarpAppConformance OBJECT IDENTIFIER ::= { hwGarpAppMIB 3 }
    
    hwGarpAppCompliances OBJECT IDENTIFIER ::= { hwGarpAppConformance 1 }
    hwGarpAppCompliance MODULE-COMPLIANCE
           STATUS      current
           DESCRIPTION
            "The compliance statement for systems supporting this module."
        
           MODULE
           MANDATORY-GROUPS
               {
                   hwGarpAppGroup
               }  
                                           
        ::= { hwGarpAppCompliances 1 }  
        
-- ============================================================================
-- ============== groups ==========================================  
-- ============================================================================
    
    hwGarpAppGroups OBJECT IDENTIFIER ::= { hwGarpAppConformance 2 }
    
    hwGarpAppGroup OBJECT-GROUP
            OBJECTS { 
                      hwGarpAppLeaveAllTime, 
                      hwGarpAppSwitchGmrpRxPkt, 
                      hwGarpAppSwitchGvrpRxPkt, 
                      hwGarpAppSwitchGmrpTxPkt, 
                      hwGarpAppSwitchGvrpTxPkt, 
                      hwGarpAppSwitchDiscardedPkt,
                      hwGarpAppSwitchGarpStatClear, 
                      hwGarpAppHoldTime,
                      hwGarpAppTrunkGvrpRegistration,
                      hwGarpAppTrunkPassListLow,
                      hwGarpAppTrunkPassListHigh
                    }
            STATUS current
            DESCRIPTION 
                "The GARP's Configuration group."
            ::= { hwGarpAppGroups 1 }    
            
-- ============================================================================                                                                       
-- ============== conformance information define end ==============     
-- ============================================================================
END