-- -----------------------------------------------------------------------------
-- MIB NAME : IP-MAC Binding Common mib
-- FILE NAME: IPMacBind.mib
-- DATE     : 2012/10/26
-- VERSION  : 2.18
-- PURPOSE  : To construct the MIB structure of IP-MAC Binding
--            for proprietary enterprise
-- -----------------------------------------------------------------------------
-- MODIFICTION HISTORY:
-- -----------------------------------------------------------------------------
-- Version, Date, Author
-- Description:
--  [New Object]
--  [Modification]
-- Notes: (Requested by who and which project)
--
-- Version 2.18, 2012/10/26, Randy Xie
-- [New Object]
-- Add swIpMacBindingAutoRecoverTime, swIpMacBindingPortLimitRateValue and swIpMacBindingPortLimitRateAction to limit rate dhcp packet to CPU function.
-- Request by Randy Xie for support "IP DHCP Snooping Limit Rate"
--
-- Version 2.17, 2012/06/25, Randy Xie
-- [Modification]
-- Modify the value length of objects swIpMacBindingUploadDownloadUsername, swIpMacBindingUploadDownloadPassword and 
-- swIpMacBindingUploadDownloadFileName.
--
-- Version 2.16, 2012/06/20, Randy Xie
-- [Modification]
-- Modify the value length of objects swIpMacBindingAutosaveFileName and swIpMacBindingUploadDownloadFileName.
--
-- Version 2.15, 2012/05/11, Randy Xie
-- [New Object]
-- Add swIpMacBindingAutosaveState and swIpMacBindingAutosaveFileName to support autosave function.
-- Add swIpMacBindingUploadDownloadTable to support upload/down function.
-- Request by Randy Xie for support "Saving IMPB DHCPv4 Snooping binding entries"
--
-- Version 2.14, 2012/02/24, Shawn Chen
-- [New Object]
-- Add swIpMacBindingPortNDInspection to support DAD filtering function.
-- SNR-20111007-001(IMPBv6.1 (DAD snooping and filtering))
--
-- Version 2.13, 2011/08/11, Randy Xie
-- [New Object]
-- Add swIpMacBindingRoamingState to support 
-- SNR-20110810-001(configurable roaming)
--
-- Version 2.12, 2010/04/26, Shawn Chen
-- [New Object]
-- [1]Add swIpMacBindingPortARPInspection, swIpMacBindingPortIPInspection
-- and swIpMacBindingPortIPProtocol in swIpMacBindingPortTable to support IMPB v3.9.
-- Request by Shawn Chen for support IMPB v3.90.
--
-- Version 2.11, 2009/08/11, Wesley Wang
-- [New Object]
-- [1]Add swIpMacBindingIPv6DHCPSnoopState, swIpMacBindingIPv6DHCPSnoopEntryClearAllState
-- and swIpMacBindingIPv6DHCPSnoopTable for support IPv6 DHCP Snooping function.
-- [2]Add swIpMacBindingIPv6Table for support IPv6 IP-MAC binding function.
-- [3]Add swIpMacBindingNDSnoopState, swIpMacBindingNDSnoopEntryClearAllState and 
-- swIpMacBindingNDSnoopTable for support ND snooping.
-- [4]Add swIpMacBindingIPv6ViolationTrap and swIpMacBindingViolationIPv6Addr for
-- support IPv6 IP-MAC Port Binding unauthenticated trap. 
-- Request by Wesley Wang for support IPv6 IMPB.
--
-- Version 2.10, 2009/6/11, Eli Lin
-- [New Object]
-- [1]Add new object swIpMacBindingAclStatus for indicating
-- the ACL status.    
-- [Modification]
-- [1]Modify the value of objects swIpMacBindingMode for supporting the static
-- mode and the dhcp-snooping mode.
-- [2]Modify the DESCRIPTION of objects swIpMacBindingACLMode, 
-- swIpMacBindingPortMode and swIpMacBindingAction.
--
-- Version 2.09, 2009/05/15, Tina He
-- [New Object]
-- [1]Add object swIpMacBindingARPInspectionState.
--    for support ARP inspection function.
--
-- Version 2.08, 2008/12/16, wesley wang
-- [New Object]
-- [1]Add object swIpMacBindingPortLearningStatus in swIpMacBindingPortTable
--    for display the learning status of a port.

-- Version 2.07, 2008/08/04, jeffers
-- [New Object]
-- [1]Add object swIpMacBindingPortMode in swIpMacBindingPortTable;
-- [2]Add object swIpMacBindingPortStopLearningThreshold,
-- swIpMacBindingPortRecoverLearning,swIpMacBindingStopLearningTrap
-- and swIpMacBindingRecoverLearningTrap. 
-- [Modification]
-- Modify the description of objects swIpMacBindingMode,swIpMacBindingAction,
-- swIpMacBindingACLMode,swIpMacBindingViolationMac and swIpMacBindingViolationIP.
--
-- Version 2.06, 2008/05/13, Shan Lu
-- [Modification]
-- [1]Remove some description of object swIpMacBindingDHCPSnoopState.
--
-- Version 2.05, 2008/04/22, Shan Lu
-- [Modification]
-- [1]Modify the varible bind of swIpMacBindingViolationTrap,
--    replace swIpMacBindingPorts with swIpMacBindingPortIndex.
--
-- Version 2.04
-- [New Object]
-- [1]Add object swIpMacBindingPortDHCPSnoopEntryClearAction in swIpMacBindingPortTable;
-- [2]Add object swIpMacBindingBlockedStatus in swIpMacBindingBlockedTable;
-- [Modification]
-- [1]Change the Status of object swIpMacBindingBlockedType from current to obsolete;
-- [2]Remove the value range of object swIpMacBindingPortDhcpSnoopMaxEntry;
-- [3]Modify the swIpMacBindingAllPortState enable with strict and loose mode. 
-- Request by Yan for DES35XX.
--
-- Version 2.03
-- 2007/12/19 15:40 Ronald Hsu
-- Modify the swIpMacBindingPortState enable with strict and loose mode.
-- Add the swIpMacBindingPortForwardDhcpPkt object.
-- Add the swIpMacBindingPortDhcpSnoopMaxEntry object.
-- Add the swIpMacBindingDHCPSnoopPort object.
-- Add the swIpMacBindingDHCPSnoopStatus object.
-- Add the swIpMacBindingDHCPSnoopEntryClearAllState object.
--
-- Revision 2.02 2007/07/24 
-- [New Object]
-- [1]Add objects swIpMacBindingDHCPSnoopState and swIpMacBindingRecoveryInterval;
-- [2]Add table swIpMacBindingDHCPSnoopTable;
-- [3]Add 'auto(3)' in the value list of object swIpMacBindingMode.
-- Request by Yan for DES30XXR4.1 and DHS3628
--
-- Revision 2.01 2007/5/23 14:35PM by Nic Liu
-- [New Object]
-- [1]Add object swIpMacBindingBlockedTime in swIpMacBindingBlockedTable.
-- Request by Nic for DES30XXR4.1
--
-- Version 2.00, 2007/03/27, Yedda
-- This is the first formal version for universal MIB definition.
-- -----------------------------------------------------------------------------

IP-MAC-BIND-MIB DEFINITIONS ::= BEGIN

    IMPORTS
        MODULE-IDENTITY,OBJECT-TYPE,IpAddress, Unsigned32
                                        FROM SNMPv2-SMI
        MacAddress, RowStatus, DateAndTime           FROM SNMPv2-TC
        DisplayString                   FROM RFC1213-MIB
        InetAddressType, InetAddress    FROM INET-ADDRESS-MIB
    	SnmpAdminString					FROM SNMP-FRAMEWORK-MIB
        dlink-common-mgmt				FROM DLINK-ID-REC-MIB        
        Ipv6Address	                    FROM IPV6-TC;

		VlanId					::= INTEGER (1..4094)

    swIpMacBindMIB MODULE-IDENTITY
	    LAST-UPDATED "1210260000Z"
	    ORGANIZATION "D-Link Corp."
	    CONTACT-INFO
	        "http://support.dlink.com"
	    DESCRIPTION
		    "The structure of IP-MAC binding management for the
		    proprietary enterprise."
        ::= { dlink-common-mgmt 23 }

    PortList                ::= OCTET STRING(SIZE (0..127))



	swIpMacBindingCtrl           OBJECT IDENTIFIER ::= { swIpMacBindMIB 1 }
	swIpMacBindingInfo           OBJECT IDENTIFIER ::= { swIpMacBindMIB 2 }
    	swIpMacBindingPortMgmt       OBJECT IDENTIFIER ::= { swIpMacBindMIB 3 }
	swIpMacBindingMgmt           OBJECT IDENTIFIER ::= { swIpMacBindMIB 4 }
	swIpMacBindingNotify 	     OBJECT IDENTIFIER ::= { swIpMacBindMIB 5 }

