-- 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-POWER-ETHERNET-MIB.mib
-- Revision 1.9  2013/12/10
-- remove uncessary imports
-- Revision 1.8  2013/11/06 07:36:04  ccho
-- fix mib style
-- Revision 1.7  2013/06/25 10:00:40  Mandy
-- Support notified trap for error recovered
-- Revision 1.6  2012/11/16 08:03:56  cfchen
-- user-defined max power
-- Revision 1.5  2012/10/25 03:50:41  Kevin
-- correct entry name
-- Revision 1.4  2012/09/19 07:44:41  Kevin
-- if it's leaf node, revise the vender name from zyxel to zy
-- Revision 1.3  2012/08/22 09:47:47  Kevin
-- clean warning for SNMPc
-- Revision 1.2  2012/07/05 06:24:22  Kevin
-- 1. upgrade from SNMP to SNMPv2 
-- 2. clean warning
-- Revision 1.1  2012/05/30 07:50:26  Kevin
-- Initial revision

ZYXEL-POWER-ETHERNET-MIB DEFINITIONS ::= BEGIN

    IMPORTS
	OBJECT-TYPE
		FROM SNMPv2-SMI			-- RFC2578	
		
	MODULE-IDENTITY
		FROM SNMPv2-SMI

	EnabledStatus
		FROM  P-BRIDGE-MIB

		dot1dBasePort
       	FROM BRIDGE-MIB

    ifIndex
    	FROM IF-MIB					-- RFC2863

    NOTIFICATION-TYPE
        FROM SNMPv2-SMI
		
 	DisplayString                                          
	  	FROM SNMPv2-TC
		
	InetAddressType, InetAddress
		FROM INET-ADDRESS-MIB		-- RFC2851
		
	RowStatus
		FROM SNMPv2-TC			-- RFC2579
	
 	esMgmt			
		FROM ZYXEL-ES-SMI;

		
	zyxelPoe MODULE-IDENTITY
		LAST-UPDATED	"201207010000Z"    
		ORGANIZATION "Enterprise Solution ZyXEL"     
		CONTACT-INFO
			""	   
		DESCRIPTION
			"The subtree for Power over Ethernet (PoE)"
		::= { esMgmt 59 } 

	zyxelPoeSetup     		OBJECT IDENTIFIER ::= { zyxelPoe 1 } 
	zyxelPoeStatus     		OBJECT IDENTIFIER ::= { zyxelPoe 2 } 
	zyxelPoeTrapInfoObject     	OBJECT IDENTIFIER ::= { zyxelPoe 3 }
	zyxelPoeNotifications   OBJECT IDENTIFIER ::= { zyxelPoe 4 }
	zyxelPoeAutoPdRecoverySetup   	OBJECT IDENTIFIER ::= { zyxelPoe 5 }


-- *******************************************************************
-- *
-- * zyxelPoeSetup
-- *
-- *******************************************************************

-- zyxelPoeMode
		zyPoeMode OBJECT-TYPE
        SYNTAX  INTEGER{
			consumption(0),
			classification(1)
		}
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
                    "Set POE Mode Setup Consumption mode (0), Classification mode (1)."
        ::= { zyxelPoeSetup 1 }

-- zyxelPoePsePortTable
        zyxelPoePsePortTable OBJECT-TYPE
        SYNTAX	SEQUENCE OF ZyxelPoePsePortEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
					"The table contains power ethernet port information. "
        ::= { zyxelPoeSetup 2 }

		zyxelPoePsePortEntry OBJECT-TYPE
        SYNTAX	ZyxelPoePsePortEntry
        MAX-ACCESS	not-accessible
        STATUS	current
        DESCRIPTION    	
					"An entry contains power ethernet port information. "
        INDEX          	{ dot1dBasePort }
        ::= { zyxelPoePsePortTable 1 }	
		
        ZyxelPoePsePortEntry ::=
		SEQUENCE {                                                                     
        	zyPoePsePortMaxPower	INTEGER,  
        	zyPoePsePowerUp 		INTEGER,
		zyPoePsePortTimeRange	DisplayString,      	
		zyPoePseWideRangeDetection	EnabledStatus      
        }

		zyPoePsePortMaxPower OBJECT-TYPE
        SYNTAX	INTEGER
        MAX-ACCESS	read-write
        STATUS	current
        DESCRIPTION    	
						"PoE PSE port user-defined max power expressed in milliwatt,
						 Valid value should be between 1000 and 33000,in steps of 200.
						 Value 0(Default) means to disable user-defined max power."
						 
        ::= { zyxelPoePsePortEntry 1 }  		
		
		zyPoePsePowerUp OBJECT-TYPE
        SYNTAX	INTEGER {
        	ieee802dot3af(0),
        	legacy(1),
        	preIeee802dot3at(2),
        	ieee802dot3at(3),
		ieee802dot3bt(4),
		preIeee802dot3bt(5),
		forceIeee802dot3at(6)
       	}
        MAX-ACCESS	read-write
        STATUS	current
        DESCRIPTION    	
						"Set PoE Power Up Mode Setup 802.3af mode (0), Legacy mode (1), Pre-802.3at mode(2), 802.3at mode(3), 802.3bt mode(4), Pre-802.3bt mode(5), Force-802.3at mode(6)"
						
						 
        ::= { zyxelPoePsePortEntry 2 }  
		
 		zyPoePsePortTimeRange OBJECT-TYPE
        SYNTAX	DisplayString
        MAX-ACCESS	read-write
        STATUS	current
        DESCRIPTION    	
						"Time-Based PoE allow to schedule the PoE works time.
						 Type in the time-range name witch is already created."
						 
        ::= { zyxelPoePsePortEntry 3 }    

		zyPoePseWideRangeDetection OBJECT-TYPE
        SYNTAX  EnabledStatus
        MAX-ACCESS	read-write
        STATUS	current
        DESCRIPTION    	
		    "Set PoE Wide range detection Enable/Disable."
						
						 
        ::= { zyxelPoePsePortEntry 4 }         
		
-- zyxelPoePreAllocate
		zyPoePreAllocate OBJECT-TYPE
        SYNTAX  EnabledStatus
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
                    "Set Poe pre-allocate Enable/Disable."
        ::= { zyxelPoeSetup 3 }   

-- zyxelPoeDualDetection
		zyPoeDualDetection OBJECT-TYPE
        SYNTAX  EnabledStatus
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
                    "Set Poe dual detection Enable/Disable."
        ::= { zyxelPoeSetup 4 }  
        
-- zyxelPoePowerSequenceDelay
		zyPoePowerSequenceDelay OBJECT-TYPE
        SYNTAX  EnabledStatus
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
                    "Set Poe Power Sequence Mode Delay Setup  Enable/Disable."
        ::= { zyxelPoeSetup 5 }                       

-- *******************************************************************
-- *
-- * zyxelPoeStatus
-- *
-- *******************************************************************


-- zyxelPoePsePortTimeRangeTable
        zyxelPoePsePortTimeRangeTable OBJECT-TYPE
        SYNTAX	SEQUENCE OF ZyxelPoePsePortTimeRangeEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
					"The table contains power ethernet port time-range settings. "
        ::= { zyxelPoeSetup 6 }
		
		zyxelPoePsePortTimeRangeEntry OBJECT-TYPE
        SYNTAX	ZyxelPoePsePortTimeRangeEntry
        MAX-ACCESS	not-accessible
        STATUS	current
        DESCRIPTION    	
					"An entry contains power ethernet port time-range settings. "
        INDEX          	{ dot1dBasePort, zyPoePsePortTimeRangeName }
        ::= { zyxelPoePsePortTimeRangeTable 1 }	
		
        ZyxelPoePsePortTimeRangeEntry ::=
		SEQUENCE {                                                                     
		zyPoePsePortTimeRangeName		DisplayString,      	
		zyPoePsePortTimeRangeRowStatus	RowStatus      
        }

		zyPoePsePortTimeRangeName OBJECT-TYPE
		SYNTAX      DisplayString
		MAX-ACCESS  read-only
		STATUS      current
		DESCRIPTION
						"Time-Based PoE allow to schedule the PoE works time. Specifiy the time-range which is already created."
		::= { zyxelPoePsePortTimeRangeEntry 1 }
		
		zyPoePsePortTimeRangeRowStatus OBJECT-TYPE
		SYNTAX      RowStatus
		MAX-ACCESS  read-create
		STATUS      current
		DESCRIPTION
						"This object allow entry to be create and deleted a poe port time-range entry."            
		::= { zyxelPoePsePortTimeRangeEntry 2 }	

