-- =================================================================
-- Copyright (c) 2004-2015 Hangzhou H3C Tech. Co., Ltd.  All rights reserved.
--
-- Description: Power over ethernet extend MIB
-- Reference: POWER-ETHERNET-MIB
-- Version: V1.6
-- History:
--   V1.0 2004-07-24 Created by Gaolong
--   V1.1 2004-09-08 Update file by Gaolong for some syntax errors.
--   V1.2 2004-11-19 Update file by liuhongxu for poe need.
--                   add h3cMainPsePriorityModeh3cPsePowerMaxValue
--                   h3cpsePDChangNotification adjust the objects' sequence of
--                   h3cPsePortTable and h3cMainPseTable add the description
--                   of MANDATORY-GROUPS in h3cPseCompliance.
--   V1.3 2004-12-16 Update file by liuhongxu for poe profile
--                   add h3cPsePortProfile, h3cPseProfilesTable
--                   change the name of h3cPseProfileIndex add
--                   h3cPseProfileApplyNum.  adjust the format of this mib.
--   V1.4 2005-03-29 Update file by Wangzhaoyan for poe pow need.
--                   add h3cPOEPowerObjects, h3cPOEThresholdLimitObjs,
--                   h3cPOESupModuleInfoObjs, h3cPOEDCOutStateObjects,
--                   h3cPOEDCDCOutInfoObjects, h3cPOEACSwitchStateModuleObjs,
--                   h3cPOEInCurStateObjects, h3cPOEAlarmStateObjects and the
--                   sub-nodes.  add 17 traps change the node name from
--                   h3cpsePDChangNotification to h3cpsePDChangeNotification
--                   change some detail as the suggestion from Wangyingxia and
--                   Yangyang.  adjust the format of this mib.
--   V1.5 2005-11-21 Update file by Liweizhen for controling the power-management
--                   policy of PSE or PD.  Add h3cPsePolicyMode, h3cPDPolicyMode,
--                   h3cMainPsePowerPriority.
--                   Delete some description of h3cPsePortProfileIndex node.
--                   Change the description of h3cPseProfilePowerMode node.
--                   Change SYNTAX OCTET STRING range for the following nodes:
--                   h3cPOEPowerType, h3cPOESupervisionModuleName,
--                   h3cPOESMFactorName, h3cPOEModuleHardVerInfo.
--                   Adjust the format of this mib.
--   V1.6 2015-07-21 Update file by Fangliwen for profile power limit.
--                   Change the syntax of h3cPseProfilePowerLimit node.
-- =================================================================
H3C-POWER-ETH-EXT-MIB DEFINITIONS ::= BEGIN

IMPORTS
      h3cCommon
              FROM HUAWEI-3COM-OID-MIB
      pethPsePortGroupIndex, pethPsePortIndex,
      pethMainPseGroupIndex, pethPsePortDetectionStatus
              FROM POWER-ETHERNET-MIB
      OBJECT-GROUP, MODULE-COMPLIANCE, NOTIFICATION-GROUP
              FROM SNMPv2-CONF
      Integer32, OBJECT-TYPE, MODULE-IDENTITY, NOTIFICATION-TYPE
              FROM SNMPv2-SMI
      DisplayString, RowStatus, TEXTUAL-CONVENTION
              FROM SNMPv2-TC;


h3cPowerEthernetExt MODULE-IDENTITY
      LAST-UPDATED "201507250000Z"      -- July 27, 2015 at 00:00 GMT

      ORGANIZATION
          "Hangzhou H3C Tech. Co., Ltd."
      CONTACT-INFO
          "Platform Team Hangzhou H3C Tech. Co., Ltd.
          Hai-Dian District Beijing P.R. China
          http://www.h3c.com
          Zip:100085
          "
      DESCRIPTION
              "Description."
      REVISION      "201507250000Z"
      DESCRIPTION
          "The initial version of this MIB module."
          ::= { h3cCommon 14 }


--
-- Node definitions
--

h3cPsePortTable OBJECT-TYPE
      SYNTAX SEQUENCE OF H3cPsePortEntry
      MAX-ACCESS not-accessible
      STATUS current
      DESCRIPTION
             "The indexing scheme is taken form that used by
             the IETF Power MIB.  The same indexing scheme is
             used to give continuity in behaviour between
             that standard and this extensions definitioin."
      ::= { h3cPowerEthernetExt 1 }


h3cPsePortEntry OBJECT-TYPE
      SYNTAX H3cPsePortEntry
      MAX-ACCESS not-accessible
      STATUS current
      DESCRIPTION
             "The pethPsePortGroupIndex is imported from the IETF Power MIB
             and uniquely identifies the group containing the port to which
             power ethernet PSE is connected.  Group means (box in the stack,
             module in a rack).

             The pethPsePortPowerIndex is imported from the IETF Power MIB
             and uniquely identifies the power ethernet PSE port within group
             pethPseGroupIndex to which the power Ethernet PSE entry is
             connected.  This value will match the local port number on a
             switch."
      INDEX { pethPsePortGroupIndex, pethPsePortIndex }
      ::= { h3cPsePortTable 1 }


H3cPsePortEntry ::=
      SEQUENCE {
              h3cPsePortFaultDescription
                      DisplayString,
              h3cPsePortPeakPower
                      Integer32,
              h3cPsePortAveragePower
                      Integer32,
              h3cPsePortCurrentPower
                      Integer32,
              h3cPsePortPowerLimit
                      Integer32,
              h3cPsePortProfileIndex
                      Integer32
      }

h3cPsePortFaultDescription OBJECT-TYPE
      SYNTAX DisplayString
      MAX-ACCESS read-write
      STATUS current
      DESCRIPTION
             "The object supports the fault category of the IETF Power MIB [1]
             pethPsePortDetectionStatus object.  A textual description
             containing more information about the nature of this fault is
             provided by this object.  Typically this will detail the precise
             PoE hardware state which is causing the pethPsePortDetectionStatus
             object to be in the 'fault' state.
             It is a DisplayString of up to 255 characters."
      ::= { h3cPsePortEntry 2 }


h3cPsePortPeakPower OBJECT-TYPE
      SYNTAX Integer32
      MAX-ACCESS read-write
      STATUS current
      DESCRIPTION
             "The object specifies the peak power which has been consumed by
             the port.  It is defined as the highest measured value of power
             in milliWatts that has been consumed by the port.  Its value
             is only reset when link is lost, the port is PoE disabled or
             when it is manually reset by the user asspecified below.
             It is a read/write integer value with units of milliWatts.
             Writing a value of zero to this object resets its value
             to zero.  Writing any other value to this object has no
             effect on its value and an error is returned."
      ::= { h3cPsePortEntry 3 }


h3cPsePortAveragePower OBJECT-TYPE
      SYNTAX Integer32
      MAX-ACCESS read-write
      STATUS current
      DESCRIPTION
             "The object specifies the average power which has been consumed
             by the port.  This object is a read/write integer value with
             units of milliWatts.  Writing a value of zero to this object
             resets its value to zero.  Writing any other value to this
             object has no effect on its value and an error is returned."
      ::= { h3cPsePortEntry 4 }


h3cPsePortCurrentPower OBJECT-TYPE
      SYNTAX Integer32
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
              "The object specifies the power currently being consumed by the port.
              It is a read only integer value with units of milliWatts."
      ::= { h3cPsePortEntry 5 }


h3cPsePortPowerLimit OBJECT-TYPE
      SYNTAX Integer32
      MAX-ACCESS read-write
      STATUS current
      DESCRIPTION
              "The object specifies the power limit set for this port.
              The PSE will not supply more than this level of power to the
              specified port.
              It is a read/write integer value with units of milliWatts."
      ::= { h3cPsePortEntry 6 }

h3cPsePortProfileIndex OBJECT-TYPE
      SYNTAX Integer32 (0..100)
      MAX-ACCESS read-write
      STATUS current
      DESCRIPTION
             "Indicates the power profile which is currently associated
             with this port.  This object references the corresponding
             h3cPseProfileIndex object in the power profiles table.  A
             value of zero is a special case and indicates that no
             power profile is currently associated with this port.  When
             h3cPseProfileIndex is set to an index of existent profile,
             pethPsePortPowerPairs, pethPsePortPowerPriority,
             pethPsePortAdminEnable and h3cPsePortPowerLimit will be
             set to the same as corresponding value.  PethPsePortPowerPairs,
             pethPsePortPowerPriority and pethPsePortAdminEnable are objects
             of rfc3621-Power-Ethernet.mib."
      ::= { h3cPsePortEntry 7 }


h3cMainPseTable OBJECT-TYPE
      SYNTAX SEQUENCE OF H3cMainPseEntry
      MAX-ACCESS not-accessible
      STATUS current
      DESCRIPTION
              "Description."
      ::= { h3cPowerEthernetExt 2 }


h3cMainPseEntry OBJECT-TYPE
      SYNTAX H3cMainPseEntry
      MAX-ACCESS not-accessible
      STATUS current
      DESCRIPTION
             "The pethMainPseGroupIndex is imported from the IETF Power MIB
             and uniquely identifies the group containing the port to which
             power ethernet PSE is connected.  Group means (box in the stack,
             module in a rack) and the value 1 MUST be used for non-modular
             devices."
      INDEX { pethMainPseGroupIndex }
      ::= { h3cMainPseTable 1 }


H3cMainPseEntry ::=
      SEQUENCE {
              h3cMainPsePowerLimit
                         Integer32,
              h3cMainPseAveragePower
                         Integer32,
              h3cMainPsePeakPower
                         Integer32,
              h3cMainGuaranteedPowerRemaining
                         Integer32,
              h3cMainPsePriorityMode
                         INTEGER,
              h3cMainPseLegacy
                         INTEGER,
              h3cMainPsePowerPriority
                         INTEGER
              }

h3cMainPsePowerLimit OBJECT-TYPE
      SYNTAX Integer32
      MAX-ACCESS read-write
      STATUS current
      DESCRIPTION
             "The object specifies the power limit set for the unit as a whole.
             The PoE unit will already have a nominal power defined by the
             IETF Power MIB [1] pethMainPsePower object.  This OPTIONAL object
             specifies a further limit to this nominal power value.  This may
             be useful to control the thermals of the unit, or for internal
             testing purposes.  One possible use for this object may be to lower
             the power consumption of the unit if one or more of the internal
             fans have broken.  It is a read/write integer value with units of
             Watts (note - Watts is chosen instead of milliWatts here since
             the IETF Power MIB [1] measures unit based parameters, such as
             the pethMainPsePower object, in units of Watts)."
      ::= { h3cMainPseEntry 1 }


h3cMainPseAveragePower OBJECT-TYPE
      SYNTAX Integer32
      MAX-ACCESS read-write
      STATUS current
      DESCRIPTION
             "The object specifies the average power which has been consumed
             by the port.  It is a read/write integer value with units of
             Watts (note - Watts is chosen instead of milliWatts here since
             the IETF Power MIB [1] measures unit based parameters, such as
             the pethMainPsePower object, in units of Watts).  Writing a value
             of zero to this object resets its value to zero.  Writing any
             other value to this object has no effect on its value and an error
             is returned."
      ::= { h3cMainPseEntry 2 }


h3cMainPsePeakPower OBJECT-TYPE
      SYNTAX Integer32
      MAX-ACCESS read-write
      STATUS current
      DESCRIPTION
             "The object specifies the peak power which has been consumed for PoE.
             It is defined as the highest measured value of power in milliWatts
             that has been consumed at any one point in time by the sum of the PoE
             ports.  Its value is only reset when the unit is powered on or when
             it is manually reset by the user as specifiedbelow.  It is a read/write
             integer value with units of Watts (note - Watts is chosen instead of
             milliWatts here since the IETF Power MIB [1] measures unit based
             parameters, such as the pethMainPsePower object, in units of Watts).
             Writing a value of zero to this object resets its value to zero.
             Writing any other value to this object has noeffect on its value
             and an error is returned."
      ::= { h3cMainPseEntry 3 }


h3cMainGuaranteedPowerRemaining OBJECT-TYPE
      SYNTAX Integer32
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
             "The object specifies the amount of power remaining in the guaranteed
             power pool.  Each time a port is placed into guaranteed mode it
             reserves a set amount of power out of the total guaranteed power
             pool for the system.  This intention of this object is to give the
             client of this MIB (whether that be the CLI or the Web interface or
             the end user) an indication of how many ports can still be placed
             into guaranteed mode.  It is a read only integer value with units of
             Watts(note - Watts is chosen instead of milliWatts here since the
             IETF Power MIB [1] measures unit based parameters,such as the
             pethMainPsePower object, in units of Watts)."
      ::= { h3cMainPseEntry 4 }


h3cMainPsePriorityMode OBJECT-TYPE
      SYNTAX INTEGER   {
              disconnection(0),
              non-disconnection(1)
              }
      MAX-ACCESS read-write
      STATUS current
      DESCRIPTION
             "Describes or controls the priority mode on slot which must be
             enabled firstly.  When a new board is inserted, and the power is
             over-load, a value of disconnection(0) means that the power will
             stop supply to the low priority slot ; A value of non-disconnection(1)
             means that the slot still supply when a new board is inserted, and
             the power is over-load too."
      ::= { h3cMainPseEntry 5 }

h3cMainPseLegacy OBJECT-TYPE
      SYNTAX INTEGER   {
             enable(0),
             disable(1)
              }
      MAX-ACCESS read-write
      STATUS current
      DESCRIPTION
             "Describes or controls the legacy mode on slot which must be enabled
             firstly.  Legacy mode: standard or nonstandard PD detection mode."
      ::= { h3cMainPseEntry 6 }

h3cMainPsePowerPriority OBJECT-TYPE
      SYNTAX INTEGER   {
             critical(1),
             high(2),
             low(3)
              }
      MAX-ACCESS read-write
      STATUS current
      DESCRIPTION
             "Describes or controls the priority of the PSE.  The priority
             will be used by the PSE policy to prevent from power overloading.
             If the priority of PSE is set to critical, the PSE will turn into
             guaranteed mode.  The priority could be used by a control mechanism
             that prevents power overloading by disconnecting PSEs with lower
             power priority.  PSEs that connect devices critical to the
             application should be set to higher priority."
      ::= { h3cMainPseEntry 7 }

-- Power Profile PSE table
h3cPseProfilesTable OBJECT-TYPE
      SYNTAX SEQUENCE OF H3cPseProfilesEntry
      MAX-ACCESS not-accessible
      STATUS current
      DESCRIPTION
             "A table of objects representing a set of power profiles.
             Power profiles can be applied to PoE ports, which have the
             effect of automatically setting the priority, power limit
             and PoE enable MIB objects to the values specified in the
             power profile."
      ::= { h3cPowerEthernetExt 7 }

h3cPseProfilesEntry OBJECT-TYPE
      SYNTAX H3cPseProfilesEntry
      MAX-ACCESS not-accessible
      STATUS current
      DESCRIPTION
             "A set of objects that display and control the Main power of a PSE."
      INDEX    { h3cPseProfileIndex }
      ::= { h3cPseProfilesTable 1 }

H3cPseProfilesEntry ::= SEQUENCE {
             h3cPseProfileIndex     Integer32,
             h3cPseProfileName      DisplayString,
             h3cPseProfilePowerMode      INTEGER,
             h3cPseProfilePowerLimit     Integer32,
             h3cPseProfilePriority       INTEGER,
             h3cPseProfilePairs          INTEGER,
             h3cPseProfileApplyNum       Integer32,
             h3cPseProfileRowStatus      RowStatus
                }

h3cPseProfileIndex OBJECT-TYPE
      SYNTAX Integer32 (1..100)
      MAX-ACCESS not-accessible
      STATUS current
      DESCRIPTION
             "The index of the profile.  This uniquely allow the profile to be
             identified."
      ::= { h3cPseProfilesEntry 1 }

h3cPseProfileName OBJECT-TYPE
      SYNTAX DisplayString (SIZE(1..15))
      MAX-ACCESS read-create
      STATUS current
      DESCRIPTION
            "Assigns the profile a name with which the settings
            can be assiciated with.  For example, 'NBX Phone'."
      ::= { h3cPseProfilesEntry 2 }

h3cPseProfilePowerMode OBJECT-TYPE
      SYNTAX INTEGER {
                powerDisabled (1),
                powerEnabled (2)
               }
      MAX-ACCESS read-create
      STATUS current
      DESCRIPTION
             "The power mode associated with this power profile.  There
             are two possible power modes as follows: powerDisabled,
             powerEnabled.  When a power profile is applied to a PSE port,
             this value dictates the settings of the ports pethPsePortPowerPriority
             and pethPsePortAdminEnable objects."
      ::= { h3cPseProfilesEntry 3 }

h3cPseProfilePowerLimit OBJECT-TYPE
      SYNTAX Integer32
      MAX-ACCESS read-create
      STATUS current
      DESCRIPTION
             "The power limit to be applied to the ports h3cPsePortPowerLimit
              object when the profile is applied to the PSE port.  Expressed in
              milliWatts."
      ::= { h3cPseProfilesEntry 4 }

h3cPseProfilePriority OBJECT-TYPE
      SYNTAX INTEGER   {
                critical(1),
                high(2),
                low(3)
               }
      MAX-ACCESS read-create
      STATUS current
      DESCRIPTION
             "This object controls the priority of the port from the point of
             view of a power management algorithm.  The priority that is set
             by this variable could be used by a control mechanism that
             prevents over current situations by disconnecting first ports
             with lower power priority.  Ports that connect devices critical
             to the operation of the network - like the E911 telephones
             ports - should be set to higher priority."
      ::= { h3cPseProfilesEntry 5 }

h3cPseProfilePairs OBJECT-TYPE
      SYNTAX INTEGER   {
                signal(1),
                spare(2)
                }
      MAX-ACCESS read-create
      STATUS current
      DESCRIPTION
             "Describes or controls the pairs in use.  If the value of
             pethPsePortPowerPairsControl is true, this object is writable.
             A value of signal(1) means that the signal pairs only are in use.
             A value of spare(2) means that the spare pairs only are in use."
      REFERENCE
             "IEEE Std 802.3af Section 30.9.1.1.4 aPSEPowerPairs"
      ::= { h3cPseProfilesEntry 6 }

h3cPseProfileApplyNum OBJECT-TYPE
      SYNTAX Integer32
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
             "The number of this profile which has been applied.
             If h3cPseProfileApplyNum is not zero, user can't
             change the current line."
      ::= { h3cPseProfilesEntry 7 }

h3cPseProfileRowStatus OBJECT-TYPE
      SYNTAX RowStatus
      MAX-ACCESS read-create
      STATUS current
      DESCRIPTION
             "The status of this classifier.
             If h3cPseProfileApplyNum is not zero, user can't
             delete the current line."
      ::= { h3cPseProfilesEntry 8 }

h3cPseAutoDetectActive OBJECT-TYPE
      SYNTAX INTEGER
                {
                notSupported(1),
                disabled(2),
                enabled(3)
                }
      MAX-ACCESS read-write
      STATUS current
      DESCRIPTION
             "The object specifies whether the device auto-detection feature is
             active.  If this object is set to Active, and a known powered device
             is detected, then the port will automatically switch to Auto-Guaranteed
             mode.  This is a stackwide object (ie. it is not referenced by
             group index)."
      ::= { h3cPowerEthernetExt 3 }

h3cPsePowerMaxValue OBJECT-TYPE
      SYNTAX Integer32
      MAX-ACCESS read-write
      STATUS current
      DESCRIPTION
             "The object specifies the max poe power for lanswitch.
             The value should between the power currently and the max power."
      ::= { h3cPowerEthernetExt 5 }

h3cPsePolicyMode OBJECT-TYPE
      SYNTAX INTEGER
              {
              disabled(1),
              priority(2)
              }
      MAX-ACCESS read-write
      STATUS current
      DESCRIPTION
             "The PSE policy only applies to the situation that when a new
             board (PSE) is inserted, and the power is overload.
             A value of priority(2) means that the power will stop supplying
             to the low priority PSE.  About PSE priority, please refer to
             h3cMainPsePowerPriority.  A value of disabled(1) means that the
             power will stop supplying to the new inserted PSE.  The default
             value of this object is disabled(1)."
      ::= { h3cPowerEthernetExt 9 }

h3cPDPolicyMode OBJECT-TYPE
      SYNTAX INTEGER
              {
              disabled(1),
              priority(2)
              }
      MAX-ACCESS read-write
      STATUS current
      DESCRIPTION
             "The PD policy only applies to the situation that when a new
             PD is inserted, and the power of PSE is overload.
             A value of priority(2) means that the power will stop supplying
             to the low priority port PD.  About port priority, please refer
             to pethPsePortPowerPriority.  A value of disabled(1) means that
             the slot stop supplying to the new inserted PD.  The default
             value of this object is disabled(1)."
      ::= { h3cPowerEthernetExt 10 }

h3cpseportNotification  OBJECT IDENTIFIER ::= { h3cPowerEthernetExt 6 }

-- Notification  Control  Objects

h3cpsePDChangeNotification NOTIFICATION-TYPE
      OBJECTS { pethPsePortDetectionStatus }
      STATUS current
      DESCRIPTION
             "This notification indicates if PD has been inserted or pulled out."
      ::= { h3cpseportNotification 1 }

h3cPOEDisconnectNotification  NOTIFICATION-TYPE
      OBJECTS { h3cPOEAlarmModuleInfoIndex, h3cPOEModuleDisconnect }
      STATUS current
      DESCRIPTION
             "This notification indicates the POE power module does not disconnect."
      ::= { h3cpseportNotification 2 }

h3cPOEInputErrorNotification  NOTIFICATION-TYPE
      OBJECTS { h3cPOEAlarmModuleInfoIndex, h3cPOEModuleInputError }
      STATUS current
      DESCRIPTION
             "This notification indicates the POE power module input error."
      ::= { h3cpseportNotification 3 }

h3cPOEOutputErrorNotification  NOTIFICATION-TYPE
      OBJECTS { h3cPOEAlarmModuleInfoIndex, h3cPOEModuleOutputError }
      STATUS current
      DESCRIPTION
             "This notification indicates the POE power module output error."
      ::= { h3cpseportNotification 4 }

h3cPOEOverVoltageNotification  NOTIFICATION-TYPE
      OBJECTS { h3cPOEAlarmModuleInfoIndex, h3cPOEModuleOverVoltage }
      STATUS current
      DESCRIPTION
             "This notification indicates the POE power module overruns the
             voltage limit."
      ::= { h3cpseportNotification 5 }

h3cPOEOverTempNotification  NOTIFICATION-TYPE
      OBJECTS { h3cPOEAlarmModuleInfoIndex, h3cPOEModuleOverTemp }
      STATUS current
      DESCRIPTION
             "This notification indicates the POE power module overruns the
             temperature limit."
      ::= { h3cpseportNotification 6 }

h3cPOEFanErrorNotification  NOTIFICATION-TYPE
      OBJECTS { h3cPOEAlarmModuleInfoIndex, h3cPOEModuleFanError }
      STATUS current
      DESCRIPTION
             "This notification indicates the POE power module fan error."
      ::= { h3cpseportNotification 7 }

h3cPOEModuleShutdownNotification  NOTIFICATION-TYPE
      OBJECTS { h3cPOEAlarmModuleInfoIndex, h3cPOEModuleShutdown }
      STATUS current
      DESCRIPTION
             "This notification indicates the POE power module is closed."
      ::= { h3cpseportNotification 8 }

h3cPOECurRestrictedNotification  NOTIFICATION-TYPE
      OBJECTS { h3cPOEAlarmModuleInfoIndex, h3cPOEModuleCurRestricted }
      STATUS current
      DESCRIPTION
             "This notification indicates the POE power module current is restricted."
      ::= { h3cpseportNotification 9 }

h3cPOEACSwitchNotification  NOTIFICATION-TYPE
      OBJECTS { h3cPOEACSwitchStateIndex, h3cPOEACSwitchState }
      STATUS current
      DESCRIPTION
             "This notification indicates the AC input switch alarm of this POE power."
      ::= { h3cpseportNotification 10 }

h3cPOEACInCurANotification  NOTIFICATION-TYPE
      OBJECTS { h3cPOEInCurAState }
      STATUS current
      DESCRIPTION
             "This notification indicates the AC input current A alarm state of
             this POE power."
      ::= { h3cpseportNotification 11 }

h3cPOEACInCurBNotification  NOTIFICATION-TYPE
      OBJECTS { h3cPOEInCurBState }
      STATUS current
      DESCRIPTION
             "This notification indicates the AC input current B alarm state of
             this POE power."
      ::= { h3cpseportNotification 12 }

h3cPOEACInCurCNotification  NOTIFICATION-TYPE
      OBJECTS { h3cPOEInCurCState }
      STATUS current
      DESCRIPTION
             "This notification indicates the AC input current C alarm state of
             this POE power."
      ::= { h3cpseportNotification 13 }

h3cPOEACSwitchVolABNotification  NOTIFICATION-TYPE
      OBJECTS { h3cPOESwitchStateVolExIndex, h3cPOESwitchStateInVolAB}
      STATUS current
      DESCRIPTION
             "This notification indicates the AC input voltage AB alarm state of
             this POE power."
      ::= { h3cpseportNotification 14 }

h3cPOEACSwitchVolBCNotification  NOTIFICATION-TYPE
      OBJECTS { h3cPOESwitchStateVolExIndex, h3cPOESwitchStateInVolBC}
      STATUS current
      DESCRIPTION
             "This notification indicates the AC input voltage BC alarm state of
             this POE power."
      ::= { h3cpseportNotification 15 }

h3cPOEACSwitchVolCANotification  NOTIFICATION-TYPE
      OBJECTS { h3cPOESwitchStateVolExIndex, h3cPOESwitchStateInVolCA }
      STATUS current
      DESCRIPTION
             "This notification indicates the AC input voltage CA alarm state of
             this POE power."
      ::= { h3cpseportNotification 16 }

h3cPOEDCOutVolNotification NOTIFICATION-TYPE
      OBJECTS { h3cPOEDCOutStateIndex, h3cPOEDCOutDCVolAlarm }
      STATUS current
      DESCRIPTION
             "This notification indicates the DC output alarm of this POE power."
      ::= { h3cpseportNotification 17 }

h3cPOEShutdownNotification NOTIFICATION-TYPE
      STATUS current
      DESCRIPTION
             "This notification indicates the whole POE power has been shutdown."
      ::= { h3cpseportNotification 18 }
h3cPseComformance OBJECT IDENTIFIER ::= { h3cPowerEthernetExt 4 }

h3cPseCompliances OBJECT IDENTIFIER ::= { h3cPseComformance 1 }

h3cPseCompliance MODULE-COMPLIANCE
      STATUS current
      DESCRIPTION
             "Description."
      MODULE  -- this module
      MANDATORY-GROUPS {    h3cPsePortGroup,
                            h3cMainPseGroup,
                            h3cPseScalarGroup,
                            h3cPsePDNotificationGroup
                       }
      GROUP h3cPseProfilesGroup
      DESCRIPTION
             "This group is mandatory only for executing POE commands as a batch."
      ::= { h3cPseCompliances 1 }

h3cPseGroup OBJECT IDENTIFIER ::= { h3cPseComformance 2 }

h3cPsePortGroup OBJECT-GROUP
      OBJECTS { h3cPsePortProfileIndex, h3cPsePortPowerLimit, h3cPsePortCurrentPower,
                h3cPsePortAveragePower, h3cPsePortPeakPower, h3cPsePortFaultDescription,
                h3cMainPsePriorityMode
              }
      STATUS current
      DESCRIPTION
             "A collection of objects should be supported at the same time."
      ::= { h3cPseGroup 1 }

h3cMainPseGroup OBJECT-GROUP
      OBJECTS { h3cMainPsePowerLimit, h3cMainPseAveragePower, h3cMainPsePeakPower,
                h3cMainGuaranteedPowerRemaining }
      STATUS current
      DESCRIPTION
             "A collection of objects should be supported at the same time."
      ::= { h3cPseGroup 2 }

h3cPseScalarGroup OBJECT-GROUP
      OBJECTS { h3cPseAutoDetectActive, h3cPsePowerMaxValue, h3cPsePolicyMode ,
                h3cPDPolicyMode }
      STATUS current
      DESCRIPTION
             "A collection of scalar objects supported."
      ::= { h3cPseGroup 3 }

h3cPsePDNotificationGroup NOTIFICATION-GROUP
      NOTIFICATIONS { h3cpsePDChangeNotification }
      STATUS current
      DESCRIPTION
             "PD Change Notification."
      ::= { h3cPseGroup 4 }

h3cPseProfilesGroup OBJECT-GROUP
      OBJECTS { h3cPseProfileName, h3cPseProfilePowerMode,
                h3cPseProfilePowerLimit, h3cPseProfilePriority,
                h3cPseProfilePairs, h3cPseProfileApplyNum, h3cPseProfileRowStatus}
      STATUS current
      DESCRIPTION
             "A collection of objects should be supported at the same time."
      ::= { h3cPseGroup 5 }

h3cPOEPowerThresholdLimitGroup OBJECT-GROUP
      OBJECTS { h3cPOEThresholdACMimimum, h3cPOEThresholdACMaximum,
                h3cPOEThresholdDCMinimum, h3cPOEThresholdDCMaximum }
      STATUS current
      DESCRIPTION
             "Power threshold limits group."
      ::= { h3cPseGroup 6 }

h3cPOEPowerSupInfoGroup OBJECT-GROUP
      OBJECTS { h3cPOEPowerType, h3cPOEPowerModuleNum, h3cPOESupervisionModuleName,
                h3cPOESMMajorVersion, h3cPOESMMinorVersion, h3cPOESMFactorName}
      STATUS current
      DESCRIPTION
             "The basic Power information group."
      ::= { h3cPseGroup 7 }

h3cPOEPowerDCOutStateGroup OBJECT-GROUP
      OBJECTS { h3cPOEDCOutStateModuleNum }
      STATUS current
      DESCRIPTION
             "The DC out power state group."
      ::= { h3cPseGroup 8 }

h3cPOEPowerDCOutInfoGroup OBJECT-GROUP
      OBJECTS { h3cPOEDCOutCurNum }
      STATUS current
      DESCRIPTION
             "The power AC input switch information group"
      ::= { h3cPseGroup 9 }

h3cPOEPowerACSwitchStateModuleGroup OBJECT-GROUP
      OBJECTS { h3cPOEACSwitchStateModuleNum}
      STATUS current
      DESCRIPTION
             "PD Change Notification."
      ::= { h3cPseGroup 10 }

h3cPOEPowerInCurStateGroup OBJECT-GROUP
      OBJECTS { h3cPOEInCurStateModuleNum, h3cPOEInCurAState, h3cPOEInCurBState,
                h3cPOEInCurCState}
      STATUS current
      DESCRIPTION
             "PD Change Notification."
      ::= { h3cPseGroup 11 }

h3cPOEPowerAlarmStateGroup OBJECT-GROUP
      OBJECTS { h3cPOEAlarmStateModuleNum }
      STATUS current
      DESCRIPTION
              "PD Change Notification."
      ::= { h3cPseGroup 12 }

ACAlarmState ::= TEXTUAL-CONVENTION
      STATUS current
      DESCRIPTION
           "AC Alarm State."
      SYNTAX INTEGER{
                normal     (1),
                underLimit (2),
                aboveLimit (3),
                lackPhrase (4),
                fuseBroken (5),
                switchOff  (6),
                otherError (7)
                   }

DCAlarmState ::= TEXTUAL-CONVENTION
     STATUS current
     DESCRIPTION
         "DC Alarm State."
     SYNTAX INTEGER{
                normal     (1),
                underLimit (2),
                aboveLimit (3),
                fuseBroken (4),
                switchOff  (5),
                otherError (6)
                   }

SwitchState ::= TEXTUAL-CONVENTION
     STATUS current
     DESCRIPTION
        "Switch State."
SYNTAX INTEGER   {
               on            (1),
               off           (2),
               highVoltInput (3),
               lowVoltInput  (4)
                  }

ModuleAlarmState ::= TEXTUAL-CONVENTION
   STATUS current
   DESCRIPTION
      "Module Alarm State."
   SYNTAX INTEGER   {
                    normal (1),
                    alarm  (2)
                      }

h3cPOEPowerObjects OBJECT IDENTIFIER ::= { h3cPowerEthernetExt 8 }

h3cPOEThresholdLimitObjs OBJECT IDENTIFIER ::= { h3cPOEPowerObjects 1 }

h3cPOEThresholdACMimimum OBJECT-TYPE
      SYNTAX OCTET STRING (SIZE (1..10))
      MAX-ACCESS read-write
      STATUS current
      DESCRIPTION
             "Input threshold AC minimum.
             It is a read-write node.
             The value of this node is 'OCTET STRING',
             it is used to describe a float value.
             So this string should fit the following rule:
             1. This string should be terminated by '\0';
             2. Every characters should be number or radix point;
             3. The radix point should occur only once, and it should not
             be the first or the last character of the string.
             The value of this node should be smaller than 264.0V and larger than 90.0V.
             And it should be smaller than the h3cPOEThresholdACMaximum."
      ::= { h3cPOEThresholdLimitObjs 1 }

h3cPOEThresholdACMaximum OBJECT-TYPE
      SYNTAX OCTET STRING (SIZE (1..10))
      MAX-ACCESS read-write
      STATUS current
      DESCRIPTION
             "Input threshold AC maximum.
             It is a read-write node.
             The value of this node is 'OCTET STRING',
             it is used to describe a float value.
             So this string should fit the following rule:
             1. This string should be terminated by '\0';
             2. Every characters should be number or radix point;
             3. The radix point should occur only once, and it should not
             be the first or the last character of the string.
             It should be smaller than 264.0V and larger than 90.0V.
             And it should be larger than the h3cPOEThresholdACMinimum."
      ::= { h3cPOEThresholdLimitObjs 2 }

h3cPOEThresholdDCMinimum OBJECT-TYPE
      SYNTAX OCTET STRING (SIZE (1..10))
      MAX-ACCESS read-write
      STATUS current
      DESCRIPTION
             "Input threshold DC minimum.
             It is a read-write node.
             The value of this node is 'OCTET STRING',
             it is used to describe a float value.
             So this string should fit the following rule:
             1. This string should be terminated by '\0';
             2. Every characters should be number or radix point;
             3. The radix point should occur only once, and it should not
             be the first or the last character of the string.
             It should be smaller than 47.0V and larger than 45.0V."
      ::= { h3cPOEThresholdLimitObjs 3 }

h3cPOEThresholdDCMaximum OBJECT-TYPE
      SYNTAX OCTET STRING (SIZE (1..10))
      MAX-ACCESS read-write
      STATUS current
      DESCRIPTION
             "Input threshold DC maximum.
             It is a read-write node.
             The value of this node is 'OCTET STRING',
             it is used to describe a float value.
             So this string should fit the following rule:
             1. This string should be terminated by '\0';
             2. Every characters should be number or radix point;
             3. The radix point should occur only once, and it should not
             be the first or the last character of the string.
             It should be smaller than 57.0V and larger than 55.0V."
      ::= { h3cPOEThresholdLimitObjs 4 }

h3cPOESupModuleInfoObjs OBJECT IDENTIFIER ::= { h3cPOEPowerObjects 2 }

h3cPOEPowerType OBJECT-TYPE
      SYNTAX OCTET STRING (SIZE (1..127))
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
             "The type of the power."
      ::= { h3cPOESupModuleInfoObjs 1 }

h3cPOEPowerModuleNum OBJECT-TYPE
      SYNTAX Integer32
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
             "The number of the power modules."
      ::= { h3cPOESupModuleInfoObjs 2 }

h3cPOESupervisionModuleName OBJECT-TYPE
      SYNTAX OCTET STRING (SIZE (1..127))
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
             "The object specifies the Supervision Module name on this POE power."
      ::= { h3cPOESupModuleInfoObjs 3 }

h3cPOESMMajorVersion OBJECT-TYPE
      SYNTAX Integer32
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
             "The object specifies the high byte of the monitor module version."
      ::= { h3cPOESupModuleInfoObjs 4 }

h3cPOESMMinorVersion OBJECT-TYPE
      SYNTAX Integer32
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
             "The object specifies the low byte of the monitor module version."
      ::= { h3cPOESupModuleInfoObjs 5 }

h3cPOESMFactorName OBJECT-TYPE
      SYNTAX OCTET STRING (SIZE (1..127))
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
             "The object specifies the name of the manufactor."
      ::= { h3cPOESupModuleInfoObjs 6 }

h3cPOEModuleInfoTable OBJECT-TYPE
      SYNTAX SEQUENCE OF H3cPOEModuleInfoEntry
      MAX-ACCESS not-accessible
      STATUS current
      DESCRIPTION
             "The table of the module information on this POE power."
      ::= { h3cPOESupModuleInfoObjs 7 }

h3cPOEModuleInfoEntry OBJECT-TYPE
      SYNTAX H3cPOEModuleInfoEntry
      MAX-ACCESS not-accessible
      STATUS current
      DESCRIPTION
             "The entry of the module information on this POE power."
      INDEX { h3cPOEModuleIndex }
      ::= { h3cPOEModuleInfoTable 1 }

H3cPOEModuleInfoEntry ::=
      SEQUENCE {
                 h3cPOEModuleIndex
                         Integer32,
                 h3cPOEModuleID
                         Integer32,
                 h3cPOEModuleInfoPower
                         Integer32,
                 h3cPOEModuleHardVerInfo
                         OCTET STRING
                }

h3cPOEModuleIndex OBJECT-TYPE
      SYNTAX Integer32 (1..2147483647)
      MAX-ACCESS accessible-for-notify
      STATUS current
      DESCRIPTION
             "The index of the current module on this POE power.
             It is also the index of h3cPOEModuleInfoTable.
             The range of this node is from 1 to h3cPOEPowerModuleNum."
      ::= { h3cPOEModuleInfoEntry 1 }

h3cPOEModuleID OBJECT-TYPE
      SYNTAX Integer32
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
             "The ID of the current module on this POE power."
      ::= { h3cPOEModuleInfoEntry 2 }

h3cPOEModuleInfoPower OBJECT-TYPE
      SYNTAX Integer32
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
             "The power of the current module on this POE power."
      ::= { h3cPOEModuleInfoEntry 3 }

h3cPOEModuleHardVerInfo OBJECT-TYPE
      SYNTAX OCTET STRING (SIZE (1..127))
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
             "The hardware version information of the current module on this POE power."
      ::= { h3cPOEModuleInfoEntry 4 }

h3cPOEDCOutStateObjects OBJECT IDENTIFIER ::= { h3cPOEPowerObjects 3 }

h3cPOEDCOutStateModuleNum OBJECT-TYPE
      SYNTAX Integer32
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
             "The module number on this POE power.
             It is the maximum of the h3cPOEDCOutStateIndex."
      ::= { h3cPOEDCOutStateObjects 1 }

h3cPOEDCOutStateTable OBJECT-TYPE
      SYNTAX SEQUENCE OF H3cPOEDCOutStateEntry
      MAX-ACCESS not-accessible
      STATUS current
      DESCRIPTION
             "The table of DC output power state on this POE power."
      ::= { h3cPOEDCOutStateObjects 2 }

h3cPOEDCOutStateEntry OBJECT-TYPE
      SYNTAX H3cPOEDCOutStateEntry
      MAX-ACCESS not-accessible
      STATUS current
      DESCRIPTION
             "The entry of the DC output power state on this POE power."
      INDEX { h3cPOEDCOutStateIndex }
      ::= { h3cPOEDCOutStateTable 1 }

      H3cPOEDCOutStateEntry ::=
              SEQUENCE {
                       h3cPOEDCOutStateIndex
                               Integer32,
                       h3cPOEDCOutDCVolAlarm
                               DCAlarmState
                    }

h3cPOEDCOutStateIndex OBJECT-TYPE
      SYNTAX Integer32 (1..2147483647)
      MAX-ACCESS accessible-for-notify
      STATUS current
      DESCRIPTION
             "The index of the DC output power state on this POE power.
             The range of this node is from 1 to h3cPOEDCOutStateModuleNum."
      ::= { h3cPOEDCOutStateEntry 1 }

h3cPOEDCOutDCVolAlarm OBJECT-TYPE
      SYNTAX DCAlarmState
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
             "The DC output alarm of the DC output power state on this POE power.
             The value of this node will be the following values:
                                 normal     (1),
                                 underLimit (2),
                                 aboveLimit (3),
                                 fuseBroken (4),
                                 switchOff  (5),
                                 otherError (6)."
      ::= { h3cPOEDCOutStateEntry 2 }

h3cPOEDCOutInfoObjects OBJECT IDENTIFIER ::= { h3cPOEPowerObjects 4 }

h3cPOEDCOutCurNum OBJECT-TYPE
      SYNTAX Integer32
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
             "The number of DC output current on this POE power.
             It is the maximum of h3cPOEDCOutInfoIndex."
      ::= { h3cPOEDCOutInfoObjects 1 }

h3cPOEDCOutInfoTable OBJECT-TYPE
      SYNTAX SEQUENCE OF H3cPOEDCOutInfoEntry
      MAX-ACCESS not-accessible
      STATUS current
      DESCRIPTION
             "The table of the DC output information on this POE power."
      ::= { h3cPOEDCOutInfoObjects 2 }

h3cPOEDCOutInfoEntry OBJECT-TYPE
      SYNTAX H3cPOEDCOutInfoEntry
      MAX-ACCESS not-accessible
      STATUS current
      DESCRIPTION
             "The entry of the DC output information on this POE power."
      INDEX { h3cPOEDCOutInfoIndex }
      ::= { h3cPOEDCOutInfoTable 1 }

H3cPOEDCOutInfoEntry ::=
      SEQUENCE {
                h3cPOEDCOutInfoIndex
                        Integer32,
                h3cPOEDCOutVol
                        OCTET STRING,
                h3cPOEDCOutInfoLoadCur
                        OCTET STRING
              }

h3cPOEDCOutInfoIndex OBJECT-TYPE
      SYNTAX Integer32 (1..2147483647)
      MAX-ACCESS accessible-for-notify
      STATUS current
      DESCRIPTION
             "The index of the DC output information on this POE POWER.
             The range of this node is from 1 to h3cPOEDCOutCurNum."
      ::= { h3cPOEDCOutInfoEntry 1 }

h3cPOEDCOutVol OBJECT-TYPE
      SYNTAX OCTET STRING (SIZE (1..10))
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
             "The DC output voltage of the current DC output on this POE power."
      ::= { h3cPOEDCOutInfoEntry 2 }

h3cPOEDCOutInfoLoadCur OBJECT-TYPE
      SYNTAX OCTET STRING (SIZE (1..10))
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
             "The total load current of the current DC output on this POE power."
      ::= { h3cPOEDCOutInfoEntry 3 }

h3cPOEACSwitchStateModuleObjs OBJECT IDENTIFIER ::= { h3cPOEPowerObjects 5 }

h3cPOEACSwitchStateModuleNum OBJECT-TYPE
      SYNTAX Integer32
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
             "The number of the AC swtich state module on this POE power.
             It is the maximum of h3cPOEACSwitchStateIndex."
      ::= { h3cPOEACSwitchStateModuleObjs 1 }

h3cPOEACSwitchStateTable OBJECT-TYPE
      SYNTAX SEQUENCE OF H3cPOEACSwitchStateEntry
      MAX-ACCESS not-accessible
      STATUS current
      DESCRIPTION
             "The table of the AC switch state on this POE power."
      ::= { h3cPOEACSwitchStateModuleObjs 2 }

h3cPOEACSwitchStateEntry OBJECT-TYPE
      SYNTAX H3cPOEACSwitchStateEntry
      MAX-ACCESS not-accessible
      STATUS current
      DESCRIPTION
             "The entry of the AC switch state on this POE power."
      INDEX { h3cPOEACSwitchStateIndex }
      ::= { h3cPOEACSwitchStateTable 1 }

H3cPOEACSwitchStateEntry ::=
      SEQUENCE {
                h3cPOEACSwitchStateIndex
                        Integer32,
                h3cPOEACSwitchState
                        SwitchState
               }

h3cPOEACSwitchStateIndex OBJECT-TYPE
      SYNTAX Integer32 (1..2147483647)
      MAX-ACCESS accessible-for-notify
      STATUS current
      DESCRIPTION
             "The index of the AC switch state on this POE power.
             The range of this node is from 1 to h3cPOEACSwitchStateModuleNum."
      ::= { h3cPOEACSwitchStateEntry 1 }

h3cPOEACSwitchState OBJECT-TYPE
      SYNTAX SwitchState
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
             "The AC switch state on this POE power.
             The value of this node will be one of the following values:
                                 on             (1),
                                 off            (2),
                                 highVoltInput  (3),
                                 lowVoltInput   (4)"
      ::= { h3cPOEACSwitchStateEntry 2 }

h3cPOEInCurStateObjects OBJECT IDENTIFIER ::= { h3cPOEPowerObjects 6 }

h3cPOEInCurStateModuleNum OBJECT-TYPE
      SYNTAX Integer32
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
             "The DC input current state of the module on this POE power.
             It is the maximum of the h3cPOESwitchStateVolExIndex."
      ::= { h3cPOEInCurStateObjects 1 }

h3cPOEInCurAState OBJECT-TYPE
      SYNTAX ACAlarmState
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
             "The current A state in the DC input on this POE power.
                                 normal     (1),
                                 underLimit (2),
                                 aboveLimit (3),
                                 lackPhrase (4),
                                 fuseBroken (5),
                                 switchOff  (6),
                                 otherError (7)."
      ::= { h3cPOEInCurStateObjects 2 }

h3cPOEInCurBState OBJECT-TYPE
      SYNTAX ACAlarmState
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
             "The current B state in the DC input on this POE power.
             The value of this node will be one of the following values:
                                 normal     (1),
                                 underLimit (2),
                                 aboveLimit (3),
                                 lackPhrase (4),
                                 fuseBroken (5),
                                 switchOff  (6),
                                 otherError (7)."
      ::= { h3cPOEInCurStateObjects 3 }

h3cPOEInCurCState OBJECT-TYPE
      SYNTAX ACAlarmState
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
             "The current C state in the DC input on this POE power.
             The value of this node will be one of the following values:
                                 normal     (1),
                                 underLimit (2),
                                 aboveLimit (3),
                                 lackPhrase (4),
                                 fuseBroken (5),
                                 switchOff  (6),
                                 otherError (7)."
      ::= { h3cPOEInCurStateObjects 4 }

h3cPOESwitchStateVolExTable OBJECT-TYPE
      SYNTAX SEQUENCE OF H3cPOESwitchStateVolExEntry
      MAX-ACCESS not-accessible
      STATUS current
      DESCRIPTION
             "All alarm status of the VOL status.
             The value of this node will be one of the following values:
                                 normal     (1),
                                 underLimit (2),
                                 aboveLimit (3),
                                 lackPhrase (4),
                                 fuseBroken (5),
                                 switchOff  (6),
                                 otherError (7)."
      ::= { h3cPOEInCurStateObjects 5 }

h3cPOESwitchStateVolExEntry OBJECT-TYPE
      SYNTAX H3cPOESwitchStateVolExEntry
      MAX-ACCESS not-accessible
      STATUS current
      DESCRIPTION
             "The h3cPOESwitchStateVolExIndex will match the number of the VOL status."
      INDEX { h3cPOESwitchStateVolExIndex }
      ::= { h3cPOESwitchStateVolExTable 1 }

H3cPOESwitchStateVolExEntry ::=
      SEQUENCE {
               h3cPOESwitchStateVolExIndex
                       Integer32,
               h3cPOESwitchStateInVolAB
                       ACAlarmState,
               h3cPOESwitchStateInVolBC
                       ACAlarmState,
               h3cPOESwitchStateInVolCA
                       ACAlarmState
               }

h3cPOESwitchStateVolExIndex OBJECT-TYPE
      SYNTAX Integer32 (1..2147483647)
      MAX-ACCESS accessible-for-notify
      STATUS current
      DESCRIPTION
             "The object species the index of the VOL status.
             The range of this node is from 1 to h3cPOEInCurStateModuleNum."
      ::= { h3cPOESwitchStateVolExEntry 1 }

h3cPOESwitchStateInVolAB OBJECT-TYPE
      SYNTAX ACAlarmState
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
             "The object specifies the VOL AB alarm in each VOL status.
             The value of this node will be one of the following values:
                                 normal     (1),
                                 underLimit (2),
                                 aboveLimit (3),
                                 lackPhrase (4),
                                 fuseBroken (5),
                                 switchOff  (6),
                                 otherError (7)."
      ::= { h3cPOESwitchStateVolExEntry 2 }

h3cPOESwitchStateInVolBC OBJECT-TYPE
      SYNTAX ACAlarmState
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
             "The object specifies the VOL BC alarm in each VOL status.
             The value of this node will be one of the following values:
                                 normal     (1),
                                 underLimit (2),
                                 aboveLimit (3),
                                 lackPhrase (4),
                                 fuseBroken (5),
                                 switchOff  (6),
                                 otherError (7)."
      ::= { h3cPOESwitchStateVolExEntry 3 }

h3cPOESwitchStateInVolCA OBJECT-TYPE
      SYNTAX ACAlarmState
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
             "The object specifies the VOL CA alarm in each VOL status.
             The value of this node will be one of the following values:
                                 normal     (1),
                                 underLimit (2),
                                 aboveLimit (3),
                                 lackPhrase (4),
                                 fuseBroken (5),
                                 switchOff  (6),
                                 otherError (7)."
      ::= { h3cPOESwitchStateVolExEntry 4 }

h3cPOEAlarmStateObjects OBJECT IDENTIFIER ::= { h3cPOEPowerObjects 7 }

h3cPOEAlarmStateModuleNum OBJECT-TYPE
      SYNTAX Integer32
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
             "The object specifies the number of the power modules in alarm state."
      ::= { h3cPOEAlarmStateObjects 1 }

h3cPOEAlarmStateInfoTable OBJECT-TYPE
      SYNTAX SEQUENCE OF H3cPOEAlarmStateInfoEntry
      MAX-ACCESS not-accessible
      STATUS current
      DESCRIPTION
             "All alarm states in the POE power modules."
      ::= { h3cPOEAlarmStateObjects 2 }

h3cPOEAlarmStateInfoEntry OBJECT-TYPE
      SYNTAX H3cPOEAlarmStateInfoEntry
      MAX-ACCESS not-accessible
      STATUS current
      DESCRIPTION
             "The h3cPOEAlarmModuleInfoIndex will match the number
             of the power module."
INDEX { h3cPOEAlarmModuleInfoIndex }
      ::= { h3cPOEAlarmStateInfoTable 1 }

H3cPOEAlarmStateInfoEntry ::=
      SEQUENCE {
               h3cPOEAlarmModuleInfoIndex
                       Integer32,
               h3cPOEModuleDisconnect
                       ModuleAlarmState,
               h3cPOEModuleInputError
                       ModuleAlarmState,
               h3cPOEModuleOutputError
                       ModuleAlarmState,
               h3cPOEModuleOverVoltage
                       ModuleAlarmState,
               h3cPOEModuleOverTemp
                       ModuleAlarmState,
               h3cPOEModuleFanError
                       ModuleAlarmState,
               h3cPOEModuleShutdown
                       ModuleAlarmState,
               h3cPOEModuleCurRestricted
                       ModuleAlarmState
               }

h3cPOEAlarmModuleInfoIndex OBJECT-TYPE
      SYNTAX Integer32 (1..2147483647)
      MAX-ACCESS accessible-for-notify
      STATUS current
      DESCRIPTION
             "The index specifies the index of the H3cPOEAlarmStateInfoEntry table.
             The range of this node is from 1 to h3cPOEAlarmStateModuleNum."
      ::= { h3cPOEAlarmStateInfoEntry 1 }

h3cPOEModuleDisconnect OBJECT-TYPE
      SYNTAX ModuleAlarmState
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
             "The node specifies the alarm state:
             The module does not link.
             The value of this node is one of the following values:
                              normal (1),
                              alarm  (2)."
      ::= { h3cPOEAlarmStateInfoEntry 2 }

h3cPOEModuleInputError OBJECT-TYPE
      SYNTAX ModuleAlarmState
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
             "The node specifies the alarm state:
                                 Input error.
             The value of this node is one of the following values:
                                 normal (1),
                                 alarm  (2)."
      ::= { h3cPOEAlarmStateInfoEntry 3 }

h3cPOEModuleOutputError OBJECT-TYPE
      SYNTAX ModuleAlarmState
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
             "The node specifies the alarm state:
                                 Output error.
             The value of this node is one of the following values:
                                 normal (1),
                                 alarm  (2)."
      ::= { h3cPOEAlarmStateInfoEntry 4 }

h3cPOEModuleOverVoltage OBJECT-TYPE
      SYNTAX ModuleAlarmState
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
             "The node specifies the alarm state:
                                 The voltage is too high.
             The value of this node is one of the following values:
                                 normal (1),
                                 alarm  (2)."
      ::= { h3cPOEAlarmStateInfoEntry 5 }

h3cPOEModuleOverTemp OBJECT-TYPE
      SYNTAX ModuleAlarmState
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
             "The node specifies the alarm state:
                                 The temperature is too high.
             The value of this node is one of the following values:
                                 normal (1),
                                 alarm  (2)."
      ::= { h3cPOEAlarmStateInfoEntry 6 }

h3cPOEModuleFanError OBJECT-TYPE
      SYNTAX ModuleAlarmState
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
             "The node specifies the alarm state:
                                 The fan error.
             The value of this node is one of the following values:
                                 normal (1),
                                 alarm  (2)."
      ::= { h3cPOEAlarmStateInfoEntry 7 }

h3cPOEModuleShutdown OBJECT-TYPE
      SYNTAX ModuleAlarmState
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
             "The node specifies the alarm state:
                                 The module is shutdown.
             The value of this node is one of the following values:
                                 normal (1),
                                 alarm  (2)."
      ::= { h3cPOEAlarmStateInfoEntry 8 }

h3cPOEModuleCurRestricted OBJECT-TYPE
      SYNTAX ModuleAlarmState
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
             "The node specifies the alarm state:
                                 The module limit the current.
             The value of this node is one of the following values:
                                 normal (1),
                                 alarm  (2)."
      ::= { h3cPOEAlarmStateInfoEntry 9 }
END