-- -----------------------------------------------------------------------------
-- swIpMacBindingCtrl           OBJECT IDENTIFIER ::= { swIpMacBindMIB 1 }
-- -----------------------------------------------------------------------------
	swIpMacBindingTrapLogState OBJECT-TYPE
    		SYNTAX  INTEGER {
                	other(1),
                	enable(2),
                	disable(3)
            	}
    		MAX-ACCESS  read-write
    		STATUS  current
    		DESCRIPTION
            		"When enabled (2), whenever there is a new MAC that violates the pre-defined
            		 IP MAC Binding configuration, a trap will be sent out and the relevant information
            		 will be logged into the system."
        	::= { swIpMacBindingCtrl 1 }

   	swIpMacBindingACLMode OBJECT-TYPE
    		SYNTAX  INTEGER {
                	other(1),
                	enable(2),
                	disable(3)
            	}
    		MAX-ACCESS  read-write
    		STATUS  current
    		DESCRIPTION
            	"When enabled (2), the IP-MAC Binding function will use the ACL mode.
				 Note: Supported in IP-MAC binding v3.3 only."
        	::= { swIpMacBindingCtrl 2 }

	swIpMacBindingRecoveryInterval OBJECT-TYPE
		SYNTAX		INTEGER(0..65535)
		MAX-ACCESS	read-write
		STATUS		current
		DESCRIPTION
			"Specifies the seconds in which the switch will delete the blocked 
			 ARL (Address Resolution Logic) entry in order to relearn the entry. 
			 This is a mechanism by which the switch can recover an ARL entry 
			 from the blocked state to the normal state. 
			 A value of '0' means an infinite state.
			 
			 Note:  This object is specific to models that are unable to recover 
			        a blocked MAC address without removing the blocked ARL entry 
			        and relearning the entry.        
			"
		::= { swIpMacBindingCtrl 3 }
		
   	swIpMacBindingDHCPSnoopState OBJECT-TYPE
    		SYNTAX  INTEGER {
                	enabled(1),
                	disabled(2)
            	}
    		MAX-ACCESS  read-write
    		STATUS  current
    		DESCRIPTION
            		"When the dhcp_snoop function is enabled, all address_binding 
            		 disabled ports will act as DHCP server ports (the switch will 
            		 learn IP addresses through DHCP server ports (by DHCP OFFER 
            		 and DHCP ACK packets)).
            		 
            		 The auto-learned IP-MAC binding entry will be mapped to a specific 
            		 source port based on the MAC address learning function. This entry 
            		 will be created as an ACL-mode binding entry for this specific port. 
            		 Each entry is associated with a lease time. When the lease time 
            		 expires, the expired entry will be removed from this port. The 
            		 automatically learned binding entry can be moved from one port to 
            		 another port if the DHCP snooping function has learned that the MAC 
            		 address has moved to a different port.
            		 
			 Consider a case where DHCP snooping learns a binding entry, and the 
			 same IP-MAC binding entry has been statically configured. Suppose 
			 that the learned information is consistent with the statically 
			 configured entry, then the automatically learned entry will not be 
			 created. Supposing that the entry has been statically configured in ARP 
			 mode, since the automatically learned entry will be created in ACL 
			 mode, the entry will become an ACL mode entry. Supposing that the entry is 
			 statically configured on one port and the entry is automatically 
			 learned on another port, then both entries will exist.
			 
			 When the dhcp_snoop function is disabled, all of the automatically 
			 learned binding entries will be removed.
            "
        	::= { swIpMacBindingCtrl 4 }
        	
	swIpMacBindingDHCPSnoopEntryClearAllState OBJECT-TYPE
		SYNTAX      INTEGER{other(1), start(2)}
		MAX-ACCESS  read-write
		STATUS      current
		DESCRIPTION
			"Used to clear all the entries created by DHCP packets."
		::= { swIpMacBindingCtrl 5 }        	

	swIpMacBindingARPInspectionState  OBJECT-TYPE
    		SYNTAX  INTEGER {
                	enabled(1),
                	disabled(2)
            	}
		MAX-ACCESS  read-write
		STATUS      current
		DESCRIPTION
			"Used to set the ARP inspection state."
		::= { swIpMacBindingCtrl 6 }
		
	swIpMacBindingIPv6DHCPSnoopState OBJECT-TYPE
    		SYNTAX  INTEGER {
                	enabled(1),
                	disabled(2)
            	}
    		MAX-ACCESS  read-write
    		STATUS  current
    		DESCRIPTION
			"This object indicates the global state of IPv6 DHCP snooping."
        	::= { swIpMacBindingCtrl 7 } 
        	
        swIpMacBindingNDSnoopState OBJECT-TYPE
    		SYNTAX  INTEGER {
                	enabled(1),
                	disabled(2)
            	}
    		MAX-ACCESS  read-write
    		STATUS  current
    		DESCRIPTION
			"This object indicates the global state of ND snooping."
        	::= { swIpMacBindingCtrl 8 }
        	
        swIpMacBindingIPv6DHCPSnoopEntryClearAllState OBJECT-TYPE
			SYNTAX      INTEGER{
				    other(1), 
				    start(2)
				}
			MAX-ACCESS  read-write
			STATUS      current
			DESCRIPTION
				"Used to clear all the entries learned by IPv6 DHCP snooping."
			::= { swIpMacBindingCtrl 9 }
		
		swIpMacBindingNDSnoopEntryClearAllState OBJECT-TYPE
			SYNTAX      INTEGER{
					other(1), 
					start(2)
				}
			MAX-ACCESS  read-write
			STATUS      current
			DESCRIPTION
				"Used to clear all the entries learned by ND snooping."
			::= { swIpMacBindingCtrl 10 }
			
		swIpMacBindingRoamingState  OBJECT-TYPE
    		SYNTAX  INTEGER {
                	enabled(1),
                	disabled(2)
            	}
		MAX-ACCESS  read-write
		STATUS      current
		DESCRIPTION
			"This object indicates the global state of IMPB roaming.
			
			When IMPB roaming is enabled, the dynamic authenticated MAC address 
			which learned through DHCP/ND snooping on specific port can change to 
			another port if it detects (1) a new DHCP process belong to same IP 
			and MAC address or (2) a new DAD process belong to same IP and MAC.
			
			When disable the IMPB roaming, the DHCP or ND entry cannot be roaming"
		::= { swIpMacBindingCtrl 11 }
		
		swIpMacBindingAutosaveState  OBJECT-TYPE
    		SYNTAX  INTEGER {
                	enabled(1),
                	disabled(2)
            	}
		MAX-ACCESS  read-write
		STATUS      current
		DESCRIPTION
			"This object indicates the global state of the DHCPv4 Snooping binding entries autosave.
			By default, the autosave state of the DHCPv4 Snooping binding entries is enabled.
			
			When the autosave state is enabled, the device will back up the DHCPv4 Snooping binding 
			entries in the specified backup path every 60 minutes and read the back up database after 
			the switch reboot.The DHCP Snooping will rebuild the binding entry base on the back up database file.
			You must not change the back up database file, otherwise it will lead to rebuild failed.
			
			NoteThis feature only supports on the device that supports of external memory (e.g. SD card)"
		::= { swIpMacBindingCtrl 12 }
		
		swIpMacBindingAutosaveFileName OBJECT-TYPE
			SYNTAX  DisplayString  (SIZE (1..64))
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
        	"The path name specifies the path of the file to be auto saving.
			By default, the filename is dhcpsnp.cfg."
    	::= { swIpMacBindingCtrl 13 }
		
		swIpMacBindingSaveActivity  OBJECT-TYPE
    		SYNTAX  INTEGER {
                	none(1),
                	start(2)
            	}
		MAX-ACCESS  read-write
		STATUS      current
		DESCRIPTION
			"When this object is set to start(2), the device will begin saving DHCPv4 snooping bindind entries immediately."
		::= { swIpMacBindingCtrl 14 }
		
		swIpMacBindingAutoRecoverTime  OBJECT-TYPE
		SYNTAX  INTEGER 
		MAX-ACCESS  read-write
		STATUS      current
		DESCRIPTION
			"Automatically recover port from shutdown state when the auto recover timer timeout.
			Note:
			The max entry range is (60..1000000)seconds.
			The value -1 means infinite to shutdown and never recover the port shutdown state."
		::= { swIpMacBindingCtrl 15 }
		
-- -----------------------------------------------------------------------------
-- swIpMacBindingPortMgmt       OBJECT IDENTIFIER ::= { swIpMacBindMIB 3 }
-- -----------------------------------------------------------------------------
	swIpMacBindingAllPortState OBJECT-TYPE
		SYNTAX		INTEGER{
					other(1),
					enable-strict(2),
					disable(3),
					enable-loose(4)
						}
		MAX-ACCESS	read-write
		STATUS		current
		DESCRIPTION
			"This object enables/disables IP-MAC binding on all the system ports.
			 This action is only applicable when users have write privileges,
			 and can only be viewed when users have read privileges.

			 Note:
			 enable-strict (2): This means strict mode (SW learning). In this mode all packets will be sent 
			 	    	    to the CPU. The user can choose if the port will check the ARP packets 
			 	            and IP packets of the IP-MAC-PORT Binding entries. If the MAC 
			 	            address can be found or not found by the entry, the MAC address will 
			 	            be set as a dynamic learned or blocked entry, respectively. Other 
			 	            packets will be sent to the CPU and dropped. 
			 	            
			 enable-loose (4) : This means loose mode (HW learning): Only ARP packets and IP 
			 	            broadcast packets will be sent to the CPU. If the  user chooses , 
			 	            the port will directly learn MAC addresses on non-ARP and non-IP 
			 	            broadcast packets, so these packets will be bypassed. 
			 	            However, if the switch receives ARP or IP broadcast packets and 
			 	            cannot bypass the IP MAC Binding checks, the switch will set 
			 	            this MAC address as blocked and all packets from this MAC 
			 	            address will be dropped.			 
			"
		::= { swIpMacBindingPortMgmt 1 }


	swIpMacBindingPortTable OBJECT-TYPE
		SYNTAX		SEQUENCE OF SwIpMacBindingPortEntry
		MAX-ACCESS  not-accessible
		STATUS		current
		DESCRIPTION
		      "The table specifies the IP-MAC binding function of a specified port."
		::= { swIpMacBindingPortMgmt 2 }

	swIpMacBindingPortEntry OBJECT-TYPE
		SYNTAX		SwIpMacBindingPortEntry
		MAX-ACCESS  not-accessible
		STATUS		current
		DESCRIPTION
		      "A list containing information about the IP-MAC binding function of a port."
		INDEX { swIpMacBindingPortIndex }
		::= { swIpMacBindingPortTable 1 }

	SwIpMacBindingPortEntry ::=
        SEQUENCE {
            swIpMacBindingPortIndex
                INTEGER,
			swIpMacBindingPortState
				INTEGER,
			swIpMacBindingPortZeroIPState
				INTEGER,
			swIpMacBindingPortForwardDhcpPkt
			    	INTEGER,
			swIpMacBindingPortDHCPSnoopMaxEntry
			    	INTEGER,
			swIpMacBindingPortDHCPSnoopEntryClearAction
				INTEGER,
            swIpMacBindingPortMode
        	    INTEGER	,
			swIpMacBindingPortStopLearningThreshold
				INTEGER,
			swIpMacBindingPortRecoverLearning
				INTEGER,		
			swIpMacBindingPortLearningStatus
				INTEGER,
			swIpMacBindingPortIPv6State
				INTEGER,
			swIpMacBindingPortIPv6DHCPSnoopMaxEntry
			    	INTEGER,
			swIpMacBindingPortNDSnoopMaxEntry
			    	INTEGER,
			swIpMacBindingPortIPv6DHCPSnoopEntryClearAction
				INTEGER,
			swIpMacBindingPortNDSnoopEntryClearAction
				INTEGER,
			swIpMacBindingPortARPInspection
				INTEGER,
			swIpMacBindingPortIPInspection
				INTEGER,
			swIpMacBindingPortIPProtocol
				INTEGER,
			swIpMacBindingPortNDInspection
				INTEGER,
			swIpMacBindingPortLimitRateValue
				INTEGER,
			swIpMacBindingPortLimitRateAction
				INTEGER    
       }

	swIpMacBindingPortIndex OBJECT-TYPE
		SYNTAX		INTEGER(0..65535)
		MAX-ACCESS	read-only
		STATUS		current
		DESCRIPTION
			"This object indicates the module's port number. (1..Max port
			 number in the module)."
		::= { swIpMacBindingPortEntry 1 }

	swIpMacBindingPortState OBJECT-TYPE
		SYNTAX		INTEGER{
					other(1),
					enable-strict(2),
					disable(3),
					enable-loose(4)
					}
		MAX-ACCESS	read-write
		STATUS		current
		DESCRIPTION
			"This object enables (strict or loose mode)/disables IP-MAC binding 
			 on the specified port.
			 
			 Note:
			 enable-strict (2): This means strict mode (SW learning). All packets are sent 
			 	    	    to the CPU. If the user chooses this option, the port will check ARP packets 
			 	            and IP packets by the IP-MAC-PORT Binding entries. If the MAC 
			 	            address can or cannot be found by the entry, the MAC will 
			 	            be set as a dynamic learned or blocked entry, respectively. Other 
			 	            packets will be sent to the CPU and dropped. 
			 	            
			 enable-loose (4) : This means loose mode (HW learning): Only ARP packets and IP 
			 	            broadcast packets will be sent to the CPU. If the user chooses, 
			 	            the port will learn MAC addresses on non-ARP and non-IP 
			 	            broadcast packets directly, so these packets will be bypassed. 
			 	            However, if the switch receives ARP or IP broadcast packets and 
			 	            cannot bypass the IP MAC Binding checks, the switch will set 
			 	            this MAC address as blocked and all packets from this MAC 
			 	            address will be dropped.	
			 "
		::= { swIpMacBindingPortEntry 2 }

	swIpMacBindingPortZeroIPState OBJECT-TYPE
		SYNTAX		INTEGER{
						enabled(1),
						disabled(2)
						}
		MAX-ACCESS	read-write
		STATUS		current
		DESCRIPTION
			"Specifies whether to allow ARP packets with the SIP address 0.0.0.0,
			 regardless of whether the IP address 0.0.0.0 is set in the binding list or not.
			 When set to enable, the ARP packets with the SIP address 0.0.0.0 will be allowed. When set to disable,
			 ARP packets with the SIP address 0.0.0.0 will be dropped.
			Note:
			 This option does not affect the IP-MAC-Port binding ACL Mode.
			"
		::= { swIpMacBindingPortEntry 3 }

	swIpMacBindingPortForwardDhcpPkt OBJECT-TYPE
		SYNTAX		INTEGER{
						enabled(1),
						disabled(2)
						}
		MAX-ACCESS	read-write
		STATUS		current
		DESCRIPTION
			"This object can be set to forward DHCP packets or not forward DHCP packets on the specified port."
		::= { swIpMacBindingPortEntry 4 }
		
	swIpMacBindingPortDHCPSnoopMaxEntry OBJECT-TYPE
		SYNTAX		INTEGER
		MAX-ACCESS	read-write
		STATUS		current
		DESCRIPTION
			"This object indicates the max entry created by DHCP packets on the 
			 specified port.
			 Note:
			 The max entry range is (0..N), the N value indicates the maximum number, which is 
			 determined by the project itself.

			 When 0 is set on the specified port, there is no limit on the maximum number of entries that can be created by DHCP packets .
			"
		DEFVAL {0}			
		::= { swIpMacBindingPortEntry 5 }		

	swIpMacBindingPortDHCPSnoopEntryClearAction OBJECT-TYPE
		SYNTAX		INTEGER{
						other(1),
						start(2)
						}
		MAX-ACCESS	read-write
		STATUS		current
		DESCRIPTION
			"When set to start (2), the address binding entries learned 
			 for the specified ports will be cleared.
			 When get, it always returns other (1).
			"
		::= { swIpMacBindingPortEntry 6 }
		
	 swIpMacBindingPortMode OBJECT-TYPE
	    SYNTAX    INTEGER {
	                 arp(1),
	                 acl(2)
	                 }
	    MAX-ACCESS  read-write
	    STATUS    current
	    DESCRIPTION
	      	   "The mode of this entry.
               arp:   This entry is specified as an ARP mode entry, and this
               entry will not be added as an access entry. If this
               object is not specified, the mode defaults to ARP mode.
               If the system is in ARP mode, the ARP mode entries and
               ACL mode entries will be effective. If the system is in
               ACL mode, only the ACL mode entries will be active.
      			
      	       acl:   This entry is specified as an ACL mode entry. If the
		       user enables the ACL mode, this entry will be added as
	 		   an access entry."
   	    ::= { swIpMacBindingPortEntry 7 }

 	 swIpMacBindingPortStopLearningThreshold OBJECT-TYPE
               SYNTAX    INTEGER
               MAX-ACCESS	read-write
               STATUS    current
               DESCRIPTION
        	"This object indicates the threshold to stop learning new MAC addresses on 
        	 the specified port. When the number of blocked entries exceeds the threshold,
        	 the port will stop learning new addresses. The packet with new addresses will be dropped.
         	 Note:
    	 	 When 0 is set on the specified port, it means no limit."
    		::= { swIpMacBindingPortEntry 8 }

     swIpMacBindingPortRecoverLearning OBJECT-TYPE
    	 	SYNTAX    INTEGER{
            		other(1),
            		start(2)
            		}
   		MAX-ACCESS	read-write
    		STATUS    current
    		DESCRIPTION
        		"When set to start (2), it will change from  the stop_learning state to the normal state
         		on the specified port.
         		When get, it always returns other (1)."
    	::= { swIpMacBindingPortEntry 9 }
		 
		 swIpMacBindingPortLearningStatus OBJECT-TYPE
    	 	SYNTAX    INTEGER{
            		normal(1),
            		stop(2)
            		}
		MAX-ACCESS	read-only
    		STATUS    current
    		DESCRIPTION
        		"This object indicates the learning status of a port. When the status is stop (2), 
        		the port will stop learning new addresses and the packets with new addresses will be dropped."
    	::= { swIpMacBindingPortEntry 10 }
    	
    	swIpMacBindingPortIPv6State OBJECT-TYPE
		SYNTAX		INTEGER{
					other(1),
					enabled(2),
					disabled(3)
					}
		MAX-ACCESS	read-write
		STATUS		current
		DESCRIPTION
			"This object enables/disables IPv6 IP-MAC binding 
			 on the specified port."
		::= { swIpMacBindingPortEntry 11 }
		
	swIpMacBindingPortIPv6DHCPSnoopMaxEntry OBJECT-TYPE
		SYNTAX		INTEGER
		MAX-ACCESS	read-write
		STATUS		current
		DESCRIPTION
			"This object indicates the maximum number of entries that can be learned by IPv6 DHCP snooping
			 on the specified port.
			 Note:
			 The maximum entry range is (0..N), the N value indicates the maximum number, which is 
			 determined by the project itself.

			 When 0 is set on the specified port, there is no limit on the number of maximum entries that can be learned by DHCP 
			 snooping.
			"
		DEFVAL {0}			
		::= { swIpMacBindingPortEntry 12 }
		
	swIpMacBindingPortNDSnoopMaxEntry OBJECT-TYPE
		SYNTAX		INTEGER
		MAX-ACCESS	read-write
		STATUS		current
		DESCRIPTION
			"This object indicates the maximum number of entries that can be learned by ND snooping
			 on the specified port.
			 Note:
			 The maximum entry range is (0..N), the N value indicates the maximum number, which is 
			 determined by the project itself.

			 When 0 is set on the specified port, there is no limit on the maximum number of entries that can be learned by ND 
			 snooping is no limit.
			"
		DEFVAL {0}			
		::= { swIpMacBindingPortEntry 13 }
		
	swIpMacBindingPortIPv6DHCPSnoopEntryClearAction OBJECT-TYPE
		SYNTAX		INTEGER{
						other(1),
						start(2)
						}
		MAX-ACCESS	read-write
		STATUS		current
		DESCRIPTION
			"When set to start (2), the address binding entries learned by
			 IPv6 DHCP snooping on the specified ports will be cleared.
			 When get, it always returns other (1).
			"
		::= { swIpMacBindingPortEntry 14 }
		
	swIpMacBindingPortNDSnoopEntryClearAction OBJECT-TYPE
		SYNTAX		INTEGER{
						other(1),
						start(2)
						}
		MAX-ACCESS	read-write
		STATUS		current
		DESCRIPTION
			"When set to start (2), the address binding entries learnt by
			 ND snooping on the specified ports will be cleared.
			 When get, it always returns other (1).
			"
		::= { swIpMacBindingPortEntry 15 }
		 
	swIpMacBindingPortARPInspection  OBJECT-TYPE
		SYNTAX	INTEGER{
			disabled(1),
			strict(2),
			loose(3)
		}
		MAX-ACCESS  read-write
		STATUS      current
		DESCRIPTION
			"This object used to set ARP inspection state on the specified port.
			When ARP inspection is enabled on the port, the legal ARP packets will be forward, while the illegal packets will be dropped.
			
			strict : In this mode, all packets are dropped by default until a legal ARP or broadcast IP packets are detected.
			loose: In this mode, all packets are forwarded by default until an illegal ARP or broadcast IP packets are detected.
			"
		DEFVAL {disabled}
		::= { swIpMacBindingPortEntry 16 }
		
	swIpMacBindingPortIPInspection  OBJECT-TYPE
		SYNTAX	INTEGER{
			enabled(1),
			disabled(2)
		}
		MAX-ACCESS  read-write
		STATUS      current
		DESCRIPTION
			"This object used to set the IP inspection state on the specified port.
			When IP inspection is enabled on the port, the legal IP packets will be forwarded, while the illegal IP packets will be dropped."
		DEFVAL {disabled}
		::= { swIpMacBindingPortEntry 17 }

	swIpMacBindingPortIPProtocol  OBJECT-TYPE
		SYNTAX	INTEGER{
			all(1),
			ipv4(2),
			ipv6(3)
		}
		MAX-ACCESS  read-write
		STATUS      current
		DESCRIPTION
			"This object is used to set which kind of IP packets need to be checked by IP-MAC-PORT binding on the specified port.
			ipv4: Only IPv4 packets will be checked.
			ipv6: Only IPv6 packets will be checked.
			all: Both IPv4 and IPv6 packets will be checked.
			"
		DEFVAL {all}
		::= { swIpMacBindingPortEntry 18 }

	swIpMacBindingPortNDInspection  OBJECT-TYPE
		SYNTAX	INTEGER{
			enabled(1),
			disabled(2)
		}
		MAX-ACCESS  read-write
		STATUS      current
		DESCRIPTION
			"This object used to set ND inspection state on the specified port.
			When ND inspection is enabled on the port, the legal ND packets will be forward, while the illegal packets will be dropped.
			"
		DEFVAL {disabled}
		::= { swIpMacBindingPortEntry 19 }
		
	
	swIpMacBindingPortLimitRateValue  OBJECT-TYPE
		SYNTAX	INTEGER
		MAX-ACCESS  read-write
		STATUS      current
		DESCRIPTION
			"This object is the threshold at which the specified limit rate will turn on.
			Note:
			The max entry range is (1..2048)pps.
			The value -1 means not limit the dhcp packet to cpu."
		::= { swIpMacBindingPortEntry 20 }

	swIpMacBindingPortLimitRateAction  OBJECT-TYPE
		SYNTAX	INTEGER{
			drop(1),
			shutdown(2)
		}
		MAX-ACCESS  read-write
		STATUS      current
		DESCRIPTION
			"There are two actions to take for limit rate, drop and shutdown
			 drop:discards dhcp packets that exceed the limit rate value
			 shutdown:shutdown the port when the dhcp packet rate value specified for limit rate is reached."
		::= { swIpMacBindingPortEntry 21 }
	
-- -----------------------------------------------------------------------------
-- swIpMacBindingMgmt          OBJECT IDENTIFIER ::= { swIpMacBindMIB 4 }
-- -----------------------------------------------------------------------------
	swIpMacBindingTable OBJECT-TYPE
		SYNTAX		SEQUENCE OF SwIpMacBindingEntry
		MAX-ACCESS  not-accessible
		STATUS		current
		DESCRIPTION
		      "This table specifies the IP-MAC binding information."
		::= { swIpMacBindingMgmt 1 }

	swIpMacBindingEntry OBJECT-TYPE
		SYNTAX		SwIpMacBindingEntry
		MAX-ACCESS  not-accessible
		STATUS		current
		DESCRIPTION
		      "The IP-MAC binding entry used to add/delete/configure the address
			  pair of the switch's authorized user database."
		INDEX { swIpMacBindingIpIndex }
		::= { swIpMacBindingTable 1 }

	SwIpMacBindingEntry ::=
        SEQUENCE {
            		swIpMacBindingIpIndex
                		IpAddress,
			swIpMacBindingMac
				MacAddress,
			swIpMacBindingStatus
				RowStatus,
      			swIpMacBindingPorts
        			PortList,
      			swIpMacBindingAction
      				INTEGER,
      			swIpMacBindingMode
      				INTEGER,
                swIpMacBindingAclStatus
      				INTEGER
       }

	swIpMacBindingIpIndex OBJECT-TYPE
		SYNTAX		IpAddress
		MAX-ACCESS	read-only
		STATUS		current
		DESCRIPTION
			"The IP address of the IP-MAC binding entry."
		::= { swIpMacBindingEntry 1 }

	swIpMacBindingMac OBJECT-TYPE
		SYNTAX		MacAddress
		MAX-ACCESS	read-create
		STATUS		current
		DESCRIPTION
			"The MAC address of the IP-MAC binding entry."
		::= { swIpMacBindingEntry 2 }

	swIpMacBindingStatus OBJECT-TYPE
		SYNTAX		RowStatus
		MAX-ACCESS	read-create
		STATUS		current
		DESCRIPTION
			"The status of this entry."
		::= { swIpMacBindingEntry 3 }

  	swIpMacBindingPorts OBJECT-TYPE
    		SYNTAX    PortList
    		MAX-ACCESS  read-create
    		STATUS    current
    		DESCRIPTION
      			"The port members of this entry."
    		::= { swIpMacBindingEntry 4 }

  	swIpMacBindingAction OBJECT-TYPE
    		SYNTAX    INTEGER{
            		inactive(1),
            		active(2)
            	}
    		MAX-ACCESS  read-only
    		STATUS    current
    		DESCRIPTION
      			"The action of this entry.
				 Note: Supported in IP-MAC binding v3.5 and the earlier versions."
    		::= { swIpMacBindingEntry 5 }

  	swIpMacBindingMode OBJECT-TYPE
    		SYNTAX    INTEGER{
            		arp(1),
            		acl(2),
            		dhcp-snooping(3),
            		static(4)
            	}
    		MAX-ACCESS  read-create
    		STATUS    current
    		DESCRIPTION
      			"The mode of this entry.
      			 arp:   This entry is specified as an ARP mode entry, and this 
      			        entry will not be added as an access entry. If this 
      			        object is not specified, the mode defaults to ARP mode. 
      			        If the system is in ARP mode, the ARP mode entries and 
      			        ACL mode entries will be effective. If the system is in 
      			        ACL mode, only the ACL mode entries will be active.(Note: 
                        Supported on IP-MAC binding v3.5 and the earlier version.)
      			        
      			 acl:   This entry is specified as an ACL mode entry. If the 
      			        user enables the ACL mode, this entry will be added as 
      			        an access entry. (Note: Supported in IP-MAC binding v3.3 
                        only).
      			   	      
      			 dhcp-snooping: This mode cannot be configured, and when the 
      			        dhcp-snooping mode is employed, it means that this entry has
      			        been learned by DHCP snooping.
      			    		
      			 static: This entry is manually configured."      			 		 	 
    		::= { swIpMacBindingEntry 6 }

  	swIpMacBindingAclStatus OBJECT-TYPE
    		SYNTAX    INTEGER{
            		inactive(1),
            		active(2)
            	}
    		MAX-ACCESS  read-only
    		STATUS    current
    		DESCRIPTION
      			"This object indicates the ACL status of this entry."
    		::= { swIpMacBindingEntry 7 }

	swIpMacBindingBlockedTable OBJECT-TYPE
		SYNTAX		SEQUENCE OF SwIpMacBindingBlockedEntry
		MAX-ACCESS  not-accessible
		STATUS		current
		DESCRIPTION
		      "This table displays information regarding the blocked MAC addresses."
		::= { swIpMacBindingMgmt 2 }

	swIpMacBindingBlockedEntry OBJECT-TYPE
		SYNTAX		SwIpMacBindingBlockedEntry
		MAX-ACCESS  not-accessible
		STATUS		current
		DESCRIPTION
		      "The entry cannot be created or configured. It can only be deleted."
		INDEX { swIpMacBindingBlockedVID, swIpMacBindingBlockedMac }
		::= { swIpMacBindingBlockedTable 1 }

	SwIpMacBindingBlockedEntry ::=
        SEQUENCE {
            		swIpMacBindingBlockedVID
                		VlanId,
			swIpMacBindingBlockedMac
				MacAddress,
			swIpMacBindingBlockedVlanName
				DisplayString,
			swIpMacBindingBlockedPort
				INTEGER,
			swIpMacBindingBlockedType
				INTEGER,
			swIpMacBindingBlockedTime
			  	DateAndTime,
			swIpMacBindingBlockedStatus
				RowStatus  	
       }

	swIpMacBindingBlockedVID OBJECT-TYPE
		SYNTAX		VlanId
		MAX-ACCESS	read-only
		STATUS		current
		DESCRIPTION
			"This object specifies the VLAN ID."
		::= { swIpMacBindingBlockedEntry 1 }

	swIpMacBindingBlockedMac OBJECT-TYPE
		SYNTAX		MacAddress
		MAX-ACCESS	read-only
		STATUS		current
		DESCRIPTION
			"The MAC address that was blocked."
		::= { swIpMacBindingBlockedEntry 2 }

	swIpMacBindingBlockedVlanName OBJECT-TYPE
		SYNTAX		DisplayString
		MAX-ACCESS	read-only
		STATUS		current
		DESCRIPTION
			"This object specifies the VLAN name."
		::= { swIpMacBindingBlockedEntry 3 }

	swIpMacBindingBlockedPort OBJECT-TYPE
		SYNTAX		INTEGER(0..65535)
		MAX-ACCESS	read-only
		STATUS		current
		DESCRIPTION
			"The port that the MAC is associated with."
		::= { swIpMacBindingBlockedEntry 4 }

	swIpMacBindingBlockedType OBJECT-TYPE
		SYNTAX		INTEGER{
						other(1),
						blockByAddrBind(2),
						delete(3)
						}
		MAX-ACCESS	read-write
		STATUS		obsolete
		DESCRIPTION
			"The value is always blockByAddrBind. This entry will be deleted when the value is set to 'delete'."
		::= { swIpMacBindingBlockedEntry 5 }

	swIpMacBindingBlockedTime OBJECT-TYPE
		SYNTAX		DateAndTime
		MAX-ACCESS	read-only
		STATUS		current
		DESCRIPTION
			"This object specifies the last time that this entry was generated."
		::= { swIpMacBindingBlockedEntry 6 }

	swIpMacBindingBlockedStatus OBJECT-TYPE
		SYNTAX		RowStatus
		MAX-ACCESS	read-create
		STATUS		current
		DESCRIPTION
			"The status of this entry.
			 Currently only the destroy (6) option can be used to delete this entry."
		::= { swIpMacBindingBlockedEntry 7 }
		
-- -----------------------------------------------------------------------------
        swIpMacBindingDHCPSnoopTable OBJECT-TYPE
     	        SYNTAX       SEQUENCE OF SwIpMacBindingDHCPSnoopEntry
     	        MAX-ACCESS   not-accessible
     	        STATUS   current
     	        DESCRIPTION
     	              "The table specifies information regarding the IP-MAC binding entries that were learned by the DHCP snooping 
     	               function."
               ::={swIpMacBindingMgmt 3}

        swIpMacBindingDHCPSnoopEntry  OBJECT-TYPE
                 SYNTAX    SwIpMacBindingDHCPSnoopEntry
                 MAX-ACCESS not-accessible
                 STATUS    current
                 DESCRIPTION
                      "A list containing information about the DHCP snooping learning 
                       IP-MAC binding entry."
                 INDEX {swIpMacBindingDHCPSnoopIpIndex}
                 ::={swIpMacBindingDHCPSnoopTable 1}

	SwIpMacBindingDHCPSnoopEntry ::=
        	SEQUENCE {
				swIpMacBindingDHCPSnoopIpIndex
					IpAddress,
				swIpMacBindingDHCPSnoopMac
					MacAddress,
				swIpMacBindingDHCPSnoopLeaseTime
					INTEGER,
				swIpMacBindingDHCPSnoopPort
					INTEGER,
				swIpMacBindingDHCPSnoopStatus
					INTEGER
       }

	swIpMacBindingDHCPSnoopIpIndex OBJECT-TYPE
		SYNTAX		IpAddress
		MAX-ACCESS	read-only
		STATUS		current
		DESCRIPTION
			"The IP address of this entry."
		::= { swIpMacBindingDHCPSnoopEntry 1 }

	swIpMacBindingDHCPSnoopMac OBJECT-TYPE
		SYNTAX		MacAddress
		MAX-ACCESS	read-only
		STATUS		current
		DESCRIPTION
			"The MAC address of this entry."
		::= { swIpMacBindingDHCPSnoopEntry 2 }                       
                        
        swIpMacBindingDHCPSnoopLeaseTime   OBJECT-TYPE
                SYNTAX      INTEGER
                MAX-ACCESS  read-only
                STATUS     current
                DESCRIPTION
                    "Specifies the lease time of this entry.
                     When the lease time expires, this entry will be removed from 
                     this port.
                    "
                ::={swIpMacBindingDHCPSnoopEntry 3}
                
    	swIpMacBindingDHCPSnoopPort   OBJECT-TYPE
		SYNTAX         INTEGER
		MAX-ACCESS     read-only
		STATUS         current
		DESCRIPTION
            	    "Specifies the port of this entry."
   		::= { swIpMacBindingDHCPSnoopEntry 4 }
   		
    	swIpMacBindingDHCPSnoopStatus   OBJECT-TYPE
		SYNTAX    INTEGER{
        		inactive(1),
        		active(2)
        	}
		MAX-ACCESS     read-only
		STATUS         current
		DESCRIPTION
            	    "Specifies the status (inactive or active) of this entry."
   		::= { swIpMacBindingDHCPSnoopEntry 5 }
   		
