-- 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
		
 	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)
       	}
        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)"
						
						 
        ::= { 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
-- *
-- *******************************************************************
		
-- 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
        }

		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
-- *
-- *******************************************************************
    	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 } 


-- *******************************************************************
-- *
-- * 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,
			zyPoeAutoPdRecoveryPortInterval			INTEGER,
			zyPoeAutoPdRecoveryPortRetryCount		INTEGER,
			zyPoeAutoPdRecoveryPortAction			INTEGER,
			zyPoeAutoPdRecoveryPortRebootTime		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 }

		zyPoeAutoPdRecoveryPortInterval 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 }		

		zyPoeAutoPdRecoveryPortRetryCount OBJECT-TYPE
        SYNTAX  INTEGER (1..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 }	

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