-- 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.

-- $Log: ZYXEL-IPSG-MIB.mib $ 
-- Revision 1.5  2013/12/06 07:06:01  ccho 
-- remove uncessary imports 
-- Revision 1.4  2013/11/06 05:41:28  ccho 
-- fix mib style 
-- Revision 1.3  2012/09/19 07:37:47  Kevin 
-- if it's leaf node, revise the vender name from zyxel to zy 
-- Revision 1.2  2012/07/05 06:23:05  Kevin 
-- 1. upgrade from SNMP to SNMPv2  
-- 2. clean warning 
-- Revision 1.1  2012/05/30 07:49:38  Kevin 
-- Initial revision 

ZYXEL-IPSG-MIB DEFINITIONS ::= BEGIN

    IMPORTS
	OBJECT-TYPE
		FROM SNMPv2-SMI			-- RFC2578	
		
	MODULE-IDENTITY
		FROM SNMPv2-SMI
	
	RowStatus, MacAddress
		FROM SNMPv2-TC			-- RFC2579
	
	PortList
		FROM  Q-BRIDGE-MIB
		
	IpAddress
		FROM SNMPv2-SMI

	esMgmt			
		FROM ZYXEL-ES-SMI;

	zyxelIpsg MODULE-IDENTITY
		LAST-UPDATED	"201207010000Z"    
		ORGANIZATION "Enterprise Solution ZyXEL"     
		CONTACT-INFO
			""	   
		DESCRIPTION
			"The subtree for IP Source Guard (IPSG)"
		::= { esMgmt 33 }
	
	zyxelArpFreezeSetup 	OBJECT IDENTIFIER ::= { zyxelIpsg 1 }	
	zyxelIpsgStatus 		OBJECT IDENTIFIER ::= { zyxelIpsg 2 }	
	zyxelStaticBindingSetup OBJECT IDENTIFIER ::= { zyxelIpsg 3 }	
	zyxelIpsgSetup 			OBJECT IDENTIFIER ::= { zyxelIpsg 4 }	
--
--
--  33.zyxelIpsg
--
--

--		zyxelArpFreezeSetup  
        
        zyArpFreeze OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
		"Add all learned ARP table entries to static binding table. 
		 It's meaningless while reading this entry."
        ::= { zyxelArpFreezeSetup 1 }
 
        zyArpFreezePorts OBJECT-TYPE
        SYNTAX  PortList
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
		"Add learned ARP table entries to static binding table by ports. 
		 It's meaningless while reading this entry."
        ::= { zyxelArpFreezeSetup 2 }

        zyArpFreezeVlan OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
		"Add learned ARP table entries to static binding table by VLAN. 
		 It's meaningless while reading this entry."
        ::= { zyxelArpFreezeSetup 3 }


--		zyxelIpsgStatus 

--      zyxelIpsgInfoTable        
	    zyxelIpsgInfoTable  OBJECT-TYPE
	    SYNTAX	SEQUENCE OF ZyxelIpsgInfoEntry 
	    MAX-ACCESS  not-accessible
	    STATUS  current
	    DESCRIPTION
		"The table contains IPSG binding Table information."
	    ::= { zyxelIpsgStatus 2 }	

		zyxelIpsgInfoEntry  OBJECT-TYPE
        SYNTAX	ZyxelIpsgInfoEntry 
        MAX-ACCESS	not-accessible
        STATUS	current
        DESCRIPTION    	
        "An entry contains IPSG binding Table information. "
        INDEX          	{ zyIpsgInfoIpAddress, zyIpsgInfoVid, zyIpsgInfoMacAddress }
        ::= { zyxelIpsgInfoTable 1 }

        ZyxelIpsgInfoEntry ::=
           SEQUENCE {
        	zyIpsgInfoIpAddress		IpAddress,
        	zyIpsgInfoVid			INTEGER,
		    zyIpsgInfoMacAddress	MacAddress,
        	zyIpsgInfoLeaseTime		INTEGER,
        	zyIpsgInfoType			INTEGER,
        	zyIpsgInfoPort			INTEGER
        }
		
        zyIpsgInfoIpAddress OBJECT-TYPE
        SYNTAX  IpAddress
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
		"The IP address assigned to the MAC address in the binding."
        ::= { zyxelIpsgInfoEntry 1 }
		
		zyIpsgInfoVid OBJECT-TYPE
        SYNTAX  INTEGER (1.. 4094)
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
		"The source VLAN ID in the binding."
        ::= { zyxelIpsgInfoEntry 2 }
		
        zyIpsgInfoMacAddress OBJECT-TYPE
        SYNTAX  MacAddress
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
		"The source MAC address in the binding."
        ::= { zyxelIpsgInfoEntry 3 }

        zyIpsgInfoLeaseTime OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
		"This entry displays how much time (seconds) the binding is valid. 
		 This entry displays value 0 if the binding is always valid (for example, a static binding)."
        ::= { zyxelIpsgInfoEntry 4 }

        zyIpsgInfoType OBJECT-TYPE
        SYNTAX  INTEGER { 
        	static(1), 
        	dhcp(2) 
        }
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
		"This entry displays how the switch learned the binding.
		 static: This binding was learned from information provided manually by an administrator.
		 dhcp: This binding was learned by snooping DHCP packets."
        ::= { zyxelIpsgInfoEntry 5 }

        zyIpsgInfoPort OBJECT-TYPE
        SYNTAX  INTEGER 
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
		"The port number in the binding. The value 0 means any port."
        ::= { zyxelIpsgInfoEntry 6 }
 
 --  	zyxelStaticBindingSetup      		                       
        
        zyStaticBindingMaxNumberOfRules OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
		"The maximum number of static binding rules that can be created."
        ::= { zyxelStaticBindingSetup 1 }

--     zyxelStaticBindingTable
        zyxelStaticBindingTable  OBJECT-TYPE
	    SYNTAX	SEQUENCE OF ZyxelStaticBindingEntry 
	    MAX-ACCESS  not-accessible
	    STATUS  current
	    DESCRIPTION
		"The table contains static binding configuration. "
	    ::= { zyxelStaticBindingSetup 3 }	

		zyxelStaticBindingEntry  OBJECT-TYPE
        SYNTAX	ZyxelStaticBindingEntry 
        MAX-ACCESS	not-accessible
        STATUS	current
        DESCRIPTION    	
        "An entry contains static binding configuration."
        INDEX          	{ zyStaticBindingIpAddress, zyStaticBindingVid, zyStaticBindingMacAddress }
        ::= { zyxelStaticBindingTable 1 }

        ZyxelStaticBindingEntry ::=
           SEQUENCE {
        	zyStaticBindingIpAddress	IpAddress,
			zyStaticBindingVid			INTEGER,
			zyStaticBindingMacAddress	MacAddress,
        	zyStaticBindingPort			INTEGER,
        	zyStaticBindingRowStatus	RowStatus
           }

		zyStaticBindingIpAddress OBJECT-TYPE
        SYNTAX  IpAddress
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
		"The IP address assigned to the MAC address in the binding."
        ::= { zyxelStaticBindingEntry 1 }   
		   
        zyStaticBindingVid OBJECT-TYPE
        SYNTAX  INTEGER (1..4094)
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
		"Enter the source VLAN ID in the binding."
        ::= { zyxelStaticBindingEntry 2 }
		
		zyStaticBindingMacAddress OBJECT-TYPE
        SYNTAX  MacAddress
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
		"The source MAC address in the binding."
        ::= { zyxelStaticBindingEntry 3 }

        zyStaticBindingPort OBJECT-TYPE
        SYNTAX  INTEGER 
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
		"Enter the port number in the binding. The value 0 means any port."
        ::= { zyxelStaticBindingEntry 4 }

        zyStaticBindingRowStatus OBJECT-TYPE
        SYNTAX  RowStatus
        MAX-ACCESS  read-create
        STATUS  current
        DESCRIPTION
		"This object allows static binding entries to be created and deleted from static binding table."
        ::= { zyxelStaticBindingEntry 5 } 
                                      
 --  	zyxelIpsgSetup      	
   
        zyIpsgMode	 OBJECT-TYPE
        SYNTAX  INTEGER { 
        	strict(1), 
        	loose(2) 
        }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
		"This entry can select IPSG Security Mode. The value 1 means stict mode and value 2 means loose mode. ."
        ::= { zyxelIpsgSetup 1 }
  
END
