-- ZyXEL Communications Corporation
-- Private Enterprise MIB definition 
  
-- This file describes the ZyXEL Communications Corporation Enterprise MIB.
-- It contains ZyXEL products OIDs, and common managed objects.

-- ZYXEL-DHCP-SNOOPING-MIB.mib
-- Revision 1.6  2013/12/06 

ZYXEL-DHCP-SNOOPING-MIB DEFINITIONS ::= BEGIN

    IMPORTS
	OBJECT-TYPE
		FROM SNMPv2-SMI			-- RFC2578	
		
	MODULE-IDENTITY
		FROM SNMPv2-SMI
	
	DisplayString                                          
	  	FROM SNMPv2-TC
	  	
	EnabledStatus
		FROM  P-BRIDGE-MIB

	dot1dBasePort
		FROM BRIDGE-MIB

	esMgmt			
		FROM ZYXEL-ES-SMI;

	zyxelDhcpSnooping MODULE-IDENTITY
		LAST-UPDATED	"201207010000Z"    
		ORGANIZATION "Enterprise Solution ZyXEL"     
		CONTACT-INFO
			""	   
		DESCRIPTION
			"The subtree for dhcp snooping"
		::= { esMgmt 20 }		
	
	zyxelDhcpSnoopingSetup 			OBJECT IDENTIFIER ::= { zyxelDhcpSnooping 1 }		
	zyxelDhcpSnoopingStatus 		OBJECT IDENTIFIER ::= { zyxelDhcpSnooping 2 }

-- ******************************************************************
-- *
-- 20. dhcp snooping
-- *
-- ****************************************************************** 
	zyDhcpSnoopingState OBJECT-TYPE
	SYNTAX  EnabledStatus
	MAX-ACCESS  read-write
	STATUS  current
	DESCRIPTION
	"Enable/Disable DHCP snooping on this switch."
	::= { zyxelDhcpSnoopingSetup 1 } 
--
--  dhcp snooping vlan table
--
        zyxelDhcpSnoopingVlanTable	OBJECT-TYPE
        SYNTAX	SEQUENCE OF ZyxelDhcpSnoopingVlanEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
		"The table contains DHCP snooping VLAN configuration."
        ::= { zyxelDhcpSnoopingSetup 2 }

		zyxelDhcpSnoopingVlanEntry OBJECT-TYPE
        SYNTAX	ZyxelDhcpSnoopingVlanEntry
        MAX-ACCESS	not-accessible
        STATUS	current
        DESCRIPTION    	
		"An entry contains DHCP snooping VLAN configuration."
        INDEX          	{ zyDhcpSnoopingVlanVid }
        ::= { zyxelDhcpSnoopingVlanTable 1 }

        ZyxelDhcpSnoopingVlanEntry ::=
		SEQUENCE {
        	zyDhcpSnoopingVlanVid				INTEGER,
        	zyDhcpSnoopingVlanState				EnabledStatus,
			zyDhcpSnoopingVlanOption82Profile	DisplayString
        }

        zyDhcpSnoopingVlanVid OBJECT-TYPE
        SYNTAX  INTEGER (1..4094)
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
		"The VLAN ID of each VLAN."
        ::= { zyxelDhcpSnoopingVlanEntry 1 }

        zyDhcpSnoopingVlanState OBJECT-TYPE
        SYNTAX  EnabledStatus
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
		"Enable/Disable DHCP snooping on the VLAN."
        ::= { zyxelDhcpSnoopingVlanEntry 2 }
        
        zyDhcpSnoopingVlanOption82Profile OBJECT-TYPE
        SYNTAX  DisplayString
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
		"The name of DHCP option 82 Profile."
        ::= { zyxelDhcpSnoopingVlanEntry 3 }

--
--  dhcp snooping interface table
--
        zyxelDhcpSnoopingPortTable	OBJECT-TYPE
        SYNTAX	SEQUENCE OF ZyxelDhcpSnoopingPortEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
		"The table contains DHCP snooping port configuration."
        ::= { zyxelDhcpSnoopingSetup 3 }

		zyxelDhcpSnoopingPortEntry OBJECT-TYPE
        SYNTAX	ZyxelDhcpSnoopingPortEntry
        MAX-ACCESS	not-accessible
        STATUS	current
        DESCRIPTION    	
		"An entry contains DHCP snooping port configuration."
        INDEX          	{ dot1dBasePort }
        ::= { zyxelDhcpSnoopingPortTable 1 }

        ZyxelDhcpSnoopingPortEntry ::=
		SEQUENCE {
          	zyDhcpSnoopingPortTrustState	EnabledStatus,
        	zyDhcpSnoopingPortRate			INTEGER
        }

        zyDhcpSnoopingPortTrustState OBJECT-TYPE
        SYNTAX  EnabledStatus
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
		"Enable/Disable this port to be a trusted port (enable) or an un-trusted port (disable)."
        ::= { zyxelDhcpSnoopingPortEntry 1 }

        zyDhcpSnoopingPortRate OBJECT-TYPE
        SYNTAX  INTEGER (0..2048)
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
		"Enter the maximum number for DHCP packets that the switch receives from each port 
		 each second. The switch discards any additional DHCP packets. Enter 0 to disable this limit, 
		 which is recommended for trusted ports."
        ::= { zyxelDhcpSnoopingPortEntry 2 }                                

--
--  dhcp snooping database
--
	zyxelDhcpSnoopingDb     	OBJECT IDENTIFIER ::= { zyxelDhcpSnoopingSetup 4 }
	
	zyDhcpSnoopingDbAbort OBJECT-TYPE
	SYNTAX  INTEGER (1..65535)
	MAX-ACCESS  read-write
	STATUS  current
	DESCRIPTION
	"Enter how long (10-65535 seconds) the switch tries to complete a specific update in the DHCP snooping database before it gives up."
	::= { zyxelDhcpSnoopingDb 1 }                                      	

	zyDhcpSnoopingDbWriteDelay OBJECT-TYPE
	SYNTAX  INTEGER (1..65535)
	MAX-ACCESS  read-write
	STATUS  current
	DESCRIPTION
	"Enter how long (10-65535 seconds) the switch waits to update the DHCP snooping database 
	 the first time the current bindings change after an update. Once the next update is scheduled, 
	 additional changes in current bindings are automatically included in the next update."
	::= { zyxelDhcpSnoopingDb 2 }                                      
	
	zyDhcpSnoopingDbUrl OBJECT-TYPE
	SYNTAX  DisplayString (SIZE (0..255))
	MAX-ACCESS  read-write
	STATUS  current
	DESCRIPTION
	"Enter the location of the DHCP snooping database. The location should be expressed like this: 
	 tftp://{domain name or IP address}/directory, if applicable/file name; for example, tftp://192.168.10.1/database.txt."
	::= { zyxelDhcpSnoopingDb 3 }

	zyDhcpSnoopingDbUrlRenew OBJECT-TYPE
	SYNTAX  DisplayString (SIZE (0..255))
	MAX-ACCESS  read-write
	STATUS  current
	DESCRIPTION
	"Enter the location of a DHCP snooping database. You can use this to load dynamic bindings from 
	 a different DHCP snooping database than the one specified in Agent URL."
	::= { zyxelDhcpSnoopingDb 4 }
--
--  dhcp snooping dhcp vlan
--

	zyxelDhcpSnoopingDhcpVlan     	OBJECT IDENTIFIER ::= { zyxelDhcpSnoopingSetup 5 }
	
	zyDhcpSnoopingDhcpVlanVid OBJECT-TYPE
	SYNTAX  INTEGER (0..4094)
	MAX-ACCESS  read-write
	STATUS  current
	DESCRIPTION
	"Enter a VLAN ID if you want the switch to forward DHCP packets to DHCP servers on a specific VLAN. 
	 Value 0 means to disable DHCP VLAN, if you do not want the switch to forward DHCP packets to a specific VLAN."
	::= { zyxelDhcpSnoopingDhcpVlan 1 }    
 

