-- =================================================================
-- Copyright (C) 2021 by HUAWEI TECHNOLOGIES. All rights reserved
-- 
-- Description:HUAWEI DHCP SNOOPING MIB
-- Reference:
-- Version: V2.19
-- History:
--    wangcheng 60005987 initial    16/02/2006
--  hexiaoqin 60020960 modified   25/12/2006
--      wangcheng 64651    modified   1/3/2007  
--      modified by huangjun 2009-12-08
--      modified by xiazhaolin 2013-06-19
--      modified by huangxiaomin 221241 2014/01/27
--      modified by caojingyun 00273809 2014/07/18
--      modified by liangyun 00353956 2016/10/11
--      modified by liangyun 00353956 2016/10/28 
--      modified by shaomaoran 00226598 2017/09/20 
--      modified by dinglei 00384574 2018/10/09 
--      modified by zhengyang 00348399 2019/2/26 
--      modified by wangwei 00242872 2019/07/23
--      modified by yinjinyan 00278826 2021/01/19
--      modified by yinjinyan 00278826 2021/02/18     
--      modified by zhangquwei 00504334 2021/02/19
--      modified by yinjinyan 00278826 2021/03/03
--      modified by yinjinyan 00278826 2021/03/17
--      modified by yinjinyan 00278826 2021/03/23 
--      modified by zhangquwei 00504334 2021/04/12
--      modified by chenhao 00564599 2021/06/05
-- =================================================================
    
    HUAWEI-DHCP-SNOOPING-MIB DEFINITIONS ::= BEGIN
     
        IMPORTS
            hwDatacomm            
                FROM HUAWEI-MIB
            NOTIFICATION-GROUP,OBJECT-GROUP,MODULE-COMPLIANCE        
                FROM SNMPv2-CONF
            MODULE-IDENTITY, IpAddress, OBJECT-TYPE,
            NOTIFICATION-TYPE,Integer32,Counter32                 
               FROM SNMPv2-SMI    
            InterfaceIndexOrZero
                FROM IF-MIB
            VlanId     
                FROM Q-BRIDGE-MIB
            VlanIdOrNone     
                FROM Q-BRIDGE-MIB
            EnabledStatus
                FROM P-BRIDGE-MIB                                             
            RowStatus,MacAddress,DisplayString,TEXTUAL-CONVENTION            
                FROM SNMPv2-TC;
            
                    
--
-- Textual conventions                
--

     HWVlanId ::= TEXTUAL-CONVENTION
        STATUS      current
        DESCRIPTION
                "A 12-bit VLAN ID used in the VLAN Tag header.
                 When the value is 0, it means do not belong to a VLAN."
        SYNTAX      Integer32(0..4094)   

     HWMatchMode ::= TEXTUAL-CONVENTION
            STATUS current
            DESCRIPTION 
                " 
                The VLAN mode of DHCP  packets matched in the snooping bind table.
                PVLAN(1),
                CVLAN(2),
                all(3)
                "
            SYNTAX INTEGER
                { 
                pvlan(1),
                cvlan(2),
                all(3)
                }  
     HWTransmitAction ::= TEXTUAL-CONVENTION
            STATUS current
            DESCRIPTION 
                " The action of specific color packet.
                  discard (1)
                  pass (2)
                "
            SYNTAX INTEGER
                { 
                discard(1),
                pass(2)
                }
               
    
--
-- Module Identifier                
--
    hwDhcpSnpMib MODULE-IDENTITY 
        LAST-UPDATED "202106050000Z"           
        ORGANIZATION 
             "Huawei Technologies Co.,Ltd."
        CONTACT-INFO 
"Huawei Industrial Base  Bantian, Longgang   Shenzhen 518129   People's Republic of China   Website: http://www.huawei.com   Email: support@huawei.com "     
	   DESCRIPTION
            "Modify hwDhcpSnpChaddrAlarm."
       REVISION "202106050000Z" 

	   DESCRIPTION
            "Add hwDHCPv6SnpDetectAlarm."
       REVISION "202104120000Z" 
        
	   DESCRIPTION
            "Change parameter of hwDhcpv6SnpBindTblThreshold, hwDhcpv6SnpBindTblThresholdResume, hwDhcpv6SnpBindTblExhaust, hwDhcpv6SnpBindTblExhaustResume."
       REVISION "202103230000Z" 

	   DESCRIPTION
            "Change type of hwIpv6Nomatchv6SnpBindTblPktNum."
       REVISION "202103170000Z" 
	   DESCRIPTION
            "Add hwDhcpv6SnpBindTblThreshold, hwDhcpv6SnpBindTblThresholdResume, hwDhcpv6SnpBindTblExhaust, hwDhcpv6SnpBindTblExhaustResume, hwIpv6NomatchV6SnpBindTblPktAlarm."
       REVISION "202103030000Z" 

	   DESCRIPTION
            "Add hwNomatchSnpBindTblNDPktAlarmBd, hwDhcpSnpChaddrAlarmBd, hwNomatchSnpBindTblDhcpPktAlarmBd, hwUntrustedReplyPktAlarmBd."
       REVISION "202102190000Z" 

	   DESCRIPTION
            "Change index of these nodes:hwDhcpSnpBindTblThreshold, hwDhcpSnpBindTblThresholdResume, hwDhcpSnpBindTblExhaust, hwDhcpSnpBindTblExhaustResume."
       REVISION "202102180000Z" 

	   DESCRIPTION
            "Add hwDhcpSnpBindTblThreshold, hwDhcpSnpBindTblThresholdResume, hwDhcpSnpBindTblExhaust, hwDhcpSnpBindTblExhaustResume, hwDhcpSnpUsrNum, hwDhcpSnpMaxUsrNum."
       REVISION "202101190000Z" 
	   
	   DESCRIPTION
            "Add hwRequestNoTrustPktAlarm, hwRequestNoTrustPktNum."
       REVISION "201907230000Z" 

	   DESCRIPTION
            "Add hwDhcpSnpTrapRemoteBackupType, hwSnpRemoteBackupAlarm, hwSnpRemoteBackupAlarmResume."
       REVISION "201907120000Z" 

	   DESCRIPTION
            "Add hwDhcpSnpTrapRemoteBackupType, hwSnpRemoteBackupAlarm, hwSnpRemoteBackupAlarmResume."
       REVISION "201902260000Z" 

	   DESCRIPTION
            "Add hwNomatchSnpBindTblDhcpv6PktAlarm, hwNomatchSnpBindTblNDPktAlarm."
       REVISION "201809300000Z" 

	   DESCRIPTION
            "Add hwSnpBindingItemGlobalNum, hwSnpBindingItemResourceSize, hwSnpBindingItemResourceAlarm."
       REVISION "201709200000Z" 

       DESCRIPTION
            "Change the DHCP Snooping Conformance."
       REVISION "201708170000Z" 	
       DESCRIPTION
            "Modify the description of hwDhcpSnpChaddrAlarm."
       REVISION "201610280000Z" 
	
       DESCRIPTION
            "Change the DHCP Snooping Conformance."
       REVISION "201610110000Z" 
       DESCRIPTION
            "This MIB describes objects used for DHCP Snooping."
       REVISION "201407180000Z"      
       DESCRIPTION 
            "This MIB describes objects used for DHCP Snooping."
       REVISION "201401270000Z"         -- Jan 1st, 2014 at 20:00 GMT
       DESCRIPTION
            "This revision adds MIB trap of bridge domain."
        REVISION "201306191800Z"            -- Sep 19th, 2013 at 18:00 GMT
        DESCRIPTION 
            "This MIB describes objects used for DHCP Snooping,including
            configuring snooping,creating snooping bind table and collecting
            false packets' statistic information. When the system is attacked,
            some traps will be given."
        REVISION "200609161800Z"            -- Sep 16th, 2006 at 18:00 GMT
        DESCRIPTION
            "The initial revision of this MIB module."
        ::= { hwDatacomm 112 }
    
--
-- Objects Identifier
--

    hwDhcpSnpObjects OBJECT IDENTIFIER ::= { hwDhcpSnpMib 1 }

