-- *****************************************************************
-- POE-MIB:  Cisco private MIB
-- ****************************************************************

CIE1000-POE-MIB DEFINITIONS ::= BEGIN

IMPORTS
    NOTIFICATION-GROUP, MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF
    NOTIFICATION-TYPE, MODULE-IDENTITY, OBJECT-TYPE FROM SNMPv2-SMI
    TEXTUAL-CONVENTION FROM SNMPv2-TC
    cie1000SwitchMgmt FROM CISCO-IE1000-MIB
    CIE1000InterfaceIndex FROM CIE1000-TC
    Integer32 FROM SNMPv2-SMI
    Unsigned32 FROM SNMPv2-SMI
    TruthValue FROM SNMPv2-TC
    ;

cie1000PoeMib MODULE-IDENTITY
    LAST-UPDATED "201408200000Z"
    ORGANIZATION
        "Cisco Systems, Inc."
    CONTACT-INFO
        "Cisco Systems
	 Customer Service

	 Postal: 170 West Tasman Drive
	 San Jose, CA  95134
	 USA

	 Tel: +1 800 553-NETS

	 E-mail: cs-snmp@cisco.com"
    DESCRIPTION
        "This is a private version of Power over Ethernet(PoE). "
    REVISION    "201408200000Z"
    DESCRIPTION
        "Initial version"
    ::= { cie1000SwitchMgmt 43 }


CIE1000poeMgmtModeType ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "This enumeration defines the types of PoE management mode."
    SYNTAX      INTEGER { classReservedPower(0), classConsumption(1),
                          allocatedReservedPower(2),
                          allocatedConsumption(3),
                          lldpReservedPower(4), lldpConsumption(5) }

CIE1000poeModeType ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "This enumeration defines the types of port PoE mode."
    SYNTAX      INTEGER { disable(0), poeDot3af(1), poePlusDot3at(2) }

CIE1000poePowerPriorityType ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "This enumeration defines the port power priority."
    SYNTAX      INTEGER { low(0), high(1), critical(2) }

CIE1000poeStatusType ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "This enumeration defines the feature status."
    SYNTAX      INTEGER { notSupported(0), budgetExceeded(1),
                          noPoweredDeviceDetected(2),
                          poweredDeviceOn(3), poweredDeviceOff(4),
                          poweredDeviceOverloaded(5), unknownState(6),
                          disabled(7) }

cie1000PoeMibObjects OBJECT IDENTIFIER
    ::= { cie1000PoeMib 1 }

cie1000PoeCapabilities OBJECT IDENTIFIER
    ::= { cie1000PoeMibObjects 1 }

cie1000PoeCapabilitiesInterfaceTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CIE1000PoeCapabilitiesInterfaceEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This is a table to interface capabilities"
    ::= { cie1000PoeCapabilities 1 }

cie1000PoeCapabilitiesInterfaceEntry OBJECT-TYPE
    SYNTAX      CIE1000PoeCapabilitiesInterfaceEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Each interface has a set of capability parameters"
    INDEX       { cie1000PoeCapabilitiesInterfaceIfIndex }
    ::= { cie1000PoeCapabilitiesInterfaceTable 1 }

CIE1000PoeCapabilitiesInterfaceEntry ::= SEQUENCE {
    cie1000PoeCapabilitiesInterfaceIfIndex  CIE1000InterfaceIndex,
    cie1000PoeCapabilitiesInterfacePoE      TruthValue
}

cie1000PoeCapabilitiesInterfaceIfIndex OBJECT-TYPE
    SYNTAX      CIE1000InterfaceIndex
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "Logical interface number."
    ::= { cie1000PoeCapabilitiesInterfaceEntry 1 }

cie1000PoeCapabilitiesInterfacePoE OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Indicates whether interface is PoE capable or not."
    ::= { cie1000PoeCapabilitiesInterfaceEntry 2 }

cie1000PoeConfig OBJECT IDENTIFIER
    ::= { cie1000PoeMibObjects 2 }

cie1000PoeConfigGlobals OBJECT IDENTIFIER
    ::= { cie1000PoeConfig 1 }

cie1000PoeConfigGlobalsManagementMode OBJECT-TYPE
    SYNTAX      CIE1000poeMgmtModeType
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "PoE management modes, six PoE management modes are supported.
         CLASS_RESERVED: Maximum port power determined by class, and power is
         managed according to power consumption. CLASS_CONSUMP: Maximum port
         power determined by class, and power is managed according to reserved
         power. ALLOCATED_RESERVED: Maximum port power determined by allocation,
         and power is managed according to power consumption. ALLOCATED_CONSUMP:
         Maximum port power determined by allocation, and power is managed
         according to reserved power. LLDPMED_RESERVED: Maximum port power
         determined by LLDP Media protocol, and power is managed according to
         reserved power. LLDPMED_CONSUMP: Maximum port power determined by LLDP
         Media protocol, and power is managed according to power consumption."
    ::= { cie1000PoeConfigGlobals 1 }

cie1000PoeConfigSwitch OBJECT IDENTIFIER
    ::= { cie1000PoeConfig 2 }

cie1000PoeConfigSwitchParamTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CIE1000PoeConfigSwitchParamEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This is a table to configure PoE configurations for a switch."
    ::= { cie1000PoeConfigSwitch 1 }

cie1000PoeConfigSwitchParamEntry OBJECT-TYPE
    SYNTAX      CIE1000PoeConfigSwitchParamEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Each switch has a set of PoE configurable parameters"
    INDEX       { cie1000PoeConfigSwitchParamSwitchId }
    ::= { cie1000PoeConfigSwitchParamTable 1 }

CIE1000PoeConfigSwitchParamEntry ::= SEQUENCE {
    cie1000PoeConfigSwitchParamSwitchId            Unsigned32,
    cie1000PoeConfigSwitchParamMaxPower            Integer32,
    cie1000PoeConfigSwitchParamCapacitorDetection  TruthValue
}

cie1000PoeConfigSwitchParamSwitchId OBJECT-TYPE
    SYNTAX      Unsigned32 (1..16)
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "User Switch Id."
    ::= { cie1000PoeConfigSwitchParamEntry 1 }

cie1000PoeConfigSwitchParamMaxPower OBJECT-TYPE
    SYNTAX      Integer32 (0..180)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The Maximum power(in Watt) that the power sourcing equipment(such as
         switch) can deliver."
    ::= { cie1000PoeConfigSwitchParamEntry 2 }

cie1000PoeConfigSwitchParamCapacitorDetection OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Indicates whether switch capacitor detection feature is enabled or not."
    ::= { cie1000PoeConfigSwitchParamEntry 3 }

cie1000PoeConfigInterface OBJECT IDENTIFIER
    ::= { cie1000PoeConfig 3 }

cie1000PoeConfigInterfaceParamTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CIE1000PoeConfigInterfaceParamEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This is a table to configure PoE configurations for a specific
         interface."
    ::= { cie1000PoeConfigInterface 1 }

cie1000PoeConfigInterfaceParamEntry OBJECT-TYPE
    SYNTAX      CIE1000PoeConfigInterfaceParamEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Each interface has a set of PoE configurable parameters"
    INDEX       { cie1000PoeConfigInterfaceParamIfIndex }
    ::= { cie1000PoeConfigInterfaceParamTable 1 }

CIE1000PoeConfigInterfaceParamEntry ::= SEQUENCE {
    cie1000PoeConfigInterfaceParamIfIndex   CIE1000InterfaceIndex,
    cie1000PoeConfigInterfaceParamMode      CIE1000poeModeType,
    cie1000PoeConfigInterfaceParamPriority  CIE1000poePowerPriorityType,
    cie1000PoeConfigInterfaceParamMaxPower  Integer32
}

cie1000PoeConfigInterfaceParamIfIndex OBJECT-TYPE
    SYNTAX      CIE1000InterfaceIndex
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "Logical interface number."
    ::= { cie1000PoeConfigInterfaceParamEntry 1 }

cie1000PoeConfigInterfaceParamMode OBJECT-TYPE
    SYNTAX      CIE1000poeModeType
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Set PoE mode or disable PoE feature, two PoE modes are supported. POE:
         Enables PoE based on IEEE 802.3af standard, and provides power up to
         15.4W(154 deciwatt) of DC power to powered device. When changing to
         standard mode the MaxPower is automatically adjust to 15.4 W, if it
         currently exceeds 15.4 W. POE_PLUS: Enabled PoE based on IEEE 802.3at
         standard, and provides power up to 30W(300 deciwatt) of DC power to
         powered device."
    ::= { cie1000PoeConfigInterfaceParamEntry 2 }

cie1000PoeConfigInterfaceParamPriority OBJECT-TYPE
    SYNTAX      CIE1000poePowerPriorityType
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Set port power priority. Priority determines the order in which the
         interfaces will receive power. Interfaces with a higher priority will
         receive power before interfaces with a lower priority. PRIORITY_LOW
         means lowest priority. PRIORITY_HIGH means medium priority.
         PRIORITY_CRITICAL means highest priority."
    ::= { cie1000PoeConfigInterfaceParamEntry 3 }

cie1000PoeConfigInterfaceParamMaxPower OBJECT-TYPE
    SYNTAX      Integer32 (0..300)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Maximum port power(in deciwatt) that can be delivered to remote device.
         Maximum allowed values from 0 to 154 deciwatt in POE standard mode, and
         from 0 to 300 deciwatt in POE plus mode."
    ::= { cie1000PoeConfigInterfaceParamEntry 4 }

cie1000PoeStatus OBJECT IDENTIFIER
    ::= { cie1000PoeMibObjects 3 }

cie1000PoeStatusInterfaceTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CIE1000PoeStatusInterfaceEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This is a table to Power over Ethernet interface status"
    ::= { cie1000PoeStatus 1 }

cie1000PoeStatusInterfaceEntry OBJECT-TYPE
    SYNTAX      CIE1000PoeStatusInterfaceEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Each interface has a set of status parameters"
    INDEX       { cie1000PoeStatusInterfaceIfIndex }
    ::= { cie1000PoeStatusInterfaceTable 1 }

CIE1000PoeStatusInterfaceEntry ::= SEQUENCE {
    cie1000PoeStatusInterfaceIfIndex             CIE1000InterfaceIndex,
    cie1000PoeStatusInterfacePDClass             Integer32,
    cie1000PoeStatusInterfaceCurrentState        CIE1000poeStatusType,
    cie1000PoeStatusInterfacePowerConsumption    Integer32,
    cie1000PoeStatusInterfacePowerReserved       Integer32,
    cie1000PoeStatusInterfaceCurrentConsumption  Integer32
}

cie1000PoeStatusInterfaceIfIndex OBJECT-TYPE
    SYNTAX      CIE1000InterfaceIndex
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "Logical interface number."
    ::= { cie1000PoeStatusInterfaceEntry 1 }

cie1000PoeStatusInterfacePDClass OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Powered device(PD) negotiates a power class with sourcing
         equipment(PSE) during the time of initial connection, each class have a
         maximum supported power. Class assigned to PD is based on PD electrical
         characteristics. Value -1 means either PD attached to the interface can
         not advertise its power class or no PD detected or PoE is not supported
         or PoE feature is disabled or unsupported PD class(classes 0-4 is
         supported)."
    ::= { cie1000PoeStatusInterfaceEntry 2 }