-- -----------------------------------------------------------------------------
-- swIpMacBindingIPv6Table          OBJECT IDENTIFIER ::= { swIpMacBindingMgmt 4 }
-- -----------------------------------------------------------------------------	
	swIpMacBindingIPv6Table OBJECT-TYPE
		SYNTAX		SEQUENCE OF SwIpMacBindingIPv6Entry
		MAX-ACCESS  not-accessible
		STATUS		current
		DESCRIPTION
		      "This table specifies the IPv6 IP-MAC binding information."
		::= { swIpMacBindingMgmt 4 }

	swIpMacBindingIPv6Entry OBJECT-TYPE
		SYNTAX		SwIpMacBindingIPv6Entry
		MAX-ACCESS  not-accessible
		STATUS		current
		DESCRIPTION
		      "The IPv6 IP-MAC binding entry is used to add/delete/configure an 
		      IPv6 address and MAC address pair in the switch's authorized user 
		      database."
		INDEX { swIpMacBindingIPv6Addr}
		::= { swIpMacBindingIPv6Table 1 }

	SwIpMacBindingIPv6Entry ::=
        SEQUENCE {
            		swIpMacBindingIPv6Addr
            			Ipv6Address,
			swIpMacBindingIPv6MacAddr
				MacAddress,
			swIpMacBindingIPv6Portlist
				PortList,
			swIpMacBindingIPv6Mode
				INTEGER,
			swIpMacBindingIPv6ACLStatus
				INTEGER,
			swIpMacBindingIPv6RowStatus
				RowStatus
       }

	swIpMacBindingIPv6Addr OBJECT-TYPE
		SYNTAX		Ipv6Address
		MAX-ACCESS	read-only
		STATUS		current
		DESCRIPTION
			"The IPv6 address of the IPv6 IP-MAC binding entry."
		::= { swIpMacBindingIPv6Entry 1 }

	swIpMacBindingIPv6MacAddr OBJECT-TYPE
		SYNTAX		MacAddress
		MAX-ACCESS	read-create
		STATUS		current
		DESCRIPTION
			"The MAC address of the IPv6 IP-MAC binding entry."
		::= { swIpMacBindingIPv6Entry 2 }

  	swIpMacBindingIPv6Portlist OBJECT-TYPE
    		SYNTAX    PortList
    		MAX-ACCESS  read-create
    		STATUS    current
    		DESCRIPTION
      			"The port members of the IPv6 IP-MAC binding entry."
    		::= { swIpMacBindingIPv6Entry 3 }
    		
    	swIpMacBindingIPv6Mode OBJECT-TYPE
    		SYNTAX    INTEGER{
            		static(1),
            		dhcp-snooping(2),
            		nd-snooping(3)
            	}
    		MAX-ACCESS  read-only
    		STATUS    current
    		DESCRIPTION
      			"The mode of the IPv6 IP-MAC binding entry.
      			
      			static(1): When the Static mode is employed, it means 
      			this entry is manually configured.
      			
      			dhcp-snooping(2): This mode cannot be configured, and
      			when the dhcp-snooping mode is employed, it means this
      			entry is to be learned by IPv6 DHCP snooping.
      			
      			nd-snooping(3): This mode cannot be configured, and when
      			the nd-snooping mode is employed, it means this entry is
      			to be learned by ND snooping."
    		::= { swIpMacBindingIPv6Entry 4 }
    		
    	swIpMacBindingIPv6ACLStatus OBJECT-TYPE
    		SYNTAX    INTEGER{
            		inactive(1),
            		active(2)
            	}
    		MAX-ACCESS  read-only
    		STATUS    current
    		DESCRIPTION
      			"The ACL Status of the IPv6 IP-MAC binding entry."
    		::= { swIpMacBindingIPv6Entry 5 }

		swIpMacBindingIPv6RowStatus OBJECT-TYPE
			SYNTAX		RowStatus
			MAX-ACCESS	read-create
			STATUS		current
			DESCRIPTION
				"The status of this conceptual row. To create a row in this
				table, a manager must set this object to createAndGo(4).			 
				To delete a row in this table, a manager must set this object to destroy(6)."
			::= { swIpMacBindingIPv6Entry 6 }
			