-- option82byport
		zyDhcpSnoopingMaxNumberOfOption82VlanPort OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
        "The maximum number of DHCP snooping Option82 VLAN port entries that can be created."
        ::= { zyxelDhcpSnoopingSetup 6 } 

		zyxelDhcpSnoopingOption82VlanPortTable OBJECT-TYPE
        SYNTAX	SEQUENCE OF ZyxelDhcpSnoopingOption82VlanPortEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
        "The table contains DHCP snooping Option82 VLAN port configuration."
        ::= { zyxelDhcpSnoopingSetup 7 }	
		
		zyxelDhcpSnoopingOption82VlanPortEntry OBJECT-TYPE
        SYNTAX	ZyxelDhcpSnoopingOption82VlanPortEntry
        MAX-ACCESS	not-accessible
        STATUS	current
        DESCRIPTION    	
		"An entry contains DHCP snooping Option82 VLAN port configuration. "
        INDEX          	{ zyDhcpSnoopingVlanVid  ,dot1dBasePort  }
        ::= { zyxelDhcpSnoopingOption82VlanPortTable 1 } 
 
		ZyxelDhcpSnoopingOption82VlanPortEntry ::=
        SEQUENCE { zyDhcpSnoopingOption82VlanPortProfile	DisplayString } 
		   
		zyDhcpSnoopingOption82VlanPortProfile OBJECT-TYPE
        SYNTAX  DisplayString
        MAX-ACCESS  read-create
        STATUS  current
        DESCRIPTION
        "DHCP option 82 profile in specified VLAN and port."
        ::= { zyxelDhcpSnoopingOption82VlanPortEntry 1 }	