cie1000PoeStatusInterfaceCurrentState OBJECT-TYPE
    SYNTAX      CIE1000poeStatusType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Indicate port status. POWER_BUDGET_EXCEEDED: PoE is turned OFF due to
         power budget exceeded on PSE. NO_PD_DETECTED: No PD detected. PD_ON:
         PSE supplying power to PD through PoE. PD_OVERLOAD: PD consumes more
         power than the maximum limit configured on the PSE port."
    ::= { cie1000PoeStatusInterfaceEntry 3 }

cie1000PoeStatusInterfacePowerConsumption OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Indicates the power(in deciwatt) that the PD is consuming right now."
    ::= { cie1000PoeStatusInterfaceEntry 4 }

cie1000PoeStatusInterfacePowerReserved OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Indicates the power(in deciwatt) that the PD has requested/reserved."
    ::= { cie1000PoeStatusInterfaceEntry 5 }

cie1000PoeStatusInterfaceCurrentConsumption OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Indicates the current(in mA) that the PD is consuming right now."
    ::= { cie1000PoeStatusInterfaceEntry 6 }

cie1000PoeMibConformance OBJECT IDENTIFIER
    ::= { cie1000PoeMib 2 }

cie1000PoeMibCompliances OBJECT IDENTIFIER
    ::= { cie1000PoeMibConformance 1 }

cie1000PoeMibGroups OBJECT IDENTIFIER
    ::= { cie1000PoeMibConformance 2 }

cie1000PoeCapabilitiesInterfaceInfoGroup OBJECT-GROUP
    OBJECTS     { cie1000PoeCapabilitiesInterfaceIfIndex,
                  cie1000PoeCapabilitiesInterfacePoE }
    STATUS      current
    DESCRIPTION
        "A collection of objects."
    ::= { cie1000PoeMibGroups 1 }

cie1000PoeConfigGlobalsInfoGroup OBJECT-GROUP
    OBJECTS     { cie1000PoeConfigGlobalsManagementMode }
    STATUS      current
    DESCRIPTION
        "A collection of objects."
    ::= { cie1000PoeMibGroups 2 }

cie1000PoeConfigSwitchParamTableInfoGroup OBJECT-GROUP
    OBJECTS     { cie1000PoeConfigSwitchParamSwitchId,
                  cie1000PoeConfigSwitchParamMaxPower,
                  cie1000PoeConfigSwitchParamCapacitorDetection }
    STATUS      current
    DESCRIPTION
        "A collection of objects."
    ::= { cie1000PoeMibGroups 3 }

cie1000PoeConfigInterfaceParamTableInfoGroup OBJECT-GROUP
    OBJECTS     { cie1000PoeConfigInterfaceParamIfIndex,
                  cie1000PoeConfigInterfaceParamMode,
                  cie1000PoeConfigInterfaceParamPriority,
                  cie1000PoeConfigInterfaceParamMaxPower }
    STATUS      current
    DESCRIPTION
        "A collection of objects."
    ::= { cie1000PoeMibGroups 4 }

cie1000PoeStatusInterfaceTableInfoGroup OBJECT-GROUP
    OBJECTS     { cie1000PoeStatusInterfaceIfIndex,
                  cie1000PoeStatusInterfacePDClass,
                  cie1000PoeStatusInterfaceCurrentState,
                  cie1000PoeStatusInterfacePowerConsumption,
                  cie1000PoeStatusInterfacePowerReserved,
                  cie1000PoeStatusInterfaceCurrentConsumption }
    STATUS      current
    DESCRIPTION
        "A collection of objects."
    ::= { cie1000PoeMibGroups 5 }

cie1000PoeMibCompliance MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION
        "The compliance statement for the implementation."

    MODULE      -- this module

    MANDATORY-GROUPS { cie1000PoeCapabilitiesInterfaceInfoGroup,
                       cie1000PoeConfigGlobalsInfoGroup,
                       cie1000PoeConfigSwitchParamTableInfoGroup,
                       cie1000PoeConfigInterfaceParamTableInfoGroup,
                       cie1000PoeStatusInterfaceTableInfoGroup }

    ::= { cie1000PoeMibCompliances 1 }

END