-- -----------------------------------------------------------------------------
-- swIpMacBindingIPv6DHCPSnoopTable          OBJECT IDENTIFIER ::= { swIpMacBindingMgmt 5 }
-- -----------------------------------------------------------------------------
        swIpMacBindingIPv6DHCPSnoopTable OBJECT-TYPE
     	        SYNTAX       SEQUENCE OF SwIpMacBindingIPv6DHCPSnoopEntry
     	        MAX-ACCESS   not-accessible
     	        STATUS   current
     	        DESCRIPTION
     	              "The table specifies information regarding the IPv6 DHCP
     	               snooping function learning IPv6 IP-MAC binding entries."
               ::={swIpMacBindingMgmt 5}

        swIpMacBindingIPv6DHCPSnoopEntry  OBJECT-TYPE
                 SYNTAX    SwIpMacBindingIPv6DHCPSnoopEntry
                 MAX-ACCESS not-accessible
                 STATUS    current
                 DESCRIPTION
                      "A list containing information about the IPv6 DHCP snooping learning 
                       IPv6 IP-MAC binding entry."
                 INDEX {swIpMacBindingIPv6DHCPSnoopAddr}
                 ::={swIpMacBindingIPv6DHCPSnoopTable 1}

		SwIpMacBindingIPv6DHCPSnoopEntry ::=
        	SEQUENCE {
				swIpMacBindingIPv6DHCPSnoopAddr
					Ipv6Address,
				swIpMacBindingIPv6DHCPSnoopMac
					MacAddress,
				swIpMacBindingIPv6DHCPSnoopLeaseTime
					INTEGER,
				swIpMacBindingIPv6DHCPSnoopPort
					INTEGER,
				swIpMacBindingIPv6DHCPSnoopStatus
					INTEGER
     		  }

	swIpMacBindingIPv6DHCPSnoopAddr OBJECT-TYPE
		SYNTAX		Ipv6Address
		MAX-ACCESS	read-only
		STATUS		current
		DESCRIPTION
			"The IPv6 address of this entry."
		::= { swIpMacBindingIPv6DHCPSnoopEntry 1 }

	swIpMacBindingIPv6DHCPSnoopMac OBJECT-TYPE
		SYNTAX		MacAddress
		MAX-ACCESS	read-only
		STATUS		current
		DESCRIPTION
			"The MAC address of this entry."
		::= { swIpMacBindingIPv6DHCPSnoopEntry 2 }
                        
        swIpMacBindingIPv6DHCPSnoopLeaseTime   OBJECT-TYPE
                SYNTAX      INTEGER
                MAX-ACCESS  read-only
                STATUS     current
                DESCRIPTION
                    "Specifies the lease time of this entry.
                     When the lease time expires, this entry will be removed."
                ::={swIpMacBindingIPv6DHCPSnoopEntry 3}
                
    	swIpMacBindingIPv6DHCPSnoopPort   OBJECT-TYPE
		SYNTAX         INTEGER
		MAX-ACCESS     read-only
		STATUS         current
		DESCRIPTION
            	    "Specifies the port of this entry."
   		::= { swIpMacBindingIPv6DHCPSnoopEntry 4 }
   		
    	swIpMacBindingIPv6DHCPSnoopStatus   OBJECT-TYPE
		SYNTAX    INTEGER{
        		inactive(1),
        		active(2)
        	}
		MAX-ACCESS     read-only
		STATUS         current
		DESCRIPTION
            	    "Specifies the status (inactive or active) of this entry."
   		::= { swIpMacBindingIPv6DHCPSnoopEntry 5 }
   		
 -- -----------------------------------------------------------------------------
-- swIpMacBindingNDSnoopTable          OBJECT IDENTIFIER ::= { swIpMacBindingMgmt 6 }
-- -----------------------------------------------------------------------------
        swIpMacBindingNDSnoopTable OBJECT-TYPE
     	        SYNTAX       SEQUENCE OF SwIpMacBindingNDSnoopEntry
     	        MAX-ACCESS   not-accessible
     	        STATUS   current
     	        DESCRIPTION
     	              "The table specifies information regarding the ND
     	               snooping function of learning IPv6 IP-MAC binding entries."
               ::={swIpMacBindingMgmt 6}

        swIpMacBindingNDSnoopEntry  OBJECT-TYPE
                 SYNTAX    SwIpMacBindingNDSnoopEntry
                 MAX-ACCESS not-accessible
                 STATUS    current
                 DESCRIPTION
                      "A list of information about the ND snooping learning 
                       IPv6 IP-MAC binding entry."
                 INDEX {swIpMacBindingNDSnoopAddr}
                 ::={swIpMacBindingNDSnoopTable 1}

	SwIpMacBindingNDSnoopEntry ::=
        	SEQUENCE {
				swIpMacBindingNDSnoopAddr
					Ipv6Address,
				swIpMacBindingNDSnoopMac
					MacAddress,
				swIpMacBindingNDSnoopLeaseTime
					INTEGER,
				swIpMacBindingNDSnoopPort
					INTEGER,
				swIpMacBindingNDSnoopStatus
					INTEGER
       }

	swIpMacBindingNDSnoopAddr OBJECT-TYPE
		SYNTAX		Ipv6Address
		MAX-ACCESS	read-only
		STATUS		current
		DESCRIPTION
			"The IPv6 address of this entry."
		::= { swIpMacBindingNDSnoopEntry 1 }

	swIpMacBindingNDSnoopMac OBJECT-TYPE
		SYNTAX		MacAddress
		MAX-ACCESS	read-only
		STATUS		current
		DESCRIPTION
			"The MAC address of this entry."
		::= { swIpMacBindingNDSnoopEntry 2 }
                        
        swIpMacBindingNDSnoopLeaseTime   OBJECT-TYPE
                SYNTAX      INTEGER
                MAX-ACCESS  read-only
                STATUS     current
                DESCRIPTION
                    "Specifies the lease time of this entry.
                     When the lease time expires, this entry will be removed."
                ::={swIpMacBindingNDSnoopEntry 3}
                
    	swIpMacBindingNDSnoopPort   OBJECT-TYPE
		SYNTAX         INTEGER
		MAX-ACCESS     read-only
		STATUS         current
		DESCRIPTION
            	    "Specifies the port of this entry."
   		::= { swIpMacBindingNDSnoopEntry 4 }
   		
    	swIpMacBindingNDSnoopStatus   OBJECT-TYPE
		SYNTAX    INTEGER{
        		inactive(1),
        		active(2)
        	}
		MAX-ACCESS     read-only
		STATUS         current
		DESCRIPTION
            	    "Specifies the status (inactive or active) of this entry."
   		::= { swIpMacBindingNDSnoopEntry 5 }
		
