-- 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-ZULD-MIB.mib $ 
-- Revision 1.2  2015/02/16 07:11:36  Kevin 
-- clear warning, import ifIndex 
-- Revision 1.1  2015/02/09 08:19:11  Bruno 
-- Initial revision 

ZYXEL-ZULD-MIB DEFINITIONS ::= BEGIN

    IMPORTS
    
	OBJECT-TYPE
		FROM SNMPv2-SMI			-- RFC2578	
			
	MODULE-IDENTITY
		FROM SNMPv2-SMI
	
	EnabledStatus
		FROM  P-BRIDGE-MIB      
		
   	dot1dBasePort
		FROM BRIDGE-MIB        
		
	MacAddress
		FROM SNMPv2-TC			-- RFC2579	
		
	ifIndex
    	FROM IF-MIB					-- RFC2863

	esMgmt			
		FROM ZYXEL-ES-SMI;

	zyxelZuld MODULE-IDENTITY
		LAST-UPDATED	"201501080000Z"    
		ORGANIZATION 	"Enterprise Solution ZyXEL"     
		CONTACT-INFO
			""	   
		DESCRIPTION
			"The subtree for ZyXEL Unidirectional Link Detection (ZULD)"
		::= { esMgmt 110 }

		zyxelZuldSetup     			OBJECT IDENTIFIER ::= { zyxelZuld 1 }
		zyxelZuldStatus    			OBJECT IDENTIFIER ::= { zyxelZuld 2 }
		zyxelZuldTrapNotifications 	OBJECT IDENTIFIER ::= { zyxelZuld 3 }	
	
                              
        zyZuldState OBJECT-TYPE
        SYNTAX  EnabledStatus
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
 			"Enable/Disable ZULD on the switch."
        ::= { zyxelZuldSetup 1 }

        zyxelZuldPortTable OBJECT-TYPE
        SYNTAX	SEQUENCE OF ZyxelZuldPortEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
			"The table contains ZULD port configuration."
        ::= { zyxelZuldSetup 2 }
       
		zyxelZuldPortEntry OBJECT-TYPE
        SYNTAX	ZyxelZuldPortEntry
        MAX-ACCESS	not-accessible
        STATUS	current
        DESCRIPTION    	
        	"An entry contains ZULD port configuration."
        INDEX          	{ dot1dBasePort }
        ::= { zyxelZuldPortTable 1 }

        ZyxelZuldPortEntry ::=
        SEQUENCE {
            zyZuldPortState   EnabledStatus,
            zyZuldPortMode    INTEGER,
            zyZuldPortProbeTime INTEGER        
        }
	

        zyZuldPortState OBJECT-TYPE
        SYNTAX EnabledStatus
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
			"Enable/Disable ZULD on this port."
        ::= { zyxelZuldPortEntry  1 }
  
	
        zyZuldPortMode OBJECT-TYPE
		SYNTAX INTEGER {
			normal(1),
			aggressive(2)
		}
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
			"Set the ZULD mode of the port-based ZULD."
        ::= { zyxelZuldPortEntry 2 }

		
        zyZuldPortProbeTime OBJECT-TYPE
        SYNTAX INTEGER (5.. 65534)
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
			"Set the ZULD probe time(5-65535) of the port-based ZULD."
        ::= { zyxelZuldPortEntry 3 }


        zyxelZuldPortStatusTable OBJECT-TYPE
        SYNTAX	SEQUENCE OF ZyxelZuldPortStatusEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
			"The table contains ZULD information. "
        ::= { zyxelZuldStatus 1 }
      
		zyxelZuldPortStatusEntry OBJECT-TYPE
        SYNTAX	ZyxelZuldPortStatusEntry
        MAX-ACCESS	not-accessible
        STATUS	current
        DESCRIPTION    	
        	"An entry contains ZULD information."
        INDEX          	{ dot1dBasePort }
        ::= { zyxelZuldPortStatusTable 1 }
        
        ZyxelZuldPortStatusEntry ::=
           SEQUENCE {
			zyZuldPortLinkState          	INTEGER,
			zyZuldPortRemoteMACAddress   	MacAddress,
			zyZuldPortRemotePort      		INTEGER,
			zyZuldPortRemoteOperation    	EnabledStatus
           }
           		   
        zyZuldPortLinkState OBJECT-TYPE
        SYNTAX  INTEGER {
             		linkdwon(1),
             		probe(2),
             		unidirectional(3),
             		bidirectional(4),
             		shutdown(5)
             	}
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
			"This field displays the ZULD port link state."
        ::= { zyxelZuldPortStatusEntry 1 }

		
        zyZuldPortRemoteMACAddress OBJECT-TYPE
        SYNTAX  MacAddress
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
			"This field displays the ZULD remote port mac address."
        ::= { zyxelZuldPortStatusEntry 2 }

		
		zyZuldPortRemotePort OBJECT-TYPE
        SYNTAX  INTEGER
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
			"This field displays the ZULD remote port number."
        ::= { zyxelZuldPortStatusEntry 3 }

		zyZuldPortRemoteOperation OBJECT-TYPE
		SYNTAX  EnabledStatus 
		MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
			"This field displays the ZULD remote operation."
        ::= { zyxelZuldPortStatusEntry 4 }    

--        
       zyZuldUnidirectionalDetected NOTIFICATION-TYPE
       OBJECTS {
				ifIndex
	         }       
	   STATUS  current
       DESCRIPTION
       "Unidirectional link is detected"
       ::= { zyxelZuldTrapNotifications 1 }

       zyZuldBidirectionalRecovered NOTIFICATION-TYPE
       OBJECTS {
				ifIndex
	         }       
	   STATUS  current
       DESCRIPTION
       "Recovered to Bidirectional link"
       ::= { zyxelZuldTrapNotifications 2 }

END

