-- 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-IPv6SG-MIB.mib
-- Revision 1.3  2015/03/25 

ZYXEL-IPv6SG-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  
		
	InetAddressType, InetAddress
		FROM INET-ADDRESS-MIB		-- RFC2851	

	EnabledStatus
		FROM  P-BRIDGE-MIB 
		
	DisplayString                                          
	  	FROM SNMPv2-TC
		
	dot1dBasePort
       	FROM BRIDGE-MIB

	esMgmt			
		FROM ZYXEL-ES-SMI;		

	zyxelIpv6sg MODULE-IDENTITY
		LAST-UPDATED	"201501010000Z"    
		ORGANIZATION 	"Enterprise Solution ZyXEL"     
		CONTACT-INFO
			""	   
		DESCRIPTION
			"The subtree for IPv6 Source Guard (IPv6SG)"
		::= { esMgmt 108 }
	
	zyxelIpv6sgSetup 	OBJECT IDENTIFIER ::= { zyxelIpv6sg 1 }	
	zyxelIpv6sgStatus	OBJECT IDENTIFIER ::= { zyxelIpv6sg 2 }	

--
--
--  108.zyxelIpv6sg
--
--

--		zyxelIpv6sgSetup  

--		static binding          
        zyxelIpv6sgStaticBindingMaxNumberOfRules OBJECT-TYPE
        SYNTAX  	INTEGER
        MAX-ACCESS  read-only
        STATUS  	current
        DESCRIPTION
		"The maximum number of static binding rules that can be created."
		::= { zyxelIpv6sgSetup 1 } 
		
		zyxelIpv6sgStaticBindingTable OBJECT-TYPE
        SYNTAX	SEQUENCE OF ZyxelIpv6sgStaticBindingEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
        "The table contains static binding configuration."
        ::= { zyxelIpv6sgSetup 2 }
        
		zyxelIpv6sgStaticBindingEntry OBJECT-TYPE
        SYNTAX	ZyxelIpv6sgStaticBindingEntry
        MAX-ACCESS	not-accessible
        STATUS	current
        DESCRIPTION    	
		"An entry contains static binding configuration."
        INDEX          	{ zyIpv6sgStaticBindingIpv6AddressType, zyIpv6sgStaticBindingIpv6Address, zyIpv6sgStaticBindingIpv6PrefixLength}
        ::= { zyxelIpv6sgStaticBindingTable 1 }              

      	ZyxelIpv6sgStaticBindingEntry ::=
		SEQUENCE {
        	zyIpv6sgStaticBindingIpv6AddressType		InetAddressType,
        	zyIpv6sgStaticBindingIpv6Address			InetAddress,
        	zyIpv6sgStaticBindingIpv6PrefixLength		INTEGER,
        	zyIpv6sgStaticBindingMacAddress				MacAddress,
          	zyIpv6sgStaticBindingVid 					INTEGER,
			zyIpv6sgStaticBindingPort 					INTEGER,
			zyIpv6sgStaticBindingRowStatus 				RowStatus          	
           }

        zyIpv6sgStaticBindingIpv6AddressType OBJECT-TYPE
        SYNTAX  InetAddressType
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
        "The type of IPv6 address."
        ::= { zyxelIpv6sgStaticBindingEntry 1 }   
        
       	zyIpv6sgStaticBindingIpv6Address OBJECT-TYPE
        SYNTAX  InetAddress
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
        "The source of IPv6 address in this binding entry."
        ::= { zyxelIpv6sgStaticBindingEntry 2 }   
        
       	zyIpv6sgStaticBindingIpv6PrefixLength OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
        "The prefix length of IPv6 address. The value 128 means it is a IPv6 address."
        ::= { zyxelIpv6sgStaticBindingEntry 3 }        

        zyIpv6sgStaticBindingMacAddress OBJECT-TYPE
        SYNTAX  MacAddress 
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
        "The source MAC address in this binding entry.The value 0.0.0.0.0.0 means mac is don't care."
        ::= { zyxelIpv6sgStaticBindingEntry 4 }                        

        zyIpv6sgStaticBindingVid OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
        "The VLAN number sets in this binding entry. The value 0 means don't care VLAN ID."
        ::= { zyxelIpv6sgStaticBindingEntry 5 }                        

        zyIpv6sgStaticBindingPort OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
        "Enter the port number in the binding. The value 0 means any port. If user set any port, the mac must be any."
        ::= { zyxelIpv6sgStaticBindingEntry 6 }                        

        zyIpv6sgStaticBindingRowStatus OBJECT-TYPE
        SYNTAX  RowStatus
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
        "This object allows static binding entries to be created and deleted from static binding table."
        ::= { zyxelIpv6sgStaticBindingEntry 7 } 
                
--		policy                  
        zyxelIpv6sgPolicyMaxNumberOfRules OBJECT-TYPE
        SYNTAX  	INTEGER
        MAX-ACCESS  read-only
        STATUS  	current
        DESCRIPTION
		"The maximum number of IPv6 source guard policy rules that can be created."
		::= { zyxelIpv6sgSetup 3 } 
		
		zyxelIpv6sgPolicyTable OBJECT-TYPE
        SYNTAX	SEQUENCE OF ZyxelIpv6sgPolicyEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
        "The table contains IPv6 source guard policy configuration. "
        ::= { zyxelIpv6sgSetup 4 }
        
		zyxelIpv6sgPolicyEntry OBJECT-TYPE
        SYNTAX	ZyxelIpv6sgPolicyEntry
        MAX-ACCESS	not-accessible
        STATUS	current
        DESCRIPTION    	
		"An entry contains IPv6 source guard policy configuration. "
        INDEX          	{ zyIpv6sgPolicyName }
        ::= { zyxelIpv6sgPolicyTable 1 }              

      	ZyxelIpv6sgPolicyEntry ::=
		SEQUENCE {
        	zyIpv6sgPolicyName						DisplayString,
        	zyIpv6sgPolicyValidateAddressState		EnabledStatus,
        	zyIpv6sgPolicyValidatePrefixState		EnabledStatus,
        	zyIpv6sgPolicyPermitLinkLocalState		EnabledStatus,
          	zyIpv6sgPolicyRowStatus 				RowStatus        	
           }

        zyIpv6sgPolicyName OBJECT-TYPE
        SYNTAX  DisplayString
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
        "The name of IPv6 source guard policy."
        ::= { zyxelIpv6sgPolicyEntry 1 }  
        
        zyIpv6sgPolicyValidateAddressState OBJECT-TYPE
        SYNTAX  EnabledStatus 
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
        "Enable/Disable validate address on this IPv6 source guard."
        ::= { zyxelIpv6sgPolicyEntry 2 }
        
        zyIpv6sgPolicyValidatePrefixState OBJECT-TYPE
        SYNTAX  EnabledStatus 
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
        "Enable/Disable validate prefix on this IPv6 source guard."
        ::= { zyxelIpv6sgPolicyEntry 3 }   
        
        zyIpv6sgPolicyPermitLinkLocalState OBJECT-TYPE
        SYNTAX  EnabledStatus 
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
        "Enable/Disable permit Link-Local on this IPv6 source guard."
        ::= { zyxelIpv6sgPolicyEntry 4 } 
        
        zyIpv6sgPolicyRowStatus OBJECT-TYPE
        SYNTAX  RowStatus
        MAX-ACCESS  read-create
        STATUS  current
        DESCRIPTION
        "This object allows IPv6 source guard policy entries to be created and deleted."
        ::= { zyxelIpv6sgPolicyEntry 100 }	
        
--		port
		zyxelIpv6sgPolicyPortTable OBJECT-TYPE
        SYNTAX	SEQUENCE OF ZyxelIpv6sgPolicyPortEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
        "The table maintains IPv6 source guard policy configuration."
        ::= { zyxelIpv6sgSetup 5 }
        
		zyxelIpv6sgPolicyPortEntry OBJECT-TYPE
        SYNTAX	ZyxelIpv6sgPolicyPortEntry
        MAX-ACCESS	not-accessible
        STATUS	current
        DESCRIPTION    	
		"IPv6 source guard configuration information for a policy."
        INDEX          	{ dot1dBasePort }
        ::= { zyxelIpv6sgPolicyPortTable 1 }              

      	ZyxelIpv6sgPolicyPortEntry ::=
		SEQUENCE {
        	zyIpv6sgPolicyPortAttachPolicy		DisplayString       	
           }

        zyIpv6sgPolicyPortAttachPolicy OBJECT-TYPE
        SYNTAX  DisplayString
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
        "Name of IPv6 source guard policy in specified port."
        ::= { zyxelIpv6sgPolicyPortEntry 1 }  
		
		