-- -----------------------------------------------------------------------------
-- swIpMacBindingUploadDownloadTable   OBJECT IDENTIFIER ::= { swIpMacBindingMgmt 7 }
-- -----------------------------------------------------------------------------
    swIpMacBindingUploadDownloadTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF SwIpMacBindingUploadDownloadEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "This table indicates information about the DHCPv4 snooping binding entry upload or download parameters."
        ::= { swIpMacBindingMgmt 7 }

    swIpMacBindingUploadDownloadEntry OBJECT-TYPE
        SYNTAX  SwIpMacBindingUploadDownloadEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "A list with the DHCPv4 snooping binding entry upload or download parameters.It's contains the Protocol type,
            IP address type, IP address, Username, Password, TCP port number, Filename, and action of this entry"
        INDEX   {swIpMacBindingUploadDownloadProtocol }
        ::= { swIpMacBindingUploadDownloadTable 1 }

    SwIpMacBindingUploadDownloadEntry ::=
        SEQUENCE {
            swIpMacBindingUploadDownloadProtocol
                INTEGER,
            swIpMacBindingUploadDownloadServerIPAddressType
                InetAddressType,
            swIpMacBindingUploadDownloadServerIPAddress
                InetAddress,
            swIpMacBindingUploadDownloadUsername
                DisplayString,
            swIpMacBindingUploadDownloadPassword
                DisplayString,
            swIpMacBindingUploadDownloadTcpPort
                INTEGER,
            swIpMacBindingUploadDownloadFileName
                DisplayString,                
            swIpMacBindingUploadDownloadAction
                INTEGER
        }

    swIpMacBindingUploadDownloadProtocol OBJECT-TYPE
        SYNTAX INTEGER {
                    tftp(1),
                    ftp(2)
                }
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
        	"This object provides the user with a choice of uploading or downloading the selected protocol type.
            
            tftp(1)  selecting the TFTP protocol to upload or download the DHCPv4 snooping database.
            ftp(2)   selecting the FTP protocol to upload or download the DHCPv4 snooping database.
            "
    	::= { swIpMacBindingUploadDownloadEntry 1 }

    swIpMacBindingUploadDownloadServerIPAddressType OBJECT-TYPE
        SYNTAX  InetAddressType
        MAX-ACCESS  read-create
        STATUS  current
        DESCRIPTION
        	"A value that represents a type of Internet address.
             unknown(0)  An unknown address type. This value MUST
                  be used if the value of the corresponding
                  InetAddress object is a zero-length string.
                  It may also be used to indicate an IP address
                  which is not in one of the formats defined
                  below.

             ipv4(1)  An IPv4 address as defined by the
                      InetAddressIPv4 textual convention.

             ipv6(2)   An IPv6 address as defined by the
                       InetAddressIPv6 textual convention.

             dns(16)   A DNS domain name as defined by the
                       InetAddressDNS textual convention.
        	"
    	::= { swIpMacBindingUploadDownloadEntry 2 }

    swIpMacBindingUploadDownloadServerIPAddress OBJECT-TYPE
        SYNTAX  InetAddress
        MAX-ACCESS  read-create
        STATUS  current
        DESCRIPTION
        	"Denotes a generic Internet address.

         An InetAddress value is always interpreted within the context
         of an InetAddressType value.  Every usage of the InetAddress
         textual convention is required to specify the InetAddressType
         object that provides the context.  It is suggested that the
         InetAddressType object be logically registered before the
         object(s) that use the InetAddress textual convention, if
         they appear in the same logical row.

         The value of an InetAddress object must always be
         consistent with the value of the associated InetAddressType
         object.  Attempts to set an InetAddress object to a value
         inconsistent with the associated InetAddressType
         must fail with an inconsistentValue error.
         "
    	::= { swIpMacBindingUploadDownloadEntry 3 }

    swIpMacBindingUploadDownloadUsername OBJECT-TYPE
        SYNTAX  DisplayString  (SIZE (0..64))
        MAX-ACCESS  read-create
        STATUS  current
        DESCRIPTION
        	"The username and password to be authenticated by the FTP server.
            This value MUST be corresponding with Password object, and only use to FTP protocol."
    	::= { swIpMacBindingUploadDownloadEntry 4 }

    swIpMacBindingUploadDownloadPassword OBJECT-TYPE
        SYNTAX  DisplayString  (SIZE (0..64))
        MAX-ACCESS  read-create
        STATUS  current
        DESCRIPTION
        	"The username and password to be authenticated by the FTP server.
            This value MUST be corresponding with Username object, and only use to FTP protocol."
    	::= { swIpMacBindingUploadDownloadEntry 5 }

	swIpMacBindingUploadDownloadTcpPort OBJECT-TYPE
		SYNTAX		INTEGER(1..65535)
		MAX-ACCESS	read-create
		STATUS		current
		DESCRIPTION
			"This object indicates the FTP connecting port number."
		::= { swIpMacBindingUploadDownloadEntry 6 }

    swIpMacBindingUploadDownloadFileName OBJECT-TYPE
        SYNTAX  DisplayString  (SIZE (0..64))
        MAX-ACCESS  read-create
        STATUS  current
        DESCRIPTION
        	"The name of the file to be downloaded from or uploaded to the TFTP or FTP server."
    	::= { swIpMacBindingUploadDownloadEntry 7 }

    swIpMacBindingUploadDownloadAction OBJECT-TYPE
        SYNTAX INTEGER {
                    upload(1),
                    download(2)
                }
        MAX-ACCESS  read-create
        STATUS  current
        DESCRIPTION
        	"This object provides the user with a choice of uploading or downloading the selected file."
    	::= { swIpMacBindingUploadDownloadEntry 10 }
   			
-- -----------------------------------------------------------------------------
-- swIpMacBindingNotify        OBJECT IDENTIFIER ::= { swIpMacBindMIB 5 }
-- -----------------------------------------------------------------------------
	swIpMacBindingNotifyPrefix   OBJECT IDENTIFIER ::= { swIpMacBindingNotify 0 }

	swIpMacBindingViolationTrap NOTIFICATION-TYPE
    	OBJECTS  { 	  swIpMacBindingPortIndex,
    		  		  swIpMacBindingViolationIP,
    		  		  swIpMacBindingViolationMac
                 }
        STATUS  current
        	DESCRIPTION
            		"When the IP-MAC Binding trap is enabled, if there's a new MAC that violates the pre-defined
            		port security configuration, a trap will be sent out."
        	::= { swIpMacBindingNotifyPrefix 1 }
	
        swIpMacBindingStopLearningTrap NOTIFICATION-TYPE
        OBJECTS         { swIpMacBindingPortIndex}
        STATUS  current
        DESCRIPTION
            "When the IP-MAC Binding trap is enabled, if the specific port changes from a 
             normal state to a stop_learning state, a trap will be sent out."
        ::= { swIpMacBindingNotifyPrefix 2 }

      swIpMacBindingRecoverLearningTrap NOTIFICATION-TYPE
        OBJECTS         { swIpMacBindingPortIndex}
        STATUS  current
        DESCRIPTION
            "When the IP-MAC Binding trap is enabled, if the specific port changes from a 
             stop_learning state to a normal state, a trap will be sent out."
        ::= { swIpMacBindingNotifyPrefix 3 }
        
	swIpMacBindingIPv6ViolationTrap NOTIFICATION-TYPE
    	OBJECTS  { 	  	  swIpMacBindingPortIndex,
    		  		  swIpMacBindingViolationIPv6Addr,
    		  		  swIpMacBindingViolationMac
                 }
        STATUS  current
        	DESCRIPTION
            		"When the IP-MAC Binding trap is enabled, if there's a new MAC that violates the pre-defined
            		IPv6 IP-MAC Binding configuration, a trap will be sent out."
        	::= { swIpMacBindingNotifyPrefix 4 }

	swIpMacBindingShutdownTrap NOTIFICATION-TYPE
    	OBJECTS  { 	  swIpMacBindingPortIndex
                 }
        STATUS  current
        	DESCRIPTION
            		"When the rate limiting is shutdown mode and the DHCP rate excludes 
					the limiting, a trap will be sent out."
        	::= { swIpMacBindingNotifyPrefix 5 }
	
	swIpMacBindingRecoveryTrap NOTIFICATION-TYPE
    	OBJECTS  { 	  swIpMacBindingPortIndex
                 }
        STATUS  current
        	DESCRIPTION
            		"When the port is shutdown by DHCP rate limiting and the auto-recovery 
					timer is timeout, a trap will be sent out."
        	::= { swIpMacBindingNotifyPrefix 6 }
        	
	swIpMacBindingNotificationBidings   OBJECT IDENTIFIER ::= { swIpMacBindingNotify 2 }

    	swIpMacBindingViolationIP OBJECT-TYPE
        	SYNTAX  IpAddress
        	MAX-ACCESS  accessible-for-notify
        	STATUS  current
        	DESCRIPTION
            		"This object indicates the IP address that violates the IP-MAC Binding configuration."
        	::= { swIpMacBindingNotificationBidings 1 }

    	swIpMacBindingViolationMac OBJECT-TYPE
        	SYNTAX  MacAddress
        	MAX-ACCESS  accessible-for-notify
        	STATUS  current
        	DESCRIPTION
            		"This object indicates the MAC address that violates the IP-MAC Binding configuration."
        	::= { swIpMacBindingNotificationBidings 2 }
        	
        swIpMacBindingViolationIPv6Addr OBJECT-TYPE
        	SYNTAX  Ipv6Address
        	MAX-ACCESS  accessible-for-notify
        	STATUS  current
        	DESCRIPTION
            		"This object indicates the IPv6 address that violates the IPv6 IP-MAC Binding entry."
        	::= { swIpMacBindingNotificationBidings 3 }

END
