-- 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 for 802.3at port
						 and between 1000 and 65000 or 95000 for 802.3bt port,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),
			ieee802dot3bttype4(7),
			standard(8),
			compatible(9)
       	}
        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), 802.3bt type 4 mode(7), standard mode(8), compatible mode(9)"
						
						 
        ::= { 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 }        

-- zyxelPoePseSlotTable
        zyxelPoePseSlotTable OBJECT-TYPE
        SYNTAX	SEQUENCE OF ZyxelPoePseSlotEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
			"The table contains device slot information."
        ::= { zyxelPoeSetup 8 }

        zyxelPoePseSlotEntry OBJECT-TYPE
        SYNTAX	ZyxelPoePseSlotEntry
        MAX-ACCESS	not-accessible
        STATUS	current
        DESCRIPTION    	
					"An entry contains device slot information."
        INDEX          	{zyPoePseSlotId}
        ::= { zyxelPoePseSlotTable 1 }	

        ZyxelPoePseSlotEntry ::=
		SEQUENCE {
			zyPoePseSlotId			INTEGER,
			zyPoePseSlotTotalPower	INTEGER
        }

        zyPoePseSlotId OBJECT-TYPE
        SYNTAX      INTEGER
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
			"The slot number device, which is the current slot id.(standalone:0)(stacking:1,2...)"
        ::= { zyxelPoePseSlotEntry 1 }

        zyPoePseSlotTotalPower OBJECT-TYPE
        SYNTAX      INTEGER
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
			"Get/set the system max PoE power budget in Watts."
        ::= { zyxelPoePseSlotEntry 2 }

		
-- 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,
            zyPoePsePortPowerClassifications	INTEGER
        }

		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 }   

        zyPoePsePortPowerClassifications OBJECT-TYPE
         SYNTAX INTEGER   {
               class0(1),
               class1(2),
               class2(3),
               class3(4),
               class4(5),
               class5(6),
               class6(7),
               class7(8),
               class8(9),
               class9(10)
        }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Classification is a way to tag different terminals on the
            Power over LAN network according to their power consumption.
            Devices such as IP telephones, WLAN access points and others,
            will be classified according to their power requirements.

            The meaning of the classification labels is defined in the
            IEEE specification.

        This variable is valid only while a PD is being powered,
            that is, while the attribute pethPsePortDetectionStatus
            is reporting the enumeration deliveringPower."
        ::= { zyxelPoePsePortInfoEntry 4 }  

  
-- *******************************************************************
-- *
-- * 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)
			onvif(3)
       	}
        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          
