RUGGEDCOM-POE-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY,
    OBJECT-TYPE, Integer32	        	FROM SNMPv2-SMI
    TruthValue				        	FROM SNMPv2-TC
    OBJECT-GROUP			       	    FROM SNMPv2-CONF 
    ruggedcomMgmt, ruggedcomTraps		FROM RUGGEDCOM-MIB;

rcPoe MODULE-IDENTITY
    LAST-UPDATED "202109071400Z"      -- Sep 09, 14:00 EST 2012;
    ORGANIZATION "RuggedCom"
    CONTACT-INFO
       "Postal: RuggedCom Inc.
                300 Applewood Crescent
                Concord, Ontario, 
                L4K 5C7 Canada
        Tel:    1-905-856-5288
        E-Mail: support@ruggedcom.com"
    DESCRIPTION
        "Expanded list of PoE port Powered status to explicitly
		identify the 2-pair and 4-pair power modes."

	REVISION    "202109071400Z"      -- Sep 09, 14:00 EST 2012;
	DESCRIPTION
        "RuggedCom prorietary to control and monitor PoE ports."

	REVISION    "201206011700Z"      -- Jun 01, 17:00 EST 2012;
    DESCRIPTION                
        "Fixed errors in IMPORTS."

	REVISION    "201102201000Z"      -- Feb 20, 10:00 EST 2011
    DESCRIPTION                
        "Initial version of RuggedCom prorietary to control and 
        monitor PoE ports."

    ::= { ruggedcomMgmt 7 }

-- ---------------------------------------------------------- --
-- rcPoe subtrees
-- ---------------------------------------------------------- --
rcPoeBase				OBJECT IDENTIFIER ::= { rcPoe 1 }
rcPoeTables				OBJECT IDENTIFIER ::= { rcPoe 2 }
rcPoeConformance 		OBJECT IDENTIFIER ::= { rcPoe 3 }
-- rcPoeCompliances  	OBJECT IDENTIFIER ::= { rcPoeConformance 1 }
rcPoeGroups 			OBJECT IDENTIFIER ::= { rcPoeConformance 2 }
-- Notification/trap branch
ruggedcomPoeTraps		OBJECT IDENTIFIER ::= { ruggedcomTraps 12 }

-- ---------------------------------------------------------------------- --
-- Base subtree
-- ---------------------------------------------------------------------- --
rcPoeCapacity OBJECT-TYPE
    SYNTAX  	Integer32(0..65535)
    UNITS		"W"
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
         "The maximum total output power that can be provided by PoE 
         ports.

		 If the value of this object is set to '0', that means that 
		 capacity is 'unlimited'.
		 
		 When total power consumption reaches this limit, low priority PoE
		 ports will be shutdown."
    ::= { rcPoeBase 1}


rcPoeMinimumVoltage OBJECT-TYPE
    SYNTAX  	Integer32(39..57)
    UNITS		"V"
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
         "The minimum required voltage to be provided by PoE ports.

		 The minimum required voltage for PoE ports.
		 When PoE voltage droppes below this threshold, low priority PoE ports 
		 will be shutdown."
    ::= { rcPoeBase 2}

rcPoeReenableTime OBJECT-TYPE
    SYNTAX  	Unsigned32(10..4294967295)
    UNITS		"seconds"
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
         "The time to wait to turn on low priority PoE ports again after
		 they were shutdown due to overload condition."
    ::= { rcPoeBase 3}

rcPoeConsumption OBJECT-TYPE
    SYNTAX  	Integer32
    UNITS		"seconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
         "Current total power consumption by all PoE devices."
    ::= { rcPoeBase 4}

rcPoeOverheatStatus OBJECT-TYPE
	SYNTAX			TruthValue
    MAX-ACCESS  	read-only
	STATUS     		current
	DESCRIPTION
		"The value of this object will be set to 'true(1) if PoE is overheated.

	     Whenever the value of this object changes from false(2) to true(1),
	     the device will generate rcPoeOverheat notification."
    ::= { rcPoeBase 5}

rcPoeOverloadStatus OBJECT-TYPE
	SYNTAX			TruthValue
    MAX-ACCESS  	read-only
	STATUS     		current
	DESCRIPTION
		"The value of this object will be set to 'true(1) if PoE is overloaded.

	     Whenever the value of this object changes from false(2) to true(1),
	     the device will generate rcPoeOverload notification."
    ::= { rcPoeBase 6 }
	
rcPoeUndervoltageStatus OBJECT-TYPE
	SYNTAX			TruthValue
    MAX-ACCESS  	read-only
	STATUS     		current
	DESCRIPTION
		"The value of this object will be set to 'true(1) if PoE is undervoltage.

	     Whenever the value of this object changes from false(2) to true(1),
	     the device will generate rcPoeUndervoltage notification."
    ::= { rcPoeBase 7 }
	


-- ---------------------------------------------------------------------- --
-- Tables subtree
-- ---------------------------------------------------------------------- --

rcPoePortTable 	OBJECT-TYPE
	SYNTAX SEQUENCE OF RcPoePortEntry
	MAX-ACCESS			not-accessible
	STATUS				current
	DESCRIPTION
	    "A list of port entries."
	::= { rcPoeTables 1 }

rcPoePortEntry 	OBJECT-TYPE
	SYNTAX				RcPoePortEntry
	MAX-ACCESS			not-accessible
	STATUS				current
	DESCRIPTION
	    "Status and configuration parameters for a port."
        INDEX {
                rcPoePortNumber
        }
	::= { rcPoePortTable 1 }

RcPoePortEntry ::= SEQUENCE {
		rcPoePort	 		Integer32,
		rcPoePortAdmin  	TruthValue,
		rcPoePortPriority 	INTEGER,
		rcPoePortPowered	INTEGER,
		rcPoePortClass		Integer32,
		rcPoePortVoltage	Integer32,
		rcPoePortCurrent	Integer32
	}

rcPoePort		OBJECT-TYPE 
	SYNTAX			Integer32(1..65535)
    MAX-ACCESS  	not-accessible
    STATUS      	current
    DESCRIPTION
		"The PoE port for which this entry contains information.
		
		The value is limitted by number of ports in the device."
	::= { rcPoePortEntry 1}

rcPoePortAdmin		OBJECT-TYPE
	SYNTAX			TruthValue
    MAX-ACCESS  	read-write
    STATUS      	current
    DESCRIPTION
		"The PoE port for which this entry contains information.
		
		The value is limitted by number of ports in the device."
	::= { rcPoePortEntry 2}

rcPoePortPriority	OBJECT-TYPE
	SYNTAX			INTEGER {
						normal(1),
						low(2)
					}
    MAX-ACCESS  	read-write
    STATUS      	current
    DESCRIPTION
		"The priority of the port. 
		
		Low priority ports will be shut down first if the power supply is 
		overloaded."
	::= { rcPoePortEntry 3}

rcPoePortPowered	OBJECT-TYPE
	SYNTAX			INTEGER {
						powerOn (1),
						powerOff (2), 
						twoPairsOn (3), 
						fourPairsOn (4)
					}						
    MAX-ACCESS  	read-only
    STATUS      	current
    DESCRIPTION
		"Whether or not power is currently supplied by the port." 
	::= { rcPoePortEntry 4}

rcPoePortClass	OBJECT-TYPE
	SYNTAX			Integer32(0..65535)
    MAX-ACCESS  	read-only
    STATUS      	current
    DESCRIPTION
		"PoE Class value that defines the power level."
	REFERENCE
		"IEEE 802.3af/IEEE 802.3at"	 
	::= { rcPoePortEntry 5}

rcPoePortVoltage	OBJECT-TYPE
	SYNTAX			Integer32(0..65535)
	UNITS			"V"
    MAX-ACCESS  	read-only
    STATUS      	current
    DESCRIPTION
		"PoE Class value that defines the power level."
	REFERENCE
		"IEEE 802.3af/IEEE 802.3at"	 
	::= { rcPoePortEntry 6}

rcPoePortCurrent	OBJECT-TYPE
	SYNTAX			Integer32(0..65535)
	UNITS			"mA"
    MAX-ACCESS  	read-only
    STATUS      	current
    DESCRIPTION
		"PoE Class value that defines the power level."
	REFERENCE
		"IEEE 802.3af/IEEE 802.3at"	 
	::= { rcPoePortEntry 7}


-- ---------------------------------------------------------------------- --
-- Traps
-- ---------------------------------------------------------------------- --
rcPoeOverheat 	NOTIFICATION-TYPE
	STATUS     current
	DESCRIPTION
	"PoE overheated."		       
	::= { ruggedcomPoeTraps 1 }

rcPoeOverload 	NOTIFICATION-TYPE
	STATUS     current
	DESCRIPTION
	"PoE overloaded."		       
	::= { ruggedcomPoeTraps 2 }
	
rcPoeUndervoltage 	NOTIFICATION-TYPE
	STATUS     current
	DESCRIPTION
	"PoE voltage low."		       
	::= { ruggedcomPoeTraps 3 }
	

-- ---------------------------------------------------------------------- --
--  Object Groups
-- ---------------------------------------------------------------------- --
rcBasePoeGroup OBJECT-GROUP
	OBJECTS		{
					rcPoeCapacity,
					rcPoeMinimumVoltage,
					rcPoeReenableTime,
					rcPoeConsumption
				}
	STATUS     current
    DESCRIPTION 
        "A group of objects providing ability ability to control and view 
        PoE system parameters."
    ::= { rcPoeGroups 1 }    

rcBasePoeStatusGroup OBJECT-GROUP
	OBJECTS		{
					rcPoeOverheatStatus,
					rcPoeOverloadStatus,
					rcPoeUndervoltageStatus
				}
	STATUS     current
    DESCRIPTION 
        "A group of objects providing ability ability to view status of 
        PoE in the device."
    ::= { rcPoeGroups 2 }    

rcPoeTableGroup OBJECT-GROUP
    OBJECTS     {
					rcPoePort,
					rcPoePortAdmin,
					rcPoePortPowered,
					rcPoePortClass,
					rcPoePortVoltage,
					rcPoePortCurrent
                }
    STATUS      current
    DESCRIPTION 
        "A group of object providing information about ."
    ::= { rcPoeGroups 3 }    


rcPoeTablePriorityGroup OBJECT-GROUP
    OBJECTS     {
					rcPoePortPriority
                }
    STATUS      current
    DESCRIPTION 
        "A group of object providing information about ."
    ::= { rcPoeGroups 4 }    


rcPoeNotifyGroup OBJECT-GROUP
    OBJECTS     {
					rcPoeOverheat,
					rcPoeOverload,
					rcPoeUndervoltage
				}
    STATUS      current
    DESCRIPTION 
        "A group of objects that define trap."
    ::= { rcPoeGroups 5 }    

END