--
-- Nodes Identifier
--
    
    hwDhcpSnpGlobal OBJECT-TYPE
        SYNTAX     INTEGER
            {
            enable(1),
            disable(0)
            }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The Global Snooping. Enable this before you want to enable
             the port,vlan,other interfaces snooping,default is disable. "
        ::= { hwDhcpSnpObjects 1 }
    
    
    hwDhcpPktRateCheck OBJECT-TYPE
        SYNTAX     INTEGER
            {
            enable(1),
            disable(0)
            }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Whether to check the rate of DHCP packets received,default is disabling. "
        ::= { hwDhcpSnpObjects 2 }
    
            
    hwDhcpPktRate     OBJECT-TYPE
        SYNTAX     Integer32(1..1000)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The area of Dhcp packets received rate,default is 100. "
        ::= { hwDhcpSnpObjects 3 }    
    
            
    hwDhcpPktRateAlarmThreshold OBJECT-TYPE
        SYNTAX     Integer32(1..1000)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The threshold of the DHCP packets rate Alarm. When the actual rate
             beyond the maximum rate configured and reach this threshold once, 
             there will be a notification can be sent at the same time,default is 100. "
        ::= { hwDhcpSnpObjects 4 }
    
            
    hwDhcpPktRateAlarmEnable OBJECT-TYPE
        SYNTAX     INTEGER
            {
            enable(1),
            disable(0)
            }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Whether to send the DHCP packets rate alarm when the actual rate beyond
             the maximum rate configured and reach the rate threshold,default is disabling. "
        ::= { hwDhcpSnpObjects 5 }
    
    
    hwDhcpSnpBindTblNomatchedArpGlobalAction OBJECT-TYPE
        SYNTAX     INTEGER
            {
            forward(0),
            discard(1)
            }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "How to deal with the ARP packets that do not match the DHCP snooping 
             bind table in global view,default is forward. "
        ::= { hwDhcpSnpObjects 6 }        
    
    
    hwDhcpSnpBindTblNomatchedIpGlobalAction OBJECT-TYPE
        SYNTAX     INTEGER
            {
            forward(0),
            discard(1)
            }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "How to deal with the Ip packets that do not match the DHCP snooping 
             bind table in global view,default is forward. "
        ::= { hwDhcpSnpObjects 7 }        
    
    
    hwDhcpSnpBindTblAutosaveFilename OBJECT-TYPE
        SYNTAX     DisplayString(SIZE(1..51))
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Auto save file name. Make sure the disk name have been given, and the file
             must be named with '.tbl' postfixally. "
        ::= { hwDhcpSnpObjects 8 }
    
            
    hwDhcpSnpBindTblAutosave OBJECT-TYPE
        SYNTAX     INTEGER
            {
            enable(1),
            disable(0)
            }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Whether to save snooping bind table,default is disabling . "
        ::= { hwDhcpSnpObjects 9 }    
       
        
    hwDhcpSnpGlobalThreshold OBJECT-TYPE
        SYNTAX     Integer32(1..1000)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "DHCP snooping global threshold,default is disabling. "
        ::= { hwDhcpSnpObjects 10 }    
               
    
    hwDhcpPktRateDiscardNum OBJECT-TYPE
        SYNTAX     Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "DHCP packets that discarded for the rate limit. "
        ::= { hwDhcpSnpObjects 11 }
    
    
            
    hwDhcpSnpCfgTable  OBJECT-TYPE
            SYNTAX SEQUENCE OF HWDhcpSnpCfgEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "The DHCP snooping configuration table. "
            ::= { hwDhcpSnpObjects 13 }
    
           
    hwDhcpSnpCfgEntry OBJECT-TYPE
            SYNTAX HWDhcpSnpCfgEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "An entry in the snooping configuration table."
            INDEX { hwDhcpSnpIfIndex,hwDhcpSnpVlanIndex,hwDhcpSnpVsiIndex }
            ::= { hwDhcpSnpCfgTable 1 }
            
    HWDhcpSnpCfgEntry ::=
            SEQUENCE {
                hwDhcpSnpIfIndex            InterfaceIndexOrZero,
                hwDhcpSnpVlanIndex            VlanIdOrNone,
                hwDhcpSnpVsiIndex              Integer32,
                hwDhcpSnpEnable                INTEGER,
                hwDhcpTrusted                INTEGER,
                hwDhcpOption82Insert            INTEGER,
                hwDhcpOption82Rebuild            INTEGER,
                hwDhcpChaddrCheck                INTEGER,
                hwDhcpChaddrAlarmThreshold        Integer32,
                hwDhcpChaddrAlarmEnable        INTEGER,
                hwDhcpArpCheck                INTEGER,
                hwDhcpSnpBindTblNomatchedArpAction    INTEGER,
                hwDhcpArpAlarmThreshold        Integer32,
                hwDhcpArpAlarmEnable        INTEGER,
                hwDhcpIpCheck            INTEGER,
                hwDhcpSnpBindTblNomatchedIpAction    INTEGER,
                hwDhcpIpAlarmThreshold        Integer32,
                hwDhcpIpAlarmEnable            INTEGER,
                hwDhcpUntrustReplyAlarmThreshold    Integer32,
                hwDhcpUntrustReplyAlarmEnable    INTEGER,
                hwDhcpSnpBindTblCheck        INTEGER,
                hwDhcpSnpBindTblAlarmThreshold    Integer32,
                hwDhcpSnpBindTblAlarmEnable        INTEGER,
                hwDhcpSnpMatchMode               HWMatchMode, 
                hwDhcpSnpDynamicItemCheck           INTEGER,
                hwDhcpSnpMaxUserNum                 Integer32,
                hwDhcpSnpUserLimitAlarmThreshold    Integer32, 
                hwDhcpSnpUserLimitAlarmEnable    INTEGER,            
                hwDhcpSnpCfgTblRowStatus        RowStatus,
-- begin add for dhcprateAnddhcpoption82
            hwDhcpPktIfRateCheck                EnabledStatus,
            hwDhcpPktIfRate                     Integer32,
            hwDhcpPktIfRateAlarmThreshold       Integer32,
            hwDhcpPktIfRateAlarmEnable          EnabledStatus,
            hwDhcpSnpIfVlanOption82RemoteId     DisplayString,
            hwDhcpSnpIfVlanOption82CircuitId    DisplayString
-- end add for dhcprateAnddhcpoption82                              
                }
    
    hwDhcpSnpIfIndex OBJECT-TYPE
            SYNTAX  InterfaceIndexOrZero
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION "The interface index."
            ::= { hwDhcpSnpCfgEntry 1 }
           
    hwDhcpSnpVlanIndex OBJECT-TYPE
            SYNTAX  VlanIdOrNone
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION " The VLAN-ID or other identifier referring to this VLAN."
            ::= { hwDhcpSnpCfgEntry 2 } 
    
    hwDhcpSnpVsiIndex OBJECT-TYPE
               SYNTAX  Integer32 (0..4095|65535)
               MAX-ACCESS not-accessible
               STATUS current
               DESCRIPTION 
                   " The VSI ID."
               ::= { hwDhcpSnpCfgEntry 3 }         
            
    hwDhcpSnpEnable OBJECT-TYPE
            SYNTAX  INTEGER
                {
                enable(1),
                disable(0)
                }
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION 
                "Whether to enable snooping on this interface/VLAN. "
            DEFVAL { disable }    
            ::= { hwDhcpSnpCfgEntry 5 }
    
    
    hwDhcpTrusted OBJECT-TYPE
            SYNTAX  INTEGER
                {
                trusted(1),
                untrusted(0)
                }
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION 
                "This interface/VLAN is trusted or distrusted. 
                 When enabled the snooping, it turns to distrusted as default until be changed."    
            ::= { hwDhcpSnpCfgEntry 6 }
            
    hwDhcpOption82Insert OBJECT-TYPE
            SYNTAX  INTEGER
                {
                enable(1),
                disable(0)
                }
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION 
                "Whether to insert Option82 to DHCP packets. "
            DEFVAL { disable }    
            ::= { hwDhcpSnpCfgEntry 7 }
    
    
    hwDhcpOption82Rebuild OBJECT-TYPE
            SYNTAX  INTEGER
                {
                enable(1),
                disable(0)
                }
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION 
                "Whether to rebuild the Option82 in DHCP packets. "
            DEFVAL { disable }    
            ::= { hwDhcpSnpCfgEntry 8 }        
    
    
    hwDhcpChaddrCheck OBJECT-TYPE
            SYNTAX  INTEGER
                {
                enable(1),
                disable(0)
                   }
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION 
                "Whether to enable check Chaddr in DHCP packets with source Mac-address in Ethernet frame. "
            DEFVAL { disable }    
            ::= { hwDhcpSnpCfgEntry 9 }
    
            
    hwDhcpChaddrAlarmThreshold OBJECT-TYPE
            SYNTAX  Integer32(1..1000)
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION 
                "The threshold of Chaddr check alarm. A trap can be sent when the chaddr-false DHCP 
                 packets count beyond it."
            DEFVAL { 100 }    
            ::= { hwDhcpSnpCfgEntry 10 }
    
            
    hwDhcpChaddrAlarmEnable OBJECT-TYPE
            SYNTAX  INTEGER
                {
                enable(1),
                disable(0)
                }
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION 
                "Whether to send chaddr trap when its' count beyond the threshold. "
            DEFVAL { disable }    
            ::= { hwDhcpSnpCfgEntry 11 }
    
           
    hwDhcpArpCheck OBJECT-TYPE
            SYNTAX  INTEGER
                {
                enable(1),
                disable(0)
                }
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION 
                "Whether to enable check ARP packets with the snooping bind table. "
            DEFVAL { disable }    
            ::= { hwDhcpSnpCfgEntry 12 }
            
            
    hwDhcpSnpBindTblNomatchedArpAction OBJECT-TYPE
        SYNTAX     INTEGER
            {
            forward(0),
            discard(1)
            }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "How to deal with the ARP packets that do not match the DHCP snooping 
             bind table in port/VLAN view. "
        DEFVAL { discard }
        ::= { hwDhcpSnpCfgEntry 13 }
           
           
    hwDhcpArpAlarmThreshold OBJECT-TYPE
            SYNTAX  Integer32(1..1000)
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION 
                "The threshold of ARP check alarm. A trap can be sent when the false ARP 
                 packets discarded count beyond it. "
            DEFVAL { 100 }    
            ::= { hwDhcpSnpCfgEntry 14 }
    
            
    hwDhcpArpAlarmEnable OBJECT-TYPE
            SYNTAX  INTEGER
                {
                enable(1),
                disable(0)
                }
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION 
                "Whether to send Arp trap when its count beyond the threshold. "
            DEFVAL { disable }    
            ::= { hwDhcpSnpCfgEntry 15 }
    
           
    hwDhcpIpCheck OBJECT-TYPE
            SYNTAX  INTEGER
                {
                enable(1),
                disable(0)
                }
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION 
                "Whether to enable check Ip packets with the snooping bind table. "
            DEFVAL { disable }    
            ::= { hwDhcpSnpCfgEntry 16 }
            
            
    hwDhcpSnpBindTblNomatchedIpAction OBJECT-TYPE
        SYNTAX     INTEGER
            {
            forward(0),
            discard(1)
            }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "How to deal with the Ip packets that do not match the DHCP snooping 
             bind table in port/VLAN view. "
        DEFVAL { discard }
        ::= { hwDhcpSnpCfgEntry 17 }
    
           
    hwDhcpIpAlarmThreshold OBJECT-TYPE
            SYNTAX  Integer32(1..1000)
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION 
                "The threshold of IP check alarm. A trap can be sent when the false IP 
                 packets count beyond it. "
            DEFVAL { 100 }    
            ::= { hwDhcpSnpCfgEntry 18 }
    
           
    hwDhcpIpAlarmEnable OBJECT-TYPE
            SYNTAX  INTEGER
                {
                enable(1),
                disable(0)
                }
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION 
                "Whether to send IP trap when its count beyond the threshold. "
            DEFVAL { disable }    
            ::= { hwDhcpSnpCfgEntry 19 }
    
           
    hwDhcpUntrustReplyAlarmThreshold OBJECT-TYPE
            SYNTAX  Integer32(1..1000)
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION 
                "The threshold of DHCP reply packets check alarm. A trap can be sent when the DHCP 
                 reply packets count on untrusted interface/VLAN beyond it. "
            DEFVAL { 100 }    
            ::= { hwDhcpSnpCfgEntry 20 }
    
           
    hwDhcpUntrustReplyAlarmEnable OBJECT-TYPE
            SYNTAX  INTEGER
                {
                enable(1),
                disable(0)
                }
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION 
                "Whether to send distrust DHCP reply trap when its count beyond the threshold. "
            DEFVAL { disable }    
            ::= { hwDhcpSnpCfgEntry 21 }
            
            
    hwDhcpSnpBindTblCheck OBJECT-TYPE
        SYNTAX     INTEGER
            {
            enable(1),
            disable(0)
            }
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Whether to check DHCP request packets with the snooping bind table. "
        DEFVAL { disable }
        ::= { hwDhcpSnpCfgEntry 22 }    
    
            
    hwDhcpSnpBindTblAlarmThreshold OBJECT-TYPE
        SYNTAX     Integer32(1..1000)
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The threshold of DHCP request packets checking alarm with the snooping bind table. "
        DEFVAL { 100 }
        ::= { hwDhcpSnpCfgEntry 23 }    
    
            
    hwDhcpSnpBindTblAlarmEnable OBJECT-TYPE
        SYNTAX     INTEGER
            {
            enable(1),
            disable(0)
            }
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Whether to send the snooping bind table alarm when beyond its threshold. "
        DEFVAL { disable }
        ::= { hwDhcpSnpCfgEntry 24 }   
        
    hwDhcpSnpMatchMode OBJECT-TYPE
        SYNTAX     HWMatchMode
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            " Setting the VLAN mode of the dhcp packets matched in the bind table.
            PVLAN(1),
            CVLAN(2),
            all(3)
            "
        DEFVAL { 1 }
        ::= { hwDhcpSnpCfgEntry 25 }
        
    hwDhcpSnpDynamicItemCheck OBJECT-TYPE
        SYNTAX     INTEGER
            {
            ip(1),
            ipMac(2),
            ipInterface(3),
            ipMacInterface(4),
            undo(0)
            }
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Check items of Dynamic DHCP snooping binding table by IP address or Mac-address or interface. "
        DEFVAL { ipMacInterface }
        ::= { hwDhcpSnpCfgEntry 26 }          

    hwDhcpSnpMaxUserNum OBJECT-TYPE
               SYNTAX  Integer32 (0..16384)
               MAX-ACCESS read-create
               STATUS current
               DESCRIPTION 
                   "MaxUserNumber: the limitation of the user number on the interface."
               DEFVAL { 0 }
               ::= { hwDhcpSnpCfgEntry 27}        

    hwDhcpSnpUserLimitAlarmThreshold OBJECT-TYPE
            SYNTAX  Integer32(1..100)
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION 
                "The threshold of user-number limitation. A trap can be sent when the current binding-items
                 exceed it."
            DEFVAL { 100 }    
            ::= { hwDhcpSnpCfgEntry 28 }    
    
    hwDhcpSnpUserLimitAlarmEnable OBJECT-TYPE
            SYNTAX  INTEGER
                {
                enable(1),
                disable(0)
                }
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION 
                "Whether to send trap when the binding item number exceeds the threshold. "
            DEFVAL { disable }    
            ::= { hwDhcpSnpCfgEntry 29 }
                    
    hwDhcpSnpCfgTblRowStatus  OBJECT-TYPE
               SYNTAX  RowStatus
               MAX-ACCESS read-create
               STATUS current
               DESCRIPTION 
                   "The snooping configuration table row status."
               ::= { hwDhcpSnpCfgEntry 30 }                    

-- begin add for dhcprateAnddhcpoption82            
    hwDhcpPktIfRateCheck OBJECT-TYPE
        SYNTAX     EnabledStatus
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Whether to limit the rate of DHCP packets received on the interface. "
        ::= { hwDhcpSnpCfgEntry 31 }      
        
    hwDhcpPktIfRate OBJECT-TYPE
        SYNTAX     Integer32(1..1000)
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The area of DHCP packets received rate on the interface. "
        DEFVAL { 100 }
        ::= { hwDhcpSnpCfgEntry 32 }      
        
    hwDhcpPktIfRateAlarmThreshold OBJECT-TYPE
        SYNTAX     Integer32(1..1000)
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "The threshold of the DHCP packets rate Alarm on the interface. When the actual rate
             beyond the maximum rate configured and reach this threshold once, 
             there will be a notification can be sent at the same time. "
        DEFVAL { 100 }
        ::= { hwDhcpSnpCfgEntry 33 }          
        
    hwDhcpPktIfRateAlarmEnable OBJECT-TYPE
        SYNTAX     EnabledStatus
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Whether to send the DHCP packets rate alarm when the actual rate beyond
             the maximum rate configured and reach the rate threshold on the interface. "
        DEFVAL { disabled }
        ::= { hwDhcpSnpCfgEntry 34 }  
        
        
    hwDhcpSnpIfVlanOption82RemoteId OBJECT-TYPE
        SYNTAX     DisplayString (SIZE (1..63))
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Specify the remote ID in the Option 82 field. "
        ::= { hwDhcpSnpCfgEntry 35 }          
        
    hwDhcpSnpIfVlanOption82CircuitId OBJECT-TYPE
        SYNTAX     DisplayString (SIZE (1..63))
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Specify the circuit ID in the Option 82 field."
        ::= { hwDhcpSnpCfgEntry 36 }  
                                                    
-- end add for dhcprateAnddhcpoption82

    
    hwDhcpSnpBindTable  OBJECT-TYPE
            SYNTAX SEQUENCE OF HWDhcpSnpBindEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "The snooping bind table.You must give out 
                (1)one of the interface index, VLANID and VSIID at least 
                (2)the Mac-address,ip-address,static type
                if you want to create a static bind row of the table,
                dynamic can not be created."
            ::= { hwDhcpSnpObjects 14 }
    
          
    hwDhcpSnpBindEntry OBJECT-TYPE
            SYNTAX HWDhcpSnpBindEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "An entry in the snooping bind table."
            INDEX { hwDhcpSnpBindIpIndex, hwDhcpSnpBindPVlanIndex, hwDhcpSnpBindCVlanIndex, 
                hwDhcpSnpBindVRFIdIndex, hwDhcpSnpBindVsiIndex }
            ::= { hwDhcpSnpBindTable 1 }
            
    HWDhcpSnpBindEntry ::=
            SEQUENCE { 
                hwDhcpSnpBindIpIndex        IpAddress,
                hwDhcpSnpBindPVlanIndex        VlanId,
                hwDhcpSnpBindCVlanIndex        VlanId,
                hwDhcpSnpBindVRFIdIndex        Integer32,
                hwDhcpSnpBindVsiIndex        Integer32,
                hwDhcpSnpBindIfDescr        DisplayString,
                hwDhcpSnpBindPVlanId        VlanId,
                hwDhcpSnpBindCVlanId        VlanId,
                hwDhcpSnpBindVRFId            Integer32,
                hwDhcpSnpBindVsiId            Integer32,
                hwDhcpSnpBindMac             MacAddress,
                hwDhcpSnpBindIp                IpAddress,
                hwDhcpSnpBindStatus            INTEGER,
                hwDhcpSnpBindLease            Integer32,
                hwDhcpSnpBindRowStatus        RowStatus
                }
    
    hwDhcpSnpBindIpIndex OBJECT-TYPE
               SYNTAX  IpAddress
               MAX-ACCESS not-accessible
               STATUS current
               DESCRIPTION 
                   "Index: the IP of the bind table."
               ::= { hwDhcpSnpBindEntry 1 }
               
    hwDhcpSnpBindPVlanIndex OBJECT-TYPE
               SYNTAX  VlanId
               MAX-ACCESS not-accessible
               STATUS current
               DESCRIPTION 
                   "Index: the P-VLAN of the bind table."
               ::= { hwDhcpSnpBindEntry 2 }
               
    hwDhcpSnpBindCVlanIndex OBJECT-TYPE
               SYNTAX  VlanId
               MAX-ACCESS not-accessible
               STATUS current
               DESCRIPTION 
                   "Index: the C-VLAN of the bind table."
               ::= { hwDhcpSnpBindEntry 3 }
               
    hwDhcpSnpBindVRFIdIndex OBJECT-TYPE
               SYNTAX  Integer32 (0..1000)
               MAX-ACCESS not-accessible
               STATUS current
               DESCRIPTION 
                   "Index: the VRFID of the bind table."
               ::= { hwDhcpSnpBindEntry 4 }
               
    hwDhcpSnpBindVsiIndex OBJECT-TYPE
               SYNTAX  Integer32 (0..4095|65535)
               MAX-ACCESS not-accessible
               STATUS current
               DESCRIPTION 
                   "Index: the VSI of the bind table."
               ::= { hwDhcpSnpBindEntry 5 }                                                       
    
    
    hwDhcpSnpBindIfDescr OBJECT-TYPE
               SYNTAX  DisplayString (SIZE (0..47))
               MAX-ACCESS read-only
               STATUS current
               DESCRIPTION 
                   "The description of the interfaces that bound."
               ::= { hwDhcpSnpBindEntry 6 }
    
    
    hwDhcpSnpBindPVlanId OBJECT-TYPE
               SYNTAX  VlanId
               MAX-ACCESS read-only
               STATUS current
               DESCRIPTION 
                   "The PVLAN Id."
               ::= { hwDhcpSnpBindEntry 7 }
               
    hwDhcpSnpBindCVlanId OBJECT-TYPE
               SYNTAX  VlanId
               MAX-ACCESS read-only
               STATUS current
               DESCRIPTION 
                   "The CVLAN Id."
               ::= { hwDhcpSnpBindEntry 8 }           
               
               
    hwDhcpSnpBindVRFId OBJECT-TYPE
               SYNTAX  Integer32 (0..1000)
               MAX-ACCESS read-only
               STATUS current
               DESCRIPTION 
                   "The VRFID for L3VPN."
               ::= { hwDhcpSnpBindEntry 9 }
               
    hwDhcpSnpBindVsiId OBJECT-TYPE
               SYNTAX  Integer32 (0..4095|65535)
               MAX-ACCESS read-only
               STATUS current
               DESCRIPTION 
                   "The VSI for L2VPN."
               ::= { hwDhcpSnpBindEntry 10 }    
          
    hwDhcpSnpBindMac OBJECT-TYPE
               SYNTAX  MacAddress
               MAX-ACCESS read-only
               STATUS current
               DESCRIPTION 
                    "Mac-address bind. Value of hwDhcpSnpBindMac is optional, if you did not specify 
                     hwDhcpSnpBindMac any value when you created, invalid value 0 is returned after 
                     you perform Get operation of hwDhcpSnpBindMac."
               ::= { hwDhcpSnpBindEntry 11 }   
    
           
    hwDhcpSnpBindIp OBJECT-TYPE
               SYNTAX  IpAddress
               MAX-ACCESS read-only
               STATUS current
               DESCRIPTION 
                   "Ip-address bind."
               ::= { hwDhcpSnpBindEntry 12 } 
    
    
    hwDhcpSnpBindStatus OBJECT-TYPE
               SYNTAX  INTEGER
                   {
                   dynamic(1),
                   static(2)
                   }
               MAX-ACCESS read-only
               STATUS current
               DESCRIPTION 
                   "The bind status:dynamic(1) or static(2)."
               ::= { hwDhcpSnpBindEntry 13 }
    
          
    hwDhcpSnpBindLease OBJECT-TYPE
               SYNTAX  Integer32
               MAX-ACCESS read-only
               STATUS current
               DESCRIPTION 
                   "The time of the dynamic bind lease to be end."
               ::= { hwDhcpSnpBindEntry 14 } 
    
          
    hwDhcpSnpBindRowStatus  OBJECT-TYPE
               SYNTAX  RowStatus
               MAX-ACCESS read-create
               STATUS current
               DESCRIPTION 
                   "The snooping bind table row status."
               ::= { hwDhcpSnpBindEntry 18 }                     
    

    
    hwDhcpSnpFalsePktStatisticTable  OBJECT-TYPE
            SYNTAX SEQUENCE OF HWDhcpSnpFalsePktStatisticEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "The false packets statistic information table."
            ::= { hwDhcpSnpObjects 15 }
    
           
    hwDhcpSnpFalsePktStatisticEntry OBJECT-TYPE
            SYNTAX HWDhcpSnpFalsePktStatisticEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "An entry in the snooping false packets statistic information table."
            INDEX { hwDhcpSnpIfIndex, hwDhcpSnpVlanIndex,hwDhcpSnpVsiIndex }
            ::= { hwDhcpSnpFalsePktStatisticTable 1 }
            
    HWDhcpSnpFalsePktStatisticEntry ::=
            SEQUENCE { 
                hwDhcpSnpStatisticIfDescr        DisplayString,
                hwDhcpSnpStatisticVlanId        VlanIdOrNone,    
                hwChaddrNomatchSrcMacDhcpPktNum     Counter32,
                hwArpNomatchSnpBindTblPktNum    Counter32,
                hwIpNomatchSnpBindTblPktNum        Counter32,
                hwNomatchSnpBindTblDhcpPktNum    Counter32,
                hwUntrustedReplyPktNum        Counter32,
                hwDhcpSnpStatisticVsiId             Integer32,
                hwSnpBindingItemNum                 Counter32,
                hwSnpCfgMaxUserNum                  Counter32,
                hwDhcpPktIfRateDiscardNum         Counter32,   
                hwRequestNoTrustPktNum              Counter32,        
                hwDhcpSnpStatisticBdId          Integer32
                          }
    
    
    hwDhcpSnpStatisticIfDescr OBJECT-TYPE
               SYNTAX  DisplayString(SIZE(1..47))
               MAX-ACCESS read-only
               STATUS current
               DESCRIPTION 
                   "The description of the interfaces."
               ::= { hwDhcpSnpFalsePktStatisticEntry 1 }
    
    hwDhcpSnpStatisticVlanId OBJECT-TYPE
               SYNTAX  VlanIdOrNone
               MAX-ACCESS read-only
               STATUS current
               DESCRIPTION 
                   "The VLAN Id."
               ::= { hwDhcpSnpFalsePktStatisticEntry 2 }
          
    hwChaddrNomatchSrcMacDhcpPktNum OBJECT-TYPE
               SYNTAX  Counter32
               MAX-ACCESS read-only
               STATUS current
               DESCRIPTION 
                   "This object indicates that the number of received DHCP packets in which the source MAC address carried in the CHADDR field is incorrect exceeds the configured threshold. An attacker may attack a target by continuously changing its MAC address."
               ::= { hwDhcpSnpFalsePktStatisticEntry 3 }
    
          
    hwArpNomatchSnpBindTblPktNum OBJECT-TYPE
               SYNTAX  Counter32
               MAX-ACCESS read-only
               STATUS current
               DESCRIPTION 
                   "The false ARP packets match in snooping bind table count."
               ::= { hwDhcpSnpFalsePktStatisticEntry 4 }
    
           
    hwIpNomatchSnpBindTblPktNum OBJECT-TYPE
               SYNTAX  Counter32
               MAX-ACCESS read-only
               STATUS current
               DESCRIPTION 
                   "The false IP packets do not match snooping bind table count."
               ::= { hwDhcpSnpFalsePktStatisticEntry 5 }
    
    
    hwNomatchSnpBindTblDhcpPktNum OBJECT-TYPE
               SYNTAX  Counter32
               MAX-ACCESS read-only
               STATUS current
               DESCRIPTION 
                   "The DHCP request packets do not match the snooping bind table."
               ::= { hwDhcpSnpFalsePktStatisticEntry 6 }      
    
          
    hwUntrustedReplyPktNum OBJECT-TYPE
               SYNTAX  Counter32
               MAX-ACCESS read-only
               STATUS current
               DESCRIPTION 
                   "The distrusted port DHCP reply packets count."
               ::= { hwDhcpSnpFalsePktStatisticEntry 7 } 
               
    hwDhcpSnpStatisticVsiId OBJECT-TYPE
               SYNTAX  Integer32(0..4095|65535)
               MAX-ACCESS read-only
               STATUS current
               DESCRIPTION 
                   "The VSI for L2VPN."
               ::= { hwDhcpSnpFalsePktStatisticEntry 8 }          

    hwSnpBindingItemNum OBJECT-TYPE
               SYNTAX  Counter32
               MAX-ACCESS read-only
               STATUS current
               DESCRIPTION 
                   "The number of current binding-table items."
               ::= { hwDhcpSnpFalsePktStatisticEntry 9 }
               
    hwSnpCfgMaxUserNum OBJECT-TYPE
               SYNTAX  Counter32
               MAX-ACCESS read-only
               STATUS current
               DESCRIPTION 
                   "The limitation of the user number on the interface."
               ::= { hwDhcpSnpFalsePktStatisticEntry 10 }
                              
-- begin add for dhcprateAnddhcpoption82
    hwDhcpPktIfRateDiscardNum OBJECT-TYPE
        SYNTAX     Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "DHCP packets that discarded for the rate limit on the interface. "
        ::= { hwDhcpSnpFalsePktStatisticEntry 11 }      
-- end add for dhcprateAnddhcpoption82
                    
     hwRequestNoTrustPktNum OBJECT-TYPE
               SYNTAX  Counter32
               MAX-ACCESS read-only
               STATUS current
               DESCRIPTION 
                   "The DHCP request packets count dropped due to no trust port."
               ::= { hwDhcpSnpFalsePktStatisticEntry 12 }
          
     hwDhcpSnpStatisticBdId OBJECT-TYPE
               SYNTAX  Integer32
               MAX-ACCESS read-only
               STATUS current
               DESCRIPTION 
                   "The BD Id."
               ::= { hwDhcpSnpFalsePktStatisticEntry 13 }         
                
     hwDhcpSnpCarCfgTable  OBJECT-TYPE
            SYNTAX SEQUENCE OF HWDhcpSnpCarCfgEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                " The DHCP Snooping CAR table for control of the traffic. The CAR is based on IP and Mac, but configured with interface and VLAN."
            ::= { hwDhcpSnpObjects 16 }
    

           
    hwDhcpSnpCarCfgEntry OBJECT-TYPE
            SYNTAX HWDhcpSnpCarCfgEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "An entry in the DHCP Snooping CAR table."
            INDEX { hwDhcpSnpIfIndex, hwDhcpSnpVlanIndex }
            ::= { hwDhcpSnpCarCfgTable 1 }
            
    HWDhcpSnpCarCfgEntry ::=
            SEQUENCE { 
                
                hwDhcpSnpCarEnable     EnabledStatus,
                hwDhcpSnpCarCir        Integer32,
                hwDhcpSnpCarPir        Integer32,
                hwDhcpSnpCaCbs         Integer32,
                hwDhcpSnpCarPbs        Integer32,
                hwDhcpSnpCarYellow     HWTransmitAction,
                hwDhcpSnpCarRed        HWTransmitAction,
                hwDhcpSnpCarRowStatus  RowStatus
                    }
                      
     
     hwDhcpSnpCarEnable OBJECT-TYPE
        SYNTAX     EnabledStatus
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            " Whether to apply CAR on the traffic of specific IP and Mac"
        DEFVAL { disabled }
        ::= { hwDhcpSnpCarCfgEntry 11 } 
                  
     hwDhcpSnpCarCir OBJECT-TYPE
               SYNTAX  Integer32(100..10000000)
               MAX-ACCESS read-create
               STATUS current
               DESCRIPTION 
                   "Committed infomation rate.Unit:kbps."
               ::= { hwDhcpSnpCarCfgEntry 12  }
               
    hwDhcpSnpCarPir OBJECT-TYPE
               SYNTAX  Integer32(100..10000000)
               MAX-ACCESS read-create
               STATUS current
               DESCRIPTION 
                   "Peak information rate.Unit:kbps."
               ::= { hwDhcpSnpCarCfgEntry 13  }
               
    hwDhcpSnpCaCbs OBJECT-TYPE
               SYNTAX  Integer32(64..39314432)
               MAX-ACCESS read-create
               STATUS current
               DESCRIPTION 
                   "Committed burst size.Unit:Byte" 
               DEFVAL { 32768 }
               ::= { hwDhcpSnpCarCfgEntry 14  }
               
    hwDhcpSnpCarPbs OBJECT-TYPE
               SYNTAX  Integer32(64..39314432)
               MAX-ACCESS read-create
               STATUS current
               DESCRIPTION 
                   "Peak burst size.Unit:Byte" 
            DEFVAL { 65536 }          
               ::= { hwDhcpSnpCarCfgEntry 15  } 
               
     hwDhcpSnpCarYellow OBJECT-TYPE
               SYNTAX  HWTransmitAction
               MAX-ACCESS read-create
               STATUS current
               DESCRIPTION 
                   "Yellow action:
                 pass (1)
                 discard (2)"
            DEFVAL { 2 }          
               ::= { hwDhcpSnpCarCfgEntry 16  } 
     hwDhcpSnpCarRed OBJECT-TYPE
               SYNTAX  HWTransmitAction
               MAX-ACCESS read-create
               STATUS current
               DESCRIPTION 
                   "Red action:
                 pass (1)
                 discard (2)"
            DEFVAL { 1 }          
               ::= { hwDhcpSnpCarCfgEntry 17  }
               
     hwDhcpSnpCarRowStatus  OBJECT-TYPE
               SYNTAX  RowStatus
               MAX-ACCESS read-create
               STATUS current
               DESCRIPTION 
                   "The DHCP Snooping CAR table row status."
               ::= { hwDhcpSnpCarCfgEntry 50 } 
                                                   
-- begin add for dhcprateAnddhcpoption82        
    hwDhcpSnpGlobalOption82Format OBJECT-TYPE
        SYNTAX     INTEGER
            {
            hex(1),
            ascii(2)
            }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The format type of Option82,default is hex. "
        ::= { hwDhcpSnpObjects 17 }
        
     hwDhcpSnpGlobalOption82PacketFormat OBJECT-TYPE
        SYNTAX     INTEGER
            {
            extended(1),
            standard(2)
            }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The format mode of Option82,default is extended. "
        ::= { hwDhcpSnpObjects 18 }        
    
     hwDhcpSnpGlobalOption82RemoteId OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (1..63))
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Option82 global remote ID. "
        ::= { hwDhcpSnpObjects 19 }
        
     hwDhcpSnpGlobalOption82RemoteIdSysName OBJECT-TYPE
        SYNTAX     EnabledStatus
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Config Option82 global remote ID as system name,default is disabled. "
        ::= { hwDhcpSnpObjects 20 }
        
    hwDhcpSnpGlobalOption82CircuitId OBJECT-TYPE
        SYNTAX DisplayString (SIZE (1..63))
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Option82 global circuit ID."
        ::= { hwDhcpSnpObjects 21 }
        
    hwDhcpSnpGlobalOption82PktFormatTable OBJECT-TYPE
        SYNTAX SEQUENCE OF HwDhcpSnpGlobalOption82PktFormatEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
                "A table about the packet format of option82."
        ::= { hwDhcpSnpObjects 22 }

    hwDhcpSnpGlobalOption82PktFormatEntry OBJECT-TYPE
        SYNTAX HwDhcpSnpGlobalOption82PktFormatEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
                "An entry about the packet format of option82." 
        INDEX { hwDhcpSnpGlobalOption82Type }
        ::= { hwDhcpSnpGlobalOption82PktFormatTable 1 }
                     
    HwDhcpSnpGlobalOption82PktFormatEntry ::=
        SEQUENCE { 
                 hwDhcpSnpGlobalOption82Type
                 INTEGER,
                 hwDhcpSnpGlobalOption82PktFormat 
	         INTEGER,        		                       	
	         hwDhcpSnpGlobalOption82DefString
	         DisplayString     
                }
                                        
   hwDhcpSnpGlobalOption82Type OBJECT-TYPE
        SYNTAX 	INTEGER
        {
	  circuitid(1),
	  remoteid(2)
        } 
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
                " The option of the option82"
        ::= { hwDhcpSnpGlobalOption82PktFormatEntry 1 }
                        
   hwDhcpSnpGlobalOption82PktFormat OBJECT-TYPE
        SYNTAX 	INTEGER
	{
	common(1),
	extend(2),
	userdefined(3),
	default(4)
	} 
	 	                       	                                
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
                "The format of the option82"
        ::= { hwDhcpSnpGlobalOption82PktFormatEntry 2 }
                
   hwDhcpSnpGlobalOption82DefString OBJECT-TYPE
        SYNTAX DisplayString (SIZE (1..255))
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
                "The content of the option when the format is user defined."
        ::= { hwDhcpSnpGlobalOption82PktFormatEntry 3 } 
                         
                		
--  end add for dhcprateAnddhcpoption82   

    hwDhcpSnpStaticBindTable  OBJECT-TYPE
            SYNTAX SEQUENCE OF HWDhcpSnpStaticBindEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "The snooping static bind table."
            ::= { hwDhcpSnpObjects 23 }
    
          
    hwDhcpSnpStaticBindEntry OBJECT-TYPE
            SYNTAX HWDhcpSnpStaticBindEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "An entry in the snooping static bind table."
            INDEX { hwDhcpSnpStaticBindIpIndex, hwDhcpSnpStaticBindMacIndex, hwDhcpSnpStaticBindPVlanIndex, 
                hwDhcpSnpStaticBindCVlanIndex, hwDhcpSnpStaticBindIfIndex }
            ::= { hwDhcpSnpStaticBindTable 1 }
            
    HWDhcpSnpStaticBindEntry ::=
            SEQUENCE { 
                hwDhcpSnpStaticBindIpIndex              IpAddress,
                hwDhcpSnpStaticBindMacIndex            MacAddress,                
                hwDhcpSnpStaticBindPVlanIndex              VlanId,
                hwDhcpSnpStaticBindCVlanIndex              VlanId,
                hwDhcpSnpStaticBindIfIndex   InterfaceIndexOrZero,
                hwDhcpSnpStaticBindRowStatus             RowStatus
                }
    
    hwDhcpSnpStaticBindIpIndex OBJECT-TYPE
               SYNTAX  IpAddress
               MAX-ACCESS not-accessible
               STATUS current
               DESCRIPTION 
                   "Index: the IP of the bind table."
               ::= { hwDhcpSnpStaticBindEntry 1 }
               
    hwDhcpSnpStaticBindMacIndex OBJECT-TYPE
               SYNTAX  MacAddress
               MAX-ACCESS not-accessible
               STATUS current
               DESCRIPTION 
                   "Index: the MAC of the bind table."
               ::= { hwDhcpSnpStaticBindEntry 2 }

    hwDhcpSnpStaticBindPVlanIndex OBJECT-TYPE
               SYNTAX  VlanId
               MAX-ACCESS not-accessible
               STATUS current
               DESCRIPTION 
                   "Index: the P-VLAN of the bind table."
               ::= { hwDhcpSnpStaticBindEntry 3 }
               
    hwDhcpSnpStaticBindCVlanIndex OBJECT-TYPE
               SYNTAX  VlanId
               MAX-ACCESS not-accessible
               STATUS current
               DESCRIPTION 
                   "Index: the C-VLAN of the bind table."
               ::= { hwDhcpSnpStaticBindEntry 4 }
                   
    hwDhcpSnpStaticBindIfIndex OBJECT-TYPE
               SYNTAX  InterfaceIndexOrZero
               MAX-ACCESS not-accessible
               STATUS current
               DESCRIPTION 
                   "Index: the interface index of the bind table."
               ::= { hwDhcpSnpStaticBindEntry 5 }

           
    hwDhcpSnpStaticBindRowStatus  OBJECT-TYPE
               SYNTAX  RowStatus
               MAX-ACCESS read-create
               STATUS current
               DESCRIPTION 
                   "The static snooping bind table row status."
               ::= { hwDhcpSnpStaticBindEntry 20 }                     
   
   
    hwDhcpSnpServerDetectStatus OBJECT-TYPE
              SYNTAX EnabledStatus
              MAX-ACCESS read-write
              STATUS current
              DESCRIPTION
              "This object indicates whether detection against the pseudo DHCP server is enabled.
                 The default value is disabled(2)."
              ::= { hwDhcpSnpObjects 24 }

        hwDhcpSnpBdFalsePktTable OBJECT-TYPE
            SYNTAX SEQUENCE OF HwDhcpSnpBdFalsePktEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
            "The false packets statistic information table."
           ::= { hwDhcpSnpObjects 25 }
           
    hwDhcpSnpBdFalsePktEntry OBJECT-TYPE
           SYNTAX HwDhcpSnpBdFalsePktEntry
           MAX-ACCESS not-accessible
           STATUS current
           DESCRIPTION
           "An entry in the snooping false packets statistic information table."
           INDEX { hwDhcpSnpBdIndex }
           ::= { hwDhcpSnpBdFalsePktTable 1 }

    HwDhcpSnpBdFalsePktEntry ::=
            SEQUENCE {
                hwDhcpSnpBdIndex         Integer32,
                hwBdNomatchSnpBindTblDhcpPktNum    Counter32,
                hwBdChaddrNomatchSrcMacDhcpPktNum     Counter32,
                hwBdArpNomatchSnpBindTblPktNum    Counter32,
                hwBdIpNomatchSnpBindTblPktNum        Counter32,
                hwBdUntrustedReplyPktNum        Counter32,
                hwBdSnpBindingItemNum                 Counter32,
                hwBdSnpCfgMaxUserNum               Counter32
                }
    
    hwDhcpSnpBdIndex OBJECT-TYPE
            SYNTAX Integer32 (1..32768)
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
            "Bridge-domain ID."
           ::= { hwDhcpSnpBdFalsePktEntry 1 }
              
    hwBdNomatchSnpBindTblDhcpPktNum OBJECT-TYPE
          SYNTAX Counter32
          MAX-ACCESS read-only
          STATUS current
          DESCRIPTION
          "The DHCP request packets do not match the snooping bind table of the bridge domain."
          ::= { hwDhcpSnpBdFalsePktEntry 2 }
     
     hwBdChaddrNomatchSrcMacDhcpPktNum OBJECT-TYPE
          SYNTAX Counter32
          MAX-ACCESS read-only
          STATUS current
          DESCRIPTION
          "The false packets(chaddr in DHCP packets is not same with source Mac-address in
                   Ethernet frame) count of the bridge domain."
          ::= { hwDhcpSnpBdFalsePktEntry 3 }
    
    hwBdArpNomatchSnpBindTblPktNum OBJECT-TYPE
          SYNTAX Counter32
          MAX-ACCESS read-only
          STATUS current
          DESCRIPTION
          "The false ARP packets match in snooping bind table count of the bridge domain."
          ::= { hwDhcpSnpBdFalsePktEntry 4 }
    
    hwBdIpNomatchSnpBindTblPktNum OBJECT-TYPE
          SYNTAX Counter32
          MAX-ACCESS read-only
          STATUS current
          DESCRIPTION
          "The false IP packets do not match snooping bind table count of the bridge domain."
          ::= { hwDhcpSnpBdFalsePktEntry 5 }
    
    hwBdUntrustedReplyPktNum OBJECT-TYPE
          SYNTAX Counter32
          MAX-ACCESS read-only
          STATUS current
          DESCRIPTION
          "The distrusted port DHCP reply packets count of the bridge domain."
          ::= { hwDhcpSnpBdFalsePktEntry 6 }
  
    hwBdSnpBindingItemNum OBJECT-TYPE
          SYNTAX Counter32
          MAX-ACCESS read-only
          STATUS current
          DESCRIPTION
          "The number of current binding-table items of the bridge domain."
          ::= { hwDhcpSnpBdFalsePktEntry 7 }

    hwBdSnpCfgMaxUserNum OBJECT-TYPE
          SYNTAX Counter32
          MAX-ACCESS read-only
          STATUS current
          DESCRIPTION
          "The limitation of the user number of the bridge domain."
          ::= { hwDhcpSnpBdFalsePktEntry 8 }
              
    hwSnpBindingItemGlobalNum OBJECT-TYPE
            SYNTAX Counter32
            MAX-ACCESS accessible-for-notify
            STATUS current
            DESCRIPTION
                "The number of binding items on the device."
            ::= { hwDhcpSnpObjects 31 }

    hwSnpBindingItemResourceSize OBJECT-TYPE
            SYNTAX Counter32
            MAX-ACCESS accessible-for-notify
            STATUS current
            DESCRIPTION
                "The resource size of binding items on the device."
            ::= { hwDhcpSnpObjects 32 }                  
 
   hwDhcpSnpTrapRemoteBackupType OBJECT-TYPE
            SYNTAX DisplayString(SIZE(1..16))
            MAX-ACCESS accessible-for-notify
            STATUS current
            DESCRIPTION
                "The tranfer protocol for DHCP snooping user-bind table remote backup."
            ::= { hwDhcpSnpObjects 33 }  

    hwDhcpSnpTrapObjects OBJECT IDENTIFIER ::= { hwDhcpSnpObjects 34 }    

    hwDhcpSnpUsrNum OBJECT-TYPE
            SYNTAX Counter32
            MAX-ACCESS accessible-for-notify
            STATUS current
            DESCRIPTION
                "Number of DHCP snooping entries on the device."
            ::= { hwDhcpSnpTrapObjects 1 }

    hwDhcpSnpMaxUsrNum OBJECT-TYPE
            SYNTAX Counter32
            MAX-ACCESS accessible-for-notify
            STATUS current
            DESCRIPTION
                "Maximum number of DHCP snooping entries on the device."
            ::= { hwDhcpSnpTrapObjects 2 }

    hwDhcpv6SnpUsrNum OBJECT-TYPE
            SYNTAX Counter32
            MAX-ACCESS accessible-for-notify
            STATUS current
            DESCRIPTION
                "Number of DHCPv6 snooping binding entries on the device."
            ::= { hwDhcpSnpTrapObjects 3 }

    hwDhcpv6SnpMaxUsrNum OBJECT-TYPE
            SYNTAX Counter32
            MAX-ACCESS accessible-for-notify
            STATUS current
            DESCRIPTION
                "Maximum number of DHCPv6 snooping binding entries on the device."
            ::= { hwDhcpSnpTrapObjects 4 }

    hwDhcpv6SnpIfIndex OBJECT-TYPE
            SYNTAX Integer32 (1..2147483647)
            MAX-ACCESS accessible-for-notify
            STATUS current
            DESCRIPTION
                "Interface index of DHCPv6 snooping binding entry."
            ::= { hwDhcpSnpTrapObjects 5 }

    hwDhcpv6SnpIfName OBJECT-TYPE
            SYNTAX DisplayString
            MAX-ACCESS accessible-for-notify
            STATUS current
            DESCRIPTION
                "Interface name of DHCPv6 snooping binding entry."
            ::= { hwDhcpSnpTrapObjects 6 }

    hwIpv6Nomatchv6SnpBindTblPktNum OBJECT-TYPE
            SYNTAX Counter64
            MAX-ACCESS accessible-for-notify
            STATUS current
            DESCRIPTION
                "The false IPv6 packets do not match DHCPv6 snooping bind entry count"
            ::= { hwDhcpSnpTrapObjects 7 }

--
-- Traps Identifier
--

    hwDhcpSnpTraps OBJECT IDENTIFIER ::= { hwDhcpSnpMib 2 }
    
    hwDhcpSnpChaddrAlarm NOTIFICATION-TYPE
            OBJECTS { hwDhcpSnpStatisticIfDescr,hwDhcpSnpStatisticVlanId,hwChaddrNomatchSrcMacDhcpPktNum } 
            STATUS current     
            DESCRIPTION 
                "The CHADDR field value in the packet is inconsistent with the source MAC address."
            ::= { hwDhcpSnpTraps 1 }
                  
    hwArpNomatchSnpBindTblPktAlarm NOTIFICATION-TYPE
            OBJECTS { hwDhcpSnpStatisticIfDescr,hwDhcpSnpStatisticVlanId,hwArpNomatchSnpBindTblPktNum } 
            STATUS current     
            DESCRIPTION 
                "Arp packets do not match the snooping bind table."
            ::= { hwDhcpSnpTraps 2 } 
                  
    hwIpNomatchSnpBindTblPktAlarm NOTIFICATION-TYPE
            OBJECTS { hwDhcpSnpStatisticIfDescr,hwDhcpSnpStatisticVlanId,hwIpNomatchSnpBindTblPktNum } 
            STATUS current     
            DESCRIPTION 
                "Ip packets do not match the snooping bind table. "
            ::= { hwDhcpSnpTraps 3 } 
                  
    hwUntrustedReplyPktAlarm NOTIFICATION-TYPE
            OBJECTS { hwDhcpSnpStatisticIfDescr,hwDhcpSnpStatisticVlanId,hwUntrustedReplyPktNum } 
            STATUS current     
            DESCRIPTION 
                "Untrusted ports have received the Dhcp reply packets."
            ::= { hwDhcpSnpTraps 4 }
                                
    hwNomatchSnpBindTblDhcpPktAlarm NOTIFICATION-TYPE
            OBJECTS { hwDhcpSnpStatisticIfDescr,hwDhcpSnpStatisticVlanId,hwNomatchSnpBindTblDhcpPktNum } 
            STATUS current     
            DESCRIPTION 
                "There are Dhcp request packets do not match the snooping bind table."
            ::= {hwDhcpSnpTraps 5 }  
            
    hwDhcpPktRateAlarm NOTIFICATION-TYPE
            OBJECTS { hwDhcpPktRateDiscardNum } 
            STATUS current     
            DESCRIPTION 
                "The rate of Dhcp packets received is too large."
            ::= { hwDhcpSnpTraps 6 }

    hwSnpUserNumberAlarm NOTIFICATION-TYPE
            OBJECTS { hwDhcpSnpStatisticIfDescr,hwDhcpSnpStatisticVlanId,hwSnpBindingItemNum,hwSnpCfgMaxUserNum } 
            STATUS current     
            DESCRIPTION 
                "The number of the binding items exceeds the threshold of user-limit on the interface."
            ::= {hwDhcpSnpTraps 7 }     
	             
   hwSnpUserNumberAlarmIf NOTIFICATION-TYPE
            OBJECTS { hwDhcpSnpStatisticIfDescr,hwSnpBindingItemNum,hwSnpCfgMaxUserNum } 
            STATUS current     
            DESCRIPTION 
                "The number of DHCP user on the interface exceeds alarm threshold."
            ::= {hwDhcpSnpTraps 8 }
    hwSnpUserNumberAlarmIfResume NOTIFICATION-TYPE
            OBJECTS { hwDhcpSnpStatisticIfDescr,hwSnpBindingItemNum,hwSnpCfgMaxUserNum } 
            STATUS current     
            DESCRIPTION 
                "The number of DHCP user on the interface descends to alarm threshold."
            ::= {hwDhcpSnpTraps 9 }                
    hwSnpUserNumberAlarmVlan NOTIFICATION-TYPE
            OBJECTS { hwDhcpSnpStatisticVlanId,hwSnpBindingItemNum,hwSnpCfgMaxUserNum } 
            STATUS current     
            DESCRIPTION 
                "The number of DHCP user on the vlan exceeds alarm threshold."
            ::= {hwDhcpSnpTraps 10 }   
    hwSnpUserNumberAlarmVlanResume NOTIFICATION-TYPE
            OBJECTS { hwDhcpSnpStatisticVlanId,hwSnpBindingItemNum,hwSnpCfgMaxUserNum } 
            STATUS current     
            DESCRIPTION 
                "The number of DHCP user on the vlan descends to alarm threshold."
            ::= {hwDhcpSnpTraps 11 }
    hwSnpUserNumberAlarmGlobal NOTIFICATION-TYPE
            OBJECTS { hwSnpBindingItemNum,hwSnpCfgMaxUserNum } 
            STATUS current     
            DESCRIPTION 
                "The number of DHCP global user  exceeds alarm threshold."
            ::= {hwDhcpSnpTraps 12 }
    hwSnpUserNumberAlarmGlobalResume NOTIFICATION-TYPE
            OBJECTS { hwSnpBindingItemNum,hwSnpCfgMaxUserNum } 
            STATUS current     
            DESCRIPTION 
                "The number of DHCP global user descends to alarm threshold."
            ::= {hwDhcpSnpTraps 13 }           
    hwNdSnpUserNumberAlarmIf NOTIFICATION-TYPE
            OBJECTS { hwDhcpSnpStatisticIfDescr,hwSnpBindingItemNum,hwSnpCfgMaxUserNum } 
            STATUS current     
            DESCRIPTION 
                "The number of ND user on the interface exceeds alarm threshold."
            ::= {hwDhcpSnpTraps 14 }
    hwNdSnpUserNumberAlarmIfResume NOTIFICATION-TYPE
            OBJECTS { hwDhcpSnpStatisticIfDescr,hwSnpBindingItemNum,hwSnpCfgMaxUserNum } 
            STATUS current     
            DESCRIPTION 
                "The number of ND user on the interface descends to alarm threshold."
            ::= {hwDhcpSnpTraps 15 }            
    hwNdSnpUserNumberAlarmGlobal NOTIFICATION-TYPE
            OBJECTS { hwSnpBindingItemNum,hwSnpCfgMaxUserNum } 
            STATUS current     
            DESCRIPTION 
                "The number of ND global user exceeds alarm threshold."
            ::= {hwDhcpSnpTraps 16 }
    hwNdSnpUserNumberAlarmGlobalResume NOTIFICATION-TYPE
            OBJECTS { hwSnpBindingItemNum,hwSnpCfgMaxUserNum } 
            STATUS current     
            DESCRIPTION 
                "The number of ND global user descends to alarm threshold."
            ::= {hwDhcpSnpTraps 17 }
   hwBdNomatchSnpBindTblDhcpPktAlarm NOTIFICATION-TYPE
            OBJECTS { hwBdNomatchSnpBindTblDhcpPktNum } 
            STATUS current     
            DESCRIPTION 
                "There are Dhcp request packets do not match the snooping bind table on the bridge domain."
            ::= {hwDhcpSnpTraps 18 }
    hwBdDhcpSnpChaddrAlarm NOTIFICATION-TYPE
            OBJECTS { hwBdChaddrNomatchSrcMacDhcpPktNum } 
            STATUS current     
            DESCRIPTION 
                "CHADDR in Dhcp packets do not match source Mac-address in Ethernet frame on the bridge domain."
            ::= { hwDhcpSnpTraps 19 }                 
    hwBdArpNomatchSnpBindTblPktAlarm NOTIFICATION-TYPE
            OBJECTS { hwBdArpNomatchSnpBindTblPktNum } 
            STATUS current     
            DESCRIPTION 
                "Arp packets do not match the snooping bind table on the bridge domain."
            ::= { hwDhcpSnpTraps 20 }                
    hwBdIpNomatchSnpBindTblPktAlarm NOTIFICATION-TYPE
            OBJECTS { hwBdIpNomatchSnpBindTblPktNum } 
            STATUS current     
            DESCRIPTION 
                "Ip packets do not match the snooping bind table on the bridge domain."
            ::= { hwDhcpSnpTraps 21 }                 
    hwBdUntrustedReplyPktAlarm NOTIFICATION-TYPE
            OBJECTS { hwBdUntrustedReplyPktNum } 
            STATUS current     
            DESCRIPTION 
                "Untrusted ports have received the Dhcp reply packets on the bridge domain."
            ::= { hwDhcpSnpTraps 22 } 
    hwBdSnpUserNumberAlarm NOTIFICATION-TYPE
            OBJECTS { hwBdSnpBindingItemNum,hwBdSnpCfgMaxUserNum } 
            STATUS current     
            DESCRIPTION 
                "The number of the binding items exceeds the threshold of user-limit on the bridge domain."
            ::= {hwDhcpSnpTraps 23 }
       hwDhcpSnpChaddrAlarmResume NOTIFICATION-TYPE
             OBJECTS { hwDhcpSnpStatisticIfDescr,hwDhcpSnpStatisticVlanId,hwChaddrNomatchSrcMacDhcpPktNum }
             STATUS current
            DESCRIPTION
               "The number of the discarded DHCP packets in which the CHADDR field is inconsistent with the source MAC address descends to the threshold on the interface."
            ::= { hwDhcpSnpTraps 24 }
    hwArpNomatchSnpBindTblPktAlarmResume NOTIFICATION-TYPE
            OBJECTS { hwDhcpSnpStatisticIfDescr,hwDhcpSnpStatisticVlanId,hwArpNomatchSnpBindTblPktNum } 
            STATUS current     
            DESCRIPTION 
                "The number of the discarded ARP packets that do not match the binding table descends to the threshold on the interface."
            ::= { hwDhcpSnpTraps 25 }    
    hwIpNomatchSnpBindTblPktAlarmResume NOTIFICATION-TYPE
            OBJECTS { hwDhcpSnpStatisticIfDescr,hwDhcpSnpStatisticVlanId,hwIpNomatchSnpBindTblPktNum } 
            STATUS current     
            DESCRIPTION 
                "The number of the discarded IP packets that do not match the binding table descends to the threshold on the interface."
            ::= { hwDhcpSnpTraps 26 } 
    hwUntrustedReplyPktAlarmResume NOTIFICATION-TYPE
            OBJECTS { hwDhcpSnpStatisticIfDescr,hwDhcpSnpStatisticVlanId,hwUntrustedReplyPktNum } 
            STATUS current     
            DESCRIPTION 
                "The number of the discarded DHCP reply packets on the untrusted interface descends to the threshold."
            ::= { hwDhcpSnpTraps 27 }  
    hwNomatchSnpBindTblDhcpPktAlarmResume NOTIFICATION-TYPE
            OBJECTS { hwDhcpSnpStatisticIfDescr,hwDhcpSnpStatisticVlanId,hwNomatchSnpBindTblDhcpPktNum } 
            STATUS current     
            DESCRIPTION 
                "The number of the discarded DHCP request packets that do not match the binding table descends to the threshold on the interface."
            ::= { hwDhcpSnpTraps 28 }    
    hwSnpUserNumberAlarmResume NOTIFICATION-TYPE
            OBJECTS { hwDhcpSnpStatisticIfDescr,hwDhcpSnpStatisticVlanId,hwSnpBindingItemNum,hwSnpCfgMaxUserNum } 
            STATUS current     
            DESCRIPTION 
                "The number of the binding items descends to the threshold of user-limit on the interface."
            ::= { hwDhcpSnpTraps 29 }
	hwSnpBindingItemResourceAlarm NOTIFICATION-TYPE
            OBJECTS { hwSnpBindingItemGlobalNum,hwSnpBindingItemResourceSize } 
            STATUS current     
            DESCRIPTION 
                "The number of binding items exceeded the resource threshold of the whole device."
            ::= { hwDhcpSnpTraps 30 }
    hwNomatchSnpBindTblDhcpv6PktAlarm NOTIFICATION-TYPE
            OBJECTS { hwDhcpSnpStatisticIfDescr,hwDhcpSnpStatisticVlanId } 
            STATUS current     
            DESCRIPTION 
                "There are Dhcpv6 request packets do not match the snooping bind table."
            ::= {hwDhcpSnpTraps 31 }  
    hwNomatchSnpBindTblNDPktAlarm NOTIFICATION-TYPE
            OBJECTS { hwDhcpSnpStatisticIfDescr,hwDhcpSnpStatisticVlanId } 
            STATUS current     
            DESCRIPTION 
                "There are ND packets do not match the snooping bind table."
            ::= {hwDhcpSnpTraps 32 }  
    
   hwSnpRemoteBackupAlarm NOTIFICATION-TYPE
            OBJECTS { hwDhcpSnpTrapRemoteBackupType } 
            STATUS current     
            DESCRIPTION 
                "DHCP snooping user-bind table failed to be recovered from remote server."
            ::= {hwDhcpSnpTraps 33 }
   hwSnpRemoteBackupAlarmResume NOTIFICATION-TYPE
             OBJECTS { hwDhcpSnpTrapRemoteBackupType }
             STATUS current
            DESCRIPTION
               "DHCP snooping user-bind table is successfully recovered from remote server."
            ::= { hwDhcpSnpTraps 34 }

     hwRequestNoTrustPktAlarm NOTIFICATION-TYPE
            OBJECTS { hwDhcpSnpStatisticIfDescr,hwDhcpSnpStatisticVlanId,hwRequestNoTrustPktNum } 
            STATUS current
            DESCRIPTION
                "Drop DHCP request packets because of dhcp snooping trust port is not configured or trust port is down."
            ::= { hwDhcpSnpTraps 35 }  
     
      hwNomatchSnpBindTblNDPktAlarmBd NOTIFICATION-TYPE
            OBJECTS { hwDhcpSnpStatisticIfDescr,hwDhcpSnpStatisticBdId } 
            STATUS current     
            DESCRIPTION 
                "There are ND packets do not match the snooping bind table."
            ::= { hwDhcpSnpTraps 36 }

    hwDhcpSnpChaddrAlarmBd NOTIFICATION-TYPE
            OBJECTS { hwDhcpSnpStatisticIfDescr,hwDhcpSnpStatisticBdId,hwChaddrNomatchSrcMacDhcpPktNum } 
            STATUS current     
            DESCRIPTION 
                "There are Dhcp request packets do not match the snooping bind table."
            ::= { hwDhcpSnpTraps 37 }
 
     hwNomatchSnpBindTblDhcpPktAlarmBd NOTIFICATION-TYPE
            OBJECTS { hwDhcpSnpStatisticIfDescr,hwDhcpSnpStatisticBdId,hwNomatchSnpBindTblDhcpPktNum } 
            STATUS current     
            DESCRIPTION 
                "There are Dhcp request packets do not match the snooping bind table."
            ::= {hwDhcpSnpTraps 38 }     
            
    hwUntrustedReplyPktAlarmBd NOTIFICATION-TYPE
            OBJECTS { hwDhcpSnpStatisticIfDescr,hwDhcpSnpStatisticBdId,hwUntrustedReplyPktNum } 
            STATUS current     
            DESCRIPTION 
                "Untrusted ports have received the Dhcp reply packets."
            ::= { hwDhcpSnpTraps 39 }    
     
    hwDhcpSnpBindTblThreshold  NOTIFICATION-TYPE
            OBJECTS { hwDhcpSnpUsrNum, hwDhcpSnpMaxUsrNum } 
            STATUS current
            DESCRIPTION
                "This object indicates that an alarm is generated when the number of DHCP snooping entries on the device exceeds 80% of the upper limit."
            ::= {hwDhcpSnpTraps 40 }

    hwDhcpSnpBindTblThresholdResume NOTIFICATION-TYPE
            OBJECTS { hwDhcpSnpUsrNum, hwDhcpSnpMaxUsrNum } 
            STATUS current
            DESCRIPTION
                "This object indicates that a clear alarm is generated when the number of DHCP snooping entries on the device falls below 70% of the upper limit."
            ::= {hwDhcpSnpTraps 41 }        

    hwDhcpSnpBindTblExhaust NOTIFICATION-TYPE
            OBJECTS { hwDhcpSnpMaxUsrNum }
            STATUS current
            DESCRIPTION
                "This object indicates that an alarm is generated when the number of DHCP snooping entries on the device reaches the upper limit."
            ::= {hwDhcpSnpTraps 42 }

    hwDhcpSnpBindTblExhaustResume NOTIFICATION-TYPE
            OBJECTS { hwDhcpSnpMaxUsrNum }
            STATUS current
            DESCRIPTION
                "This object indicates that a clear alarm is generated when the number of DHCP snooping entries on the device falls below 90% of the upper limit."
            ::= {hwDhcpSnpTraps 43 }

    hwDhcpv6SnpBindTblThreshold  NOTIFICATION-TYPE
            OBJECTS { hwDhcpv6SnpUsrNum, hwDhcpv6SnpMaxUsrNum} 
            STATUS current
            DESCRIPTION
                "This object indicates that an alarm is generated when the number of DHCPv6 snooping entries on the device exceeds 80% of the upper limit."
            ::= {hwDhcpSnpTraps 44 }

    hwDhcpv6SnpBindTblThresholdResume NOTIFICATION-TYPE
            OBJECTS { hwDhcpv6SnpUsrNum, hwDhcpv6SnpMaxUsrNum} 
            STATUS current
            DESCRIPTION
                "This object indicates that a clear alarm is generated when the number of DHCPv6 snooping entries on the device falls below 70% of the upper limit."
            ::= {hwDhcpSnpTraps 45 }

    hwDhcpv6SnpBindTblExhaust NOTIFICATION-TYPE
            OBJECTS { hwDhcpv6SnpMaxUsrNum}
            STATUS current
            DESCRIPTION
                "This object indicates that an alarm is generated when the number of DHCPv6 snooping entries on the device reaches the upper limit."
            ::= {hwDhcpSnpTraps 46 }

    hwDhcpv6SnpBindTblExhaustResume NOTIFICATION-TYPE
            OBJECTS { hwDhcpv6SnpMaxUsrNum}
            STATUS current
            DESCRIPTION
                "This object indicates that a clear alarm is generated when the number of DHCPv6 snooping entries on the device falls below 90% of the upper limit."
            ::= {hwDhcpSnpTraps 47 }

    hwIpv6NomatchV6SnpBindTblPktAlarm NOTIFICATION-TYPE
            OBJECTS { hwDhcpv6SnpIfIndex, hwDhcpv6SnpIfName, hwIpv6Nomatchv6SnpBindTblPktNum}
            STATUS current
            DESCRIPTION
                "The number of the discarded IPv6 packets that do not match the binding table exceeded the threshold on the interface."
            ::= {hwDhcpSnpTraps 48 }
  
    hwDHCPv6SnpDetectAlarm NOTIFICATION-TYPE
            OBJECTS { hwDhcpSnpBindMac,hwDhcpSnpBindIfDescr,hwDhcpSnpBindPVlanId} 
            STATUS current     
            DESCRIPTION 
                "There are Dhcpv6 request packets do not match the snooping bind table."
            ::= {hwDhcpSnpTraps 49 }  


    hwDhcpSnpCompliance OBJECT IDENTIFIER ::= { hwDhcpSnpMib 3 }
    
    
	
    hwDhcpSnpMibGroups OBJECT IDENTIFIER ::= { hwDhcpSnpCompliance 1 }
             
    hwDhcpSnpCfgGroup OBJECT-GROUP
            OBJECTS { hwDhcpSnpGlobal, hwDhcpPktRateCheck, hwDhcpPktRate, hwDhcpPktRateAlarmThreshold, 
            hwDhcpPktRateAlarmEnable, hwDhcpSnpBindTblNomatchedArpGlobalAction, hwDhcpSnpBindTblNomatchedIpGlobalAction,
            hwDhcpSnpBindTblAutosaveFilename, hwDhcpSnpBindTblAutosave, hwDhcpSnpGlobalThreshold, hwDhcpSnpEnable,
                    hwDhcpTrusted, hwDhcpOption82Insert, hwDhcpOption82Rebuild, hwDhcpChaddrCheck,
                    hwDhcpChaddrAlarmThreshold, hwDhcpChaddrAlarmEnable, hwDhcpArpCheck, hwDhcpSnpBindTblNomatchedArpAction,
                    hwDhcpArpAlarmThreshold, hwDhcpArpAlarmEnable, hwDhcpIpCheck, hwDhcpSnpBindTblNomatchedIpAction,
                    hwDhcpIpAlarmThreshold, hwDhcpIpAlarmEnable, hwDhcpUntrustReplyAlarmThreshold, hwDhcpUntrustReplyAlarmEnable,
                    hwDhcpSnpBindTblCheck, hwDhcpSnpBindTblAlarmThreshold, hwDhcpSnpBindTblAlarmEnable,hwDhcpSnpMatchMode,
                    hwDhcpSnpDynamicItemCheck,hwDhcpSnpMaxUserNum,hwDhcpSnpUserLimitAlarmThreshold,hwDhcpSnpUserLimitAlarmEnable,hwDhcpSnpCfgTblRowStatus,
-- begin add for dhcprateAnddhcpoption82                    
                    hwDhcpPktIfRateCheck,hwDhcpPktIfRate,hwDhcpPktIfRateAlarmThreshold,hwDhcpPktIfRateAlarmEnable,hwDhcpSnpIfVlanOption82RemoteId,hwDhcpSnpIfVlanOption82CircuitId,
-- end add for dhcprateAnddhcpoption82                    
                    hwDhcpSnpCarEnable,hwDhcpSnpCarCir,hwDhcpSnpCarPir,hwDhcpSnpCaCbs,hwDhcpSnpCarPbs,hwDhcpSnpCarYellow,hwDhcpSnpCarRed,
                    hwDhcpSnpGlobalOption82Format,hwDhcpSnpGlobalOption82PacketFormat,hwDhcpSnpGlobalOption82RemoteId,hwDhcpSnpGlobalOption82RemoteIdSysName,hwDhcpSnpGlobalOption82CircuitId,
                    hwDhcpSnpGlobalOption82PktFormat,hwDhcpSnpGlobalOption82DefString,
                    hwDhcpSnpCarRowStatus, hwDhcpSnpServerDetectStatus, hwSnpBindingItemGlobalNum, hwSnpBindingItemResourceSize, hwDhcpSnpTrapRemoteBackupType }

             STATUS current
            DESCRIPTION 
                "The DHCPSNP's Configuration group."
            ::= { hwDhcpSnpMibGroups 1 }
    
    hwDhcpSnpBindGroup OBJECT-GROUP
            OBJECTS { hwDhcpSnpBindIfDescr, hwDhcpSnpBindPVlanId, hwDhcpSnpBindCVlanId, hwDhcpSnpBindVRFId, hwDhcpSnpBindMac,
            hwDhcpSnpBindVsiId, hwDhcpSnpBindIp, hwDhcpSnpBindStatus, hwDhcpSnpBindLease ,hwDhcpSnpBindRowStatus}
            STATUS current
            DESCRIPTION 
                "The DHCPSNP's Bind group."
            ::= { hwDhcpSnpMibGroups 2 }
    
    hwDhcpSnpStatisticGroup OBJECT-GROUP
            OBJECTS { hwDhcpSnpStatisticIfDescr,hwDhcpSnpStatisticVlanId,hwChaddrNomatchSrcMacDhcpPktNum, hwArpNomatchSnpBindTblPktNum, hwIpNomatchSnpBindTblPktNum, 
            hwNomatchSnpBindTblDhcpPktNum, hwUntrustedReplyPktNum, hwDhcpPktRateDiscardNum,hwDhcpSnpStatisticVsiId,hwSnpBindingItemNum,hwSnpCfgMaxUserNum
-- begin add for dhcprateAnddhcpoption82            
            ,hwDhcpPktIfRateDiscardNum, hwRequestNoTrustPktNum
-- end add for dhcprateAnddhcpoption82    
            }
            STATUS current
            DESCRIPTION 
                "The DHCPSNP's Statistic group."
            ::= { hwDhcpSnpMibGroups 3 }
            
    hwDhcpSnpTrapGroup NOTIFICATION-GROUP
            NOTIFICATIONS { hwDhcpSnpChaddrAlarm, hwArpNomatchSnpBindTblPktAlarm, hwIpNomatchSnpBindTblPktAlarm,
            hwUntrustedReplyPktAlarm, hwNomatchSnpBindTblDhcpPktAlarm, hwDhcpPktRateAlarm, hwSnpUserNumberAlarm,
            hwSnpUserNumberAlarmIf, hwSnpUserNumberAlarmIfResume, hwSnpUserNumberAlarmVlan, hwSnpUserNumberAlarmVlanResume,
            hwSnpUserNumberAlarmGlobal, hwSnpUserNumberAlarmGlobalResume, hwNdSnpUserNumberAlarmIf, hwNdSnpUserNumberAlarmIfResume,
            hwNdSnpUserNumberAlarmGlobal, hwNdSnpUserNumberAlarmGlobalResume, hwBdNomatchSnpBindTblDhcpPktAlarm, hwBdDhcpSnpChaddrAlarm,
            hwBdArpNomatchSnpBindTblPktAlarm, hwBdIpNomatchSnpBindTblPktAlarm, hwBdUntrustedReplyPktAlarm, hwBdSnpUserNumberAlarm,
            hwDhcpSnpChaddrAlarmResume, hwArpNomatchSnpBindTblPktAlarmResume, hwIpNomatchSnpBindTblPktAlarmResume,
            hwUntrustedReplyPktAlarmResume, hwNomatchSnpBindTblDhcpPktAlarmResume, hwSnpUserNumberAlarmResume,hwSnpBindingItemResourceAlarm,
			hwNomatchSnpBindTblDhcpv6PktAlarm, hwNomatchSnpBindTblNDPktAlarm, hwSnpRemoteBackupAlarm, hwSnpRemoteBackupAlarmResume, hwRequestNoTrustPktAlarm,   
			hwNomatchSnpBindTblNDPktAlarmBd, hwDhcpSnpChaddrAlarmBd, hwNomatchSnpBindTblDhcpPktAlarmBd, hwUntrustedReplyPktAlarmBd,
			hwDhcpSnpBindTblThreshold, hwDhcpSnpBindTblThresholdResume, hwDhcpSnpBindTblExhaust, hwDhcpSnpBindTblExhaustResume,
			hwDhcpv6SnpBindTblThreshold, hwDhcpv6SnpBindTblThresholdResume, hwDhcpv6SnpBindTblExhaust, hwDhcpv6SnpBindTblExhaustResume, hwIpv6NomatchV6SnpBindTblPktAlarm,
			hwDHCPv6SnpDetectAlarm}
            STATUS current
            DESCRIPTION 
                "The DHCPSNP's Notification group."
            ::= { hwDhcpSnpMibGroups 4 } 

    hwDhcpSnpBdStatisticGroup OBJECT-GROUP
            OBJECTS { hwBdNomatchSnpBindTblDhcpPktNum,hwBdChaddrNomatchSrcMacDhcpPktNum,
                hwBdArpNomatchSnpBindTblPktNum,hwBdIpNomatchSnpBindTblPktNum,hwBdUntrustedReplyPktNum,hwBdSnpBindingItemNum, 
                hwBdSnpCfgMaxUserNum }
            STATUS current
            DESCRIPTION 
                "The DHCPSNP's Statistic group on the bridge domain ."
            ::= { hwDhcpSnpMibGroups 5 }

    hwDhcpSnpTrapObjectGroup OBJECT-GROUP
            OBJECTS { hwDhcpSnpUsrNum, hwDhcpSnpMaxUsrNum, hwDhcpv6SnpUsrNum, hwDhcpv6SnpMaxUsrNum, hwDhcpv6SnpIfIndex, hwDhcpv6SnpIfName, hwIpv6Nomatchv6SnpBindTblPktNum}
            STATUS current
            DESCRIPTION 
                "The DHCPSNP's Statistic group on the device."
            ::= { hwDhcpSnpMibGroups 6 }

    hwDhcpSnpCompliances OBJECT IDENTIFIER ::= { hwDhcpSnpCompliance 2 }
	
        hwDhcpSnpMibCompliance MODULE-COMPLIANCE
               STATUS      current
               DESCRIPTION
                   "The compliance statement for systems supporting 
                this module."

               MODULE    
               MANDATORY-GROUPS    { hwDhcpSnpCfgGroup, hwDhcpSnpBindGroup, hwDhcpSnpStatisticGroup, hwDhcpSnpTrapGroup, hwDhcpSnpTrapObjectGroup}  
                                               
              ::= { hwDhcpSnpCompliances 1 }                                                                           

        END