-- zyPoeContinuousPoE
		zyPoeContinuousPoE OBJECT-TYPE
		SYNTAX  EnabledStatus
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
                    "Set Continuous PoE Enable/Disable."
        ::= { zyxelPoeSetup 7 }        

		
-- zyxelPoePsePortInfoTable
        zyxelPoePsePortInfoTable OBJECT-TYPE
        SYNTAX	SEQUENCE OF ZyxelPoePsePortInfoEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
					"The table contains power ethernet port information. "
        ::= { zyxelPoeStatus 1 }

		zyxelPoePsePortInfoEntry OBJECT-TYPE
        SYNTAX	ZyxelPoePsePortInfoEntry
        MAX-ACCESS	not-accessible
        STATUS	current
        DESCRIPTION    	
					"An entry contains power ethernet port information. "
        INDEX          	{ dot1dBasePort }
        ::= { zyxelPoePsePortInfoTable 1 }	
		
        ZyxelPoePsePortInfoEntry ::=
		SEQUENCE {
        	zyPoePsePortInfoPowerConsumption	INTEGER,
			zyPoePsePortTimeRangeState			INTEGER,
			zyPoePsePortTimeRangeInProfile		DisplayString
        }

		zyPoePsePortInfoPowerConsumption OBJECT-TYPE
        SYNTAX	INTEGER
        MAX-ACCESS	read-only
        STATUS	current
        DESCRIPTION    	
						"PoE PSE port power consumption expressed in milliwatt."
        ::= { zyxelPoePsePortInfoEntry 1 }  
		
		zyPoePsePortTimeRangeState OBJECT-TYPE
        SYNTAX	INTEGER{
			none(0),
			in(1),
			out(2)
		}
        MAX-ACCESS	read-only
        STATUS	current
        DESCRIPTION    	
						"None(0): not bind with any time range.
						In(1): system time is in the time range.
						Out(2): system time is out of the time range."
        ::= { zyxelPoePsePortInfoEntry 2 }   

  
-- *******************************************************************
-- *
-- * zyxelPoeTrapInfoObject
-- *
-- *******************************************************************

 
		zyPoePsePortTimeRangeInProfile OBJECT-TYPE
        SYNTAX	DisplayString
        MAX-ACCESS	read-only
        STATUS	current
        DESCRIPTION    	
						"time-range profile name which is in profile"
        ::= { zyxelPoePsePortInfoEntry 3 }   
 

    	zyPoeTrapPsePowerSupplyFailedReason OBJECT-TYPE
        SYNTAX  INTEGER { 
			internalPowerSupplyForPoeFailed(0), 
			rpsForPoeFailed(1), 
			rpsFanFailed(2), 
			rpsOverTemperature(3)  
			}
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
			"Internal-power-supply-for-PoE-failed(0): Internal power supply for PoE  has failed.
			RPS-for-PoE-failed(1): External power supply for PoE (RPS) has failed.
			RPS-fan-failed(2): RPS fan has failed.
			RPS-over-temperature(3): RPS temperature is out of the normal operation range."             
        ::= { zyxelPoeTrapInfoObject 1 }   
              