--		zyxelIpv6sgStatus 	 
        zyIpv6sgBindingClearAll OBJECT-TYPE
        SYNTAX  EnabledStatus
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
		"This entry is used to clear all dynamic entries from the binding table."
        ::= { zyxelIpv6sgStatus 1 }
	
		zyxelIpv6sgBindingTable OBJECT-TYPE
        SYNTAX	SEQUENCE OF ZyxelIpv6sgBindingEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
        "The table contains neighbor binding table information."
        ::= { zyxelIpv6sgStatus 2 }
        
		zyxelIpv6sgBindingEntry OBJECT-TYPE
        SYNTAX	ZyxelIpv6sgBindingEntry
        MAX-ACCESS	not-accessible
        STATUS	current
        DESCRIPTION    	
		"An entry contains binding entry information. "
        INDEX          	{ zyIpv6sgBindingIpv6AddressType, zyIpv6sgBindingIpv6Address, zyIpv6sgBindingIpv6PrefixLength}
        ::= { zyxelIpv6sgBindingTable 1 }              

      	ZyxelIpv6sgBindingEntry ::=
		SEQUENCE {
        	zyIpv6sgBindingIpv6AddressType		InetAddressType,
        	zyIpv6sgBindingIpv6Address			InetAddress,
        	zyIpv6sgBindingIpv6PrefixLength		INTEGER,
        	zyIpv6sgBindingMacAddress			MacAddress,
          	zyIpv6sgBindingVid 					INTEGER,
			zyIpv6sgBindingPort 				INTEGER,
			zyIpv6sgBindingLeaseTime 			INTEGER,          	
			zyIpv6sgBindingType 				INTEGER,          	
			zyIpv6sgBindingClear 				EnabledStatus          				
           }

        zyIpv6sgBindingIpv6AddressType OBJECT-TYPE
        SYNTAX  InetAddressType
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
        "The type of IPv6 address."
        ::= { zyxelIpv6sgBindingEntry 1 }   
        
       	zyIpv6sgBindingIpv6Address OBJECT-TYPE
        SYNTAX  InetAddress
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
        "The IPv6 address assigned to the MAC address in the binding table."
        ::= { zyxelIpv6sgBindingEntry 2 }   
        
       	zyIpv6sgBindingIpv6PrefixLength OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
        "The prefix length of IPv6 address. The value 128 means it is a IPv6 address."
        ::= { zyxelIpv6sgBindingEntry 3 }        

        zyIpv6sgBindingMacAddress OBJECT-TYPE
        SYNTAX  MacAddress 
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
        "The source MAC address in this binding entry.The value 0.0.0.0.0.0 means mac is don't care."
        ::= { zyxelIpv6sgBindingEntry 4 }                        

        zyIpv6sgBindingVid OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
        "The VLAN number sets in this binding entry."
        ::= { zyxelIpv6sgBindingEntry 5 }                        

        zyIpv6sgBindingPort OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
        "The port number in the binding. The value 0 means any port."
        ::= { zyxelIpv6sgBindingEntry 6 }  
        
        zyIpv6sgBindingLeaseTime 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)."
        ::= { zyxelIpv6sgBindingEntry 7 }
        
        zyIpv6sgBindingType 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."
        ::= { zyxelIpv6sgBindingEntry 8 }
        
        zyIpv6sgBindingClear OBJECT-TYPE
        SYNTAX  EnabledStatus        
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
        "This entry is used to clear this dynamic binding entry."
        ::= { zyxelIpv6sgBindingEntry 9 }              
  
END 