--	
	zyDhcpSnoopingDbStatisticsClear OBJECT-TYPE
	SYNTAX  EnabledStatus
	MAX-ACCESS  read-write
	STATUS  current
	DESCRIPTION
	"This entry can clear these counters of DHCP snooping statistics status."
	::= { zyxelDhcpSnoopingStatus 1 }
	
	zyxelDhcpSnoopingDbStatistics   	OBJECT IDENTIFIER ::= { zyxelDhcpSnoopingStatus 2 }  
		
	zyDhcpSnoopingDbStatisticsAgentRunning OBJECT-TYPE
	SYNTAX  INTEGER { none(0), read(1), write(2) }
	MAX-ACCESS  read-only
	STATUS  current
	DESCRIPTION
	"This entry displays the status of the current update or access of the DHCP snooping database.
	 none: The switch is not accessing the DHCP snooping database.
	 read: The switch is loading dynamic bindings from the DHCP snooping database.
	 write: The switch is updating the DHCP snooping database."
	::= { zyxelDhcpSnoopingDbStatistics 1 }                                      	

	zyDhcpSnoopingDbStatisticsDelayExpiry OBJECT-TYPE
	SYNTAX  INTEGER 
	MAX-ACCESS  read-only
	STATUS  current
	DESCRIPTION
	"This entry displays how much longer (in seconds) the switch tries to complete the current update before it gives up."
	::= { zyxelDhcpSnoopingDbStatistics 2 }	

	zyDhcpSnoopingDbStatisticsAbortExpiry OBJECT-TYPE
	SYNTAX  INTEGER
	MAX-ACCESS  read-only
	STATUS  current
	DESCRIPTION
	"This entry displays when (in seconds) the switch is going to update the DHCP snooping database again."
	::= { zyxelDhcpSnoopingDbStatistics 3 }

	zyDhcpSnoopingDbStatisticsLastSuccessTime OBJECT-TYPE
	SYNTAX  DisplayString
	MAX-ACCESS  read-only
	STATUS  current
	DESCRIPTION
	"This entry displays the last time the switch updated the DHCP snooping database successfully."
	::= { zyxelDhcpSnoopingDbStatistics 4 }
	
	zyDhcpSnoopingDbStatisticsLastFailTime OBJECT-TYPE
	SYNTAX  DisplayString
	MAX-ACCESS  read-only
	STATUS  current
	DESCRIPTION
	"This entry displays the last time the switch updated the DHCP snooping database unsuccessfully."
	::= { zyxelDhcpSnoopingDbStatistics 5 }
	
	zyDhcpSnoopingDbStatisticsLastFailReasonType OBJECT-TYPE
	SYNTAX  DisplayString
	MAX-ACCESS  read-only
	STATUS  current
	DESCRIPTION
	"This entry displays the reason the switch updated the DHCP snooping database unsuccessfully."
	::= { zyxelDhcpSnoopingDbStatistics 6 }

	zyDhcpSnoopingDbStatisticsTotalAttempt OBJECT-TYPE
	SYNTAX  INTEGER
	MAX-ACCESS  read-only
	STATUS  current
	DESCRIPTION
	"This entry displays the number of times the switch has tried to access the DHCP snooping database for any reason."
	::= { zyxelDhcpSnoopingDbStatistics 7 }
	
	zyDhcpSnoopingDbStatisticsStartupFail OBJECT-TYPE
	SYNTAX  INTEGER
	MAX-ACCESS  read-only
	STATUS  current
	DESCRIPTION
	"This entry displays the number of times the switch could not create or read the DHCP snooping database 
	 when the switch started up or a new URL is configured for the DHCP snooping database."
	::= { zyxelDhcpSnoopingDbStatistics 8 }

	zyDhcpSnoopingDbStatisticsSuccessTrans OBJECT-TYPE
	SYNTAX  INTEGER
	MAX-ACCESS  read-only
	STATUS  current
	DESCRIPTION
	"This entry displays the number of times the switch read bindings from or updated the bindings in the DHCP snooping database successfully."
	::= { zyxelDhcpSnoopingDbStatistics 9 }
	
	zyDhcpSnoopingDbStatisticsFailTrans OBJECT-TYPE
	SYNTAX  INTEGER
	MAX-ACCESS  read-only
	STATUS  current
	DESCRIPTION
	"This entry displays the number of times the switch was unable to read bindings from or update the bindings in the DHCP snooping database."
	::= { zyxelDhcpSnoopingDbStatistics 10 }

	zyDhcpSnoopingDbStatisticsSuccessRead OBJECT-TYPE
	SYNTAX  INTEGER
	MAX-ACCESS  read-only
	STATUS  current
	DESCRIPTION
	"This entry displays the number of times the switch read bindings from the DHCP snooping database successfully."
	::= { zyxelDhcpSnoopingDbStatistics 11 }

	zyDhcpSnoopingDbStatisticsFailRead OBJECT-TYPE
	SYNTAX  INTEGER
	MAX-ACCESS  read-only
	STATUS  current
	DESCRIPTION
	"This entry displays the number of times the switch was unable to read bindings from the DHCP snooping database."
	::= { zyxelDhcpSnoopingDbStatistics 12 }

	zyDhcpSnoopingDbStatisticsSuccessWrite OBJECT-TYPE
	SYNTAX  INTEGER
	MAX-ACCESS  read-only
	STATUS  current
	DESCRIPTION
	"This entry displays the number of times the switch updated the bindings in the DHCP snooping database successfully."
	::= { zyxelDhcpSnoopingDbStatistics 13 }

	zyDhcpSnoopingDbStatisticsFailWrite OBJECT-TYPE
	SYNTAX  INTEGER
	MAX-ACCESS  read-only
	STATUS  current
	DESCRIPTION
	"This entry displays the number of times the switch was unable to update the bindings in the DHCP snooping database."
	::= { zyxelDhcpSnoopingDbStatistics 14 }

	zyDhcpSnoopingDbStatisticsFirstSuccessAccess OBJECT-TYPE
	SYNTAX  INTEGER { none(0), read(1), write(2) }
	MAX-ACCESS  read-only
	STATUS  current
	DESCRIPTION
	"This entry displays the first time the switch accessed the DHCP snooping database for any reason."
	::= { zyxelDhcpSnoopingDbStatistics 15 }

	zyDhcpSnoopingDbStatisticsLastIgnoreBindCollision OBJECT-TYPE
	SYNTAX  INTEGER
	MAX-ACCESS  read-only
	STATUS  current
	DESCRIPTION
	"This entry displays the number of bindings the switch ignored because the switch already had a binding with the same MAC address and VLAN ID."
	::= { zyxelDhcpSnoopingDbStatistics 16 }

	zyDhcpSnoopingDbStatisticsLastIgnoreExpireLease OBJECT-TYPE
	SYNTAX  INTEGER
	MAX-ACCESS  read-only
	STATUS  current
	DESCRIPTION
	"This entry displays the number of bindings the switch ignored because the lease time had already expired."
	::= { zyxelDhcpSnoopingDbStatistics 17 }

	zyDhcpSnoopingDbStatisticsLastIgnoreInvalidInterface OBJECT-TYPE
	SYNTAX  INTEGER
	MAX-ACCESS  read-only
	STATUS  current
	DESCRIPTION
	"This entry displays the number of bindings the switch ignored because the port number was a trusted interface or does not exist anymore."
	::= { zyxelDhcpSnoopingDbStatistics 18 }

	zyDhcpSnoopingDbStatisticsLastIgnoreUnsupportedVlan OBJECT-TYPE
	SYNTAX  INTEGER
	MAX-ACCESS  read-only
	STATUS  current
	DESCRIPTION
	"This entry displays the number of bindings the switch ignored because the VLAN ID does not exist anymore."
	::= { zyxelDhcpSnoopingDbStatistics 19 }

	zyDhcpSnoopingDbStatisticsLastIgnoreParse OBJECT-TYPE
	SYNTAX  INTEGER
	MAX-ACCESS  read-only
	STATUS  current
	DESCRIPTION
	"This entry displays the number of bindings the switch ignored because the switch was unable to 
	 understand the binding in the DHCP binding database."
	::= { zyxelDhcpSnoopingDbStatistics 20 }

	zyDhcpSnoopingDbStatisticsTotalIgnoreBindCollision OBJECT-TYPE
	SYNTAX  INTEGER
	MAX-ACCESS  read-only
	STATUS  current
	DESCRIPTION
	"This entry displays the total number of bindings the switch has ignored because the switch already 
	 had a binding with the same MAC address and VLAN ID."
	::= { zyxelDhcpSnoopingDbStatistics 21 }

	zyDhcpSnoopingDbStatisticsTotalIgnoreExpireLease OBJECT-TYPE
	SYNTAX  INTEGER
	MAX-ACCESS  read-only
	STATUS  current
	DESCRIPTION
	"This entry displays the total number of bindings the switch has ignored because the lease time had already expired."
	::= { zyxelDhcpSnoopingDbStatistics 22 }

	zyDhcpSnoopingDbStatisticsTotalIgnoreInvalidInterface OBJECT-TYPE
	SYNTAX  INTEGER
	MAX-ACCESS  read-only
	STATUS  current
	DESCRIPTION
	"This entry displays the total number of bindings the switch has ignored because the port number was a trusted interface or does not exist anymore."
	::= { zyxelDhcpSnoopingDbStatistics 23 }

	zyDhcpSnoopingDbStatisticsTotalIgnoreUnsupportedVlan OBJECT-TYPE
	SYNTAX  INTEGER
	MAX-ACCESS  read-only
	STATUS  current
	DESCRIPTION
	"This entry displays the total number of bindings the switch has ignored because the VLAN id does not exist anymore."
	::= { zyxelDhcpSnoopingDbStatistics 24 }

	zyDhcpSnoopingDbStatisticsTotalIgnoreParse OBJECT-TYPE
	SYNTAX  INTEGER
	MAX-ACCESS  read-only
	STATUS  current
	DESCRIPTION
	"This entry displays the total number of bindings the switch has ignored because the switch was unable to 
	 understand the binding in the DHCP binding database."
	::= { zyxelDhcpSnoopingDbStatistics 25 }
  
END