-- *******************************************************************
-- *
-- * zyxelPoeNotifications
-- *
-- *******************************************************************
        zyPoePowerPortOverload NOTIFICATION-TYPE
        OBJECTS {
			ifIndex
        }
        STATUS  current
        DESCRIPTION
			"Port is off, due to the overload state according to 802.3af."
		::= { zyxelPoeNotifications 1 } 
		
		zyPoePowerPortShortCircuit NOTIFICATION-TYPE
        OBJECTS {
			ifIndex
        }
        STATUS  current
        DESCRIPTION
			"Port is off, due to short circuit."
		::= { zyxelPoeNotifications 2 }
		 
		zyPoePowerPortOverSystemBudget NOTIFICATION-TYPE
        OBJECTS {
			ifIndex
        }
        STATUS  current
        DESCRIPTION
			"Port is off, due to over system budget."
		::= { zyxelPoeNotifications 3 } 
				   
        zyPoePsePowerSupplyFailed  NOTIFICATION-TYPE
        OBJECTS {
			zyPoeTrapPsePowerSupplyFailedReason
        }
        STATUS  current
        DESCRIPTION
			"PSE power supply failed, due to the reason of zyxelPoeTrapPsePowerSupplyFailedReason."
		::= { zyxelPoeNotifications 4 } 	   		   
		              
        zyPoePowerPortOverloadRecovered NOTIFICATION-TYPE
        OBJECTS {
			ifIndex
        }
        STATUS  current
        DESCRIPTION
			"Port is on, since recovered from overload state."
		::= { zyxelPoeNotifications 5 } 
		
		zyPoePowerPortShortCircuitRecovered NOTIFICATION-TYPE
        OBJECTS {
			ifIndex
        }
        STATUS  current
        DESCRIPTION
			"Port is on, since recovered from short circuit."
		::= { zyxelPoeNotifications 6 }
		 
		zyPoePowerPortOverSystemBudgetRecovered NOTIFICATION-TYPE
        OBJECTS {
			ifIndex
        }
        STATUS  current
        DESCRIPTION
			"Port is on, since recovered from over system budget."
		::= { zyxelPoeNotifications 7 } 
		
		zyPoeAutoPdRecoveryAlarm NOTIFICATION-TYPE
        OBJECTS {
			ifIndex,
			zyPoeAutoPdRecoveryPortMode
        }
        STATUS  current
        DESCRIPTION
			"PoE device works fail."
		::= { zyxelPoeNotifications 8 } 

		zyPoePowerPortOverStandard NOTIFICATION-TYPE
        OBJECTS {
			ifIndex
        }
        STATUS  current
        DESCRIPTION
			"Port uses more power than standard defined value."
		::= { zyxelPoeNotifications 9 }

-- *******************************************************************
-- *
-- * zyxelPoeAutoPdRecoverySetup
-- *
-- *******************************************************************

-- zyPoeAutoPdRecoveryState
		zyPoeAutoPdRecoveryState OBJECT-TYPE
        SYNTAX  EnabledStatus
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
				"Enable or disable Auto PD Recovery on switch."
        ::= { zyxelPoeAutoPdRecoverySetup 1 }

-- zyxelPoeAutoPdRecoveryPortTable
        zyxelPoeAutoPdRecoveryPortTable OBJECT-TYPE
        SYNTAX	SEQUENCE OF ZyxelPoeAutoPdRecoveryPortEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
				"The table contains Auto PD Recovery port configuration."
        ::= { zyxelPoeAutoPdRecoverySetup 2 }

		zyxelPoeAutoPdRecoveryPortEntry OBJECT-TYPE
        SYNTAX	ZyxelPoeAutoPdRecoveryPortEntry
        MAX-ACCESS	not-accessible
        STATUS	current
        DESCRIPTION    	
				"The entry contains Auto PD Recovery port configuration."
        INDEX  { dot1dBasePort }
        ::= { zyxelPoeAutoPdRecoveryPortTable 1 }	

        ZyxelPoeAutoPdRecoveryPortEntry ::=
		SEQUENCE {                                                                     
        	zyPoeAutoPdRecoveryPortState			EnabledStatus,  
        	zyPoeAutoPdRecoveryPortMode 			INTEGER,
			zyPoeAutoPdRecoveryPortIpAddressType	InetAddressType,      	
			zyPoeAutoPdRecoveryPortIpAddress		InetAddress,
			zyPoeAutoPdRecoveryPollingInterval				INTEGER,
			zyPoeAutoPdRecoveryPortPollingCount				INTEGER,
			zyPoeAutoPdRecoveryPortAction			INTEGER,
			zyPoeAutoPdRecoveryPortResumePollingInterval	INTEGER,
			zyPoeAutoPdRecoveryPortPdRebootCount			INTEGER,
			zyPoeAutoPdRecoveryPortResumePowerInterval		INTEGER
        }
		zyPoeAutoPdRecoveryPortState OBJECT-TYPE
        SYNTAX	EnabledStatus
        MAX-ACCESS	read-write
        STATUS	current
        DESCRIPTION    	
				"Enable or disable Auto PD Recovery on specific port."
        ::= { zyxelPoeAutoPdRecoveryPortEntry 1 }

		zyPoeAutoPdRecoveryPortMode OBJECT-TYPE
        SYNTAX	INTEGER {
        	lldp(1),
			ping(2)
       	}
        MAX-ACCESS	read-write
        STATUS	current
        DESCRIPTION    	
				"Auto PD Recovery mode. Default value is LLDP(1)."
        ::= { zyxelPoeAutoPdRecoveryPortEntry 2 }

 		zyPoeAutoPdRecoveryPortIpAddressType OBJECT-TYPE
        SYNTAX	InetAddressType
        MAX-ACCESS	read-write
        STATUS	current
        DESCRIPTION    	
				"The address type of zyPoeAutoPdRecoveryPortIpAddress."
        ::= { zyxelPoeAutoPdRecoveryPortEntry 3 }

		zyPoeAutoPdRecoveryPortIpAddress OBJECT-TYPE
        SYNTAX  InetAddress
        MAX-ACCESS	read-write
        STATUS	current
        DESCRIPTION    	
		    "PD IP address."
        ::= { zyxelPoeAutoPdRecoveryPortEntry 4 }

		zyPoeAutoPdRecoveryPollingInterval OBJECT-TYPE
        SYNTAX  INTEGER (10..300)
        MAX-ACCESS	read-write
        STATUS	current
        DESCRIPTION    	
		    "Time interval between each ping request to PD. Default value is 20 (seconds)."
        ::= { zyxelPoeAutoPdRecoveryPortEntry 5 }		

		zyPoeAutoPdRecoveryPortPollingCount OBJECT-TYPE
        SYNTAX  INTEGER (2..5)
        MAX-ACCESS	read-write
        STATUS	current
        DESCRIPTION    	
		    "Number of retry times when detect fail. Default value is 3 (times)."
        ::= { zyxelPoeAutoPdRecoveryPortEntry 6 }			

		zyPoeAutoPdRecoveryPortAction OBJECT-TYPE
        SYNTAX  INTEGER {
			reboot-alarm(1),
			alarm(2)
		}
        MAX-ACCESS	read-write
        STATUS	current
        DESCRIPTION    	
		    "Action will be applied if PD without any response. Default value is  reboot-alarm(1)"
        ::= { zyxelPoeAutoPdRecoveryPortEntry 7 }	

		zyPoeAutoPdRecoveryPortResumePollingInterval OBJECT-TYPE
        SYNTAX  INTEGER (60..800)
        MAX-ACCESS	read-write
        STATUS	current
        DESCRIPTION    	
		    "PD reboot waiting time.  Default value is 600 (seconds)."
        ::= { zyxelPoeAutoPdRecoveryPortEntry 8 }		

		zyPoeAutoPdRecoveryPortPdRebootCount OBJECT-TYPE
        SYNTAX  INTEGER (1..5)
        MAX-ACCESS	read-write
        STATUS	current
        DESCRIPTION    	
		    "PD reboot count. Default value is 1 (time)."
        ::= { zyxelPoeAutoPdRecoveryPortEntry 9 }

		zyPoeAutoPdRecoveryPortResumePowerInterval OBJECT-TYPE
        SYNTAX  INTEGER (5..120)
        MAX-ACCESS	read-write
        STATUS	current
        DESCRIPTION    	
		    "Set delay time to resume the PoE power supply. Default value is 10 (seconds)."
        ::= { zyxelPoeAutoPdRecoveryPortEntry 10 }			
END          
