-- =================================================================
-- Copyright (C) 2002 by  H3C TECHNOLOGIES. All rights reserved.
--
-- Description: Power over ethernet extend MIB
-- Reference: POWER-ETHERNET-MIB
-- Version: V1.5
-- 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 hh3cMainPsePriorityModehh3cPsePowerMaxValue
--                   hh3cpsePDChangNotification adjust the objects' sequence of
--                   hh3cPsePortTable and hh3cMainPseTable add the description
--                   of MANDATORY-GROUPS in hh3cPseCompliance.
--   V1.3 2004-12-16 Update file by liuhongxu for poe profile
--                   add hh3cPsePortProfile, hh3cPseProfilesTable
--                   change the name of hh3cPseProfileIndex add
--                   hh3cPseProfileApplyNum.  adjust the format of this mib.
--   V1.4 2005-03-29 Update file by Wangzhaoyan for poe pow need.
--                   add hh3cPOEPowerObjects, hh3cPOEThresholdLimitObjs,
--                   hh3cPOESupModuleInfoObjs, hh3cPOEDCOutStateObjects,
--                   hh3cPOEDCDCOutInfoObjects, hh3cPOEACSwitchStateModuleObjs,
--                   hh3cPOEInCurStateObjects, hh3cPOEAlarmStateObjects and the
--                   sub-nodes.  add 17 traps change the node name from
--                   hh3cpsePDChangNotification to hh3cpsePDChangeNotification
--                   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 hh3cPsePolicyMode, hh3cPDPolicyMode,
--                   hh3cMainPsePowerPriority.
--                   Delete some description of hh3cPsePortProfileIndex node.
--                   Change the description of hh3cPseProfilePowerMode node.
--                   Change SYNTAX OCTET STRING range for the following nodes:
--                   hh3cPOEPowerType, hh3cPOESupervisionModuleName,
--                   hh3cPOESMFactorName, hh3cPOEModuleHardVerInfo.
--                   Adjust the format of this mib.
-- =================================================================
HH3C-POWER-ETH-EXT-MIB DEFINITIONS ::= BEGIN

  IMPORTS
          hh3cCommon
                  FROM HH3C-OID-MIB
          pethPsePortGroupIndex, pethPsePortIndex,
          pethMainPseGroupIndex, pethPsePortDetectionStatus
                  FROM POWER-ETHERNET-MIB
          OBJECT-GROUP, MODULE-COMPLIANCE
                  FROM SNMPv2-CONF
          Integer32, OBJECT-TYPE, MODULE-IDENTITY, NOTIFICATION-TYPE
                  FROM SNMPv2-SMI
          DisplayString, RowStatus
                  FROM SNMPv2-TC;


  hh3cPowerEthernetExt MODULE-IDENTITY
          LAST-UPDATED "200407261023Z"      -- July 26, 2004 at 10:23 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."
          ::= { hh3cCommon 14 }


--
-- Node definitions
--

  hh3cPsePortTable OBJECT-TYPE
          SYNTAX SEQUENCE OF Hh3cPsePortEntry
          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."
          ::= { hh3cPowerEthernetExt 1 }


  hh3cPsePortEntry OBJECT-TYPE
          SYNTAX Hh3cPsePortEntry
          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 }
          ::= { hh3cPsePortTable 1 }


  Hh3cPsePortEntry ::=
          SEQUENCE {
                  hh3cPsePortFaultDescription
                          DisplayString,
                  hh3cPsePortPeakPower
                          Integer32,
                  hh3cPsePortAveragePower
                          Integer32,
                  hh3cPsePortCurrentPower
                          Integer32,
                  hh3cPsePortPowerLimit
                          Integer32,
                  hh3cPsePortProfileIndex
                          Integer32
          }

  hh3cPsePortFaultDescription 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."
          ::= { hh3cPsePortEntry 2 }


  hh3cPsePortPeakPower 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."
          ::= { hh3cPsePortEntry 3 }


  hh3cPsePortAveragePower 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."
          ::= { hh3cPsePortEntry 4 }


  hh3cPsePortCurrentPower 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."
          ::= { hh3cPsePortEntry 5 }


  hh3cPsePortPowerLimit 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."
          ::= { hh3cPsePortEntry 6 }

  hh3cPsePortProfileIndex 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
                 hh3cPseProfileIndex 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
                 hh3cPseProfileIndex is set to an index of existent profile,
                 pethPsePortPowerPairs, pethPsePortPowerPriority,
                 pethPsePortAdminEnable and hh3cPsePortPowerLimit will be
                 set to the same as corresponding value.  PethPsePortPowerPairs,
                 pethPsePortPowerPriority and pethPsePortAdminEnable are objects
                 of rfc3621-Power-Ethernet.mib."
          ::= { hh3cPsePortEntry 7 }


  hh3cMainPseTable OBJECT-TYPE
          SYNTAX SEQUENCE OF Hh3cMainPseEntry
          MAX-ACCESS not-accessible
          STATUS current
          DESCRIPTION
                  "Description."
          ::= { hh3cPowerEthernetExt 2 }


  hh3cMainPseEntry OBJECT-TYPE
          SYNTAX Hh3cMainPseEntry
          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 }
          ::= { hh3cMainPseTable 1 }


  Hh3cMainPseEntry ::=
          SEQUENCE {
                  hh3cMainGuaranteedPowerRemaining
                             Integer32,
                  hh3cMainPsePeakPower
                             Integer32,
                  hh3cMainPseAveragePower
                             Integer32,
                  hh3cMainPsePowerLimit
                             Integer32,
                  hh3cMainPsePriorityMode
                             INTEGER,
                  hh3cMainPseLegacy
                             INTEGER,
                  hh3cMainPsePowerPriority
                             INTEGER
                  }

  hh3cMainPsePowerLimit 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)."
          ::= { hh3cMainPseEntry 1 }


  hh3cMainPseAveragePower 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."
          ::= { hh3cMainPseEntry 2 }


  hh3cMainPsePeakPower 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."
          ::= { hh3cMainPseEntry 3 }


  hh3cMainGuaranteedPowerRemaining 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)."
          ::= { hh3cMainPseEntry 4 }


  hh3cMainPsePriorityMode 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."
          ::= { hh3cMainPseEntry 5 }

  hh3cMainPseLegacy 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."
          ::= { hh3cMainPseEntry 6 }

  hh3cMainPsePowerPriority 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."
          ::= { hh3cMainPseEntry 7 }

-- Power Profile PSE table
  hh3cPseProfilesTable OBJECT-TYPE
          SYNTAX SEQUENCE OF Hh3cPseProfilesEntry
          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."
          ::= { hh3cPowerEthernetExt 7 }

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

  Hh3cPseProfilesEntry ::= SEQUENCE {
                 hh3cPseProfileIndex     Integer32,
                 hh3cPseProfileName      DisplayString,
                 hh3cPseProfilePowerMode      INTEGER,
                 hh3cPseProfilePowerLimit     Integer32,
                 hh3cPseProfilePriority       INTEGER,
                 hh3cPseProfilePairs          INTEGER,
                 hh3cPseProfileApplyNum       Integer32,
                 hh3cPseProfileRowStatus      RowStatus
                    }

  hh3cPseProfileIndex 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."
          ::= { hh3cPseProfilesEntry 1 }

  hh3cPseProfileName 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'."
          ::= { hh3cPseProfilesEntry 2 }

  hh3cPseProfilePowerMode 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."
          ::= { hh3cPseProfilesEntry 3 }

  hh3cPseProfilePowerLimit OBJECT-TYPE
          SYNTAX Integer32 (0..15400)
          MAX-ACCESS read-create
          STATUS current
          DESCRIPTION
                 "The power limit to be applied to the ports hh3cPsePortPowerLimit
                  object when the profile is applied to the PSE port.  Expressed in
                  milliWatts."
          ::= { hh3cPseProfilesEntry 4 }

  hh3cPseProfilePriority 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."
          ::= { hh3cPseProfilesEntry 5 }

  hh3cPseProfilePairs 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"
          ::= { hh3cPseProfilesEntry 6 }

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

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

  hh3cPseAutoDetectActive 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)."
          ::= { hh3cPowerEthernetExt 3 }

  hh3cPsePowerMaxValue 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."
          ::= { hh3cPowerEthernetExt 5 }

  hh3cPsePolicyMode 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
                 hh3cMainPsePowerPriority.  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)."
          ::= { hh3cPowerEthernetExt 9 }

  hh3cPDPolicyMode 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)."
          ::= { hh3cPowerEthernetExt 10 }

  hh3cpseportNotification  OBJECT IDENTIFIER ::= { hh3cPowerEthernetExt 6 }

-- Notification  Control  Objects

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

  hh3cPOEDisconnectNotification  NOTIFICATION-TYPE
          OBJECTS { hh3cPOEAlarmModuleInfoIndex, hh3cPOEModuleDisconnect }
          STATUS current
          DESCRIPTION
                 "This notification indicates the POE power module does not disconnect."
          ::= { hh3cpseportNotification 2 }

  hh3cPOEInputErrorNotification  NOTIFICATION-TYPE
          OBJECTS { hh3cPOEAlarmModuleInfoIndex, hh3cPOEModuleInputError }
          STATUS current
          DESCRIPTION
                 "This notification indicates the POE power module input error."
          ::= { hh3cpseportNotification 3 }

  hh3cPOEOutputErrorNotification  NOTIFICATION-TYPE
          OBJECTS { hh3cPOEAlarmModuleInfoIndex, hh3cPOEModuleOutputError }
          STATUS current
          DESCRIPTION
                 "This notification indicates the POE power module output error."
          ::= { hh3cpseportNotification 4 }

  hh3cPOEOverVoltageNotification  NOTIFICATION-TYPE
          OBJECTS { hh3cPOEAlarmModuleInfoIndex, hh3cPOEModuleOverVoltage }
          STATUS current
          DESCRIPTION
                 "This notification indicates the POE power module overruns the
                 voltage limit."
          ::= { hh3cpseportNotification 5 }

  hh3cPOEOverTempNotification  NOTIFICATION-TYPE
          OBJECTS { hh3cPOEAlarmModuleInfoIndex, hh3cPOEModuleOverTemp }
          STATUS current
          DESCRIPTION
                 "This notification indicates the POE power module overruns the
                 temperature limit."
          ::= { hh3cpseportNotification 6 }

  hh3cPOEFanErrorNotification  NOTIFICATION-TYPE
          OBJECTS { hh3cPOEAlarmModuleInfoIndex, hh3cPOEModuleFanError }
          STATUS current
          DESCRIPTION
                 "This notification indicates the POE power module fan error."
          ::= { hh3cpseportNotification 7 }

  hh3cPOEModuleShutdownNotification  NOTIFICATION-TYPE
          OBJECTS { hh3cPOEAlarmModuleInfoIndex, hh3cPOEModuleShutdown }
          STATUS current
          DESCRIPTION
                 "This notification indicates the POE power module is closed."
          ::= { hh3cpseportNotification 8 }

  hh3cPOECurRestrictedNotification  NOTIFICATION-TYPE
          OBJECTS { hh3cPOEAlarmModuleInfoIndex, hh3cPOEModuleCurRestricted }
          STATUS current
          DESCRIPTION
                 "This notification indicates the POE power module current is restricted."
          ::= { hh3cpseportNotification 9 }

  hh3cPOEACSwitchNotification  NOTIFICATION-TYPE
          OBJECTS { hh3cPOEACSwitchStateIndex, hh3cPOEACSwitchState }
          STATUS current
          DESCRIPTION
                 "This notification indicates the AC input switch alarm of this POE power."
          ::= { hh3cpseportNotification 10 }

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

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

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

  hh3cPOEACSwitchVolABNotification  NOTIFICATION-TYPE
          OBJECTS { hh3cPOESwitchStateVolExIndex, hh3cPOESwitchStateInVolAB}
          STATUS current
          DESCRIPTION
                 "This notification indicates the AC input voltage AB alarm state of
                 this POE power."
          ::= { hh3cpseportNotification 14 }

  hh3cPOEACSwitchVolBCNotification  NOTIFICATION-TYPE
          OBJECTS { hh3cPOESwitchStateVolExIndex, hh3cPOESwitchStateInVolBC}
          STATUS current
          DESCRIPTION
                 "This notification indicates the AC input voltage BC alarm state of
                 this POE power."
          ::= { hh3cpseportNotification 15 }

  hh3cPOEACSwitchVolCANotification  NOTIFICATION-TYPE
          OBJECTS { hh3cPOESwitchStateVolExIndex, hh3cPOESwitchStateInVolCA }
          STATUS current
          DESCRIPTION
                 "This notification indicates the AC input voltage CA alarm state of
                 this POE power."
          ::= { hh3cpseportNotification 16 }

  hh3cPOEDCOutVolNotification NOTIFICATION-TYPE
          OBJECTS { hh3cPOEDCOutStateIndex, hh3cPOEDCOutDCVolAlarm }
          STATUS current
          DESCRIPTION
                 "This notification indicates the DC output alarm of this POE power."
          ::= { hh3cpseportNotification 17 }

  hh3cPOEShutdownNotification NOTIFICATION-TYPE
          STATUS current
          DESCRIPTION
                 "This notification indicates the whole POE power has been shutdown."
          ::= { hh3cpseportNotification 18 }
  hh3cPseComformance OBJECT IDENTIFIER ::= { hh3cPowerEthernetExt 4 }

  hh3cPseCompliances OBJECT IDENTIFIER ::= { hh3cPseComformance 1 }

  hh3cPseCompliance MODULE-COMPLIANCE
          STATUS current
          DESCRIPTION
                 "Description."
          MODULE  -- this module
          MANDATORY-GROUPS {    hh3cPsePortGroup,
                                hh3cMainPseGroup,
                                hh3cPseScalarGroup,
                                hh3cPsePDNotificationGroup
                           }
          GROUP hh3cPseProfilesGroup
          DESCRIPTION
                 "This group is mandatory only for executing POE commands as a batch."
          ::= { hh3cPseCompliances 1 }

  hh3cPseGroup OBJECT IDENTIFIER ::= { hh3cPseComformance 2 }

  hh3cPsePortGroup OBJECT-GROUP
          OBJECTS { hh3cPsePortProfileIndex, hh3cPsePortPowerLimit, hh3cPsePortCurrentPower,
                    hh3cPsePortAveragePower, hh3cPsePortPeakPower, hh3cPsePortFaultDescription,
                    hh3cMainPsePriorityMode
                  }
          STATUS current
          DESCRIPTION
                 "A collection of objects should be supported at the same time."
          ::= { hh3cPseGroup 1 }

  hh3cMainPseGroup OBJECT-GROUP
          OBJECTS { hh3cMainPsePowerLimit, hh3cMainPseAveragePower, hh3cMainPsePeakPower,
                    hh3cMainGuaranteedPowerRemaining }
          STATUS current
          DESCRIPTION
                 "A collection of objects should be supported at the same time."
          ::= { hh3cPseGroup 2 }

  hh3cPseScalarGroup OBJECT-GROUP
          OBJECTS { hh3cPseAutoDetectActive, hh3cPsePowerMaxValue, hh3cPsePolicyMode ,
                    hh3cPDPolicyMode }
          STATUS current
          DESCRIPTION
                 "A collection of scalar objects supported."
          ::= { hh3cPseGroup 3 }

  hh3cPsePDNotificationGroup OBJECT-GROUP
          OBJECTS { hh3cpsePDChangeNotification }
          STATUS current
          DESCRIPTION
                 "PD Change Notification."
          ::= { hh3cPseGroup 4 }

  hh3cPseProfilesGroup OBJECT-GROUP
          OBJECTS { hh3cPseProfileName, hh3cPseProfilePowerMode,
                    hh3cPseProfilePowerLimit, hh3cPseProfilePriority,
                    hh3cPseProfilePairs, hh3cPseProfileApplyNum, hh3cPseProfileRowStatus}
          STATUS current
          DESCRIPTION
                 "A collection of objects should be supported at the same time."
          ::= { hh3cPseGroup 5 }

  hh3cPOEPowerThresholdLimitGroup OBJECT-GROUP
          OBJECTS { hh3cPOEThresholdACMimimum, hh3cPOEThresholdACMaximum,
                    hh3cPOEThresholdDCMinimum, hh3cPOEThresholdDCMaximum }
          STATUS current
          DESCRIPTION
                 "Power threshold limits group."
          ::= { hh3cPseGroup 6 }

  hh3cPOEPowerSupInfoGroup OBJECT-GROUP
          OBJECTS { hh3cPOEPowerType, hh3cPOEPowerModuleNum, hh3cPOESupervisionModuleName,
                    hh3cPOESMMajorVersion, hh3cPOESMMinorVersion, hh3cPOESMFactorName}
          STATUS current
          DESCRIPTION
                 "The basic Power information group."
          ::= { hh3cPseGroup 7 }

  hh3cPOEPowerDCOutStateGroup OBJECT-GROUP
          OBJECTS { hh3cPOEDCOutStateModuleNum }
          STATUS current
          DESCRIPTION
                 "The DC out power state group."
          ::= { hh3cPseGroup 8 }

  hh3cPOEPowerDCOutInfoGroup OBJECT-GROUP
          OBJECTS { hh3cPOEDCOutCurNum }
          STATUS current
          DESCRIPTION
                 "The power AC input switch information group"
          ::= { hh3cPseGroup 9 }

  hh3cPOEPowerACSwitchStateModuleGroup OBJECT-GROUP
          OBJECTS { hh3cPOEACSwitchStateModuleNum}
          STATUS current
          DESCRIPTION
                 "PD Change Notification."
          ::= { hh3cPseGroup 10 }

  hh3cPOEPowerInCurStateGroup OBJECT-GROUP
          OBJECTS { hh3cPOEInCurStateModuleNum, hh3cPOEInCurAState, hh3cPOEInCurBState,
                    hh3cPOEInCurCState}
          STATUS current
          DESCRIPTION
                 "PD Change Notification."
          ::= { hh3cPseGroup 11 }

  hh3cPOEPowerAlarmStateGroup OBJECT-GROUP
          OBJECTS { hh3cPOEAlarmStateModuleNum }
          STATUS current
          DESCRIPTION
                  "PD Change Notification."
          ::= { hh3cPseGroup 12 }

  ACAlarmState ::= INTEGER   {
                    normal     (1),
                    underLimit (2),
                    aboveLimit (3),
                    lackPhrase (4),
                    fuseBroken (5),
                    switchOff  (6),
                    otherError (7)
                       }

  DCAlarmState ::= INTEGER   {
                    normal     (1),
                    underLimit (2),
                    aboveLimit (3),
                    fuseBroken (4),
                    switchOff  (5),
                    otherError (6)
                       }

  SwitchState ::= INTEGER   {
                   on            (1),
                   off           (2),
                   highVoltInput (3),
                   lowVoltInput  (4)
                      }

  ModuleAlarmState ::= INTEGER   {
                        normal (1),
                        alarm  (2)
                          }

  hh3cPOEPowerObjects OBJECT IDENTIFIER ::= { hh3cPowerEthernetExt 8 }

  hh3cPOEThresholdLimitObjs OBJECT IDENTIFIER ::= { hh3cPOEPowerObjects 1 }

  hh3cPOEThresholdACMimimum 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 hh3cPOEThresholdACMaximum."
          ::= { hh3cPOEThresholdLimitObjs 1 }

  hh3cPOEThresholdACMaximum 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 hh3cPOEThresholdACMinimum."
          ::= { hh3cPOEThresholdLimitObjs 2 }

   hh3cPOEThresholdDCMinimum 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."
          ::= { hh3cPOEThresholdLimitObjs 3 }

  hh3cPOEThresholdDCMaximum 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."
          ::= { hh3cPOEThresholdLimitObjs 4 }

  hh3cPOESupModuleInfoObjs OBJECT IDENTIFIER ::= { hh3cPOEPowerObjects 2 }

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

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

  hh3cPOESupervisionModuleName 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."
          ::= { hh3cPOESupModuleInfoObjs 3 }

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

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

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

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

  hh3cPOEModuleInfoEntry OBJECT-TYPE
          SYNTAX Hh3cPOEModuleInfoEntry
          MAX-ACCESS not-accessible
          STATUS current
          DESCRIPTION
                 "The entry of the module information on this POE power."
          INDEX { hh3cPOEModuleIndex }
          ::= { hh3cPOEModuleInfoTable 1 }

  Hh3cPOEModuleInfoEntry ::=
          SEQUENCE {
                     hh3cPOEModuleIndex
                             Integer32,
                     hh3cPOEModuleID
                             Integer32,
                     hh3cPOEModuleInfoPower
                             Integer32,
                     hh3cPOEModuleHardVerInfo
                             OCTET STRING
                    }

  hh3cPOEModuleIndex 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 hh3cPOEModuleInfoTable.
                 The range of this node is from 1 to hh3cPOEPowerModuleNum."
          ::= { hh3cPOEModuleInfoEntry 1 }

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

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

  hh3cPOEModuleHardVerInfo 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."
          ::= { hh3cPOEModuleInfoEntry 4 }

  hh3cPOEDCOutStateObjects OBJECT IDENTIFIER ::= { hh3cPOEPowerObjects 3 }

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

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

  hh3cPOEDCOutStateEntry OBJECT-TYPE
          SYNTAX Hh3cPOEDCOutStateEntry
          MAX-ACCESS not-accessible
          STATUS current
          DESCRIPTION
                 "The entry of the DC output power state on this POE power."
          INDEX { hh3cPOEDCOutStateIndex }
          ::= { hh3cPOEDCOutStateTable 1 }

          Hh3cPOEDCOutStateEntry ::=
                  SEQUENCE {
                           hh3cPOEDCOutStateIndex
                                   Integer32,
                           hh3cPOEDCOutDCVolAlarm
                                   DCAlarmState
                        }

   hh3cPOEDCOutStateIndex 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 hh3cPOEDCOutStateModuleNum."
          ::= { hh3cPOEDCOutStateEntry 1 }

   hh3cPOEDCOutDCVolAlarm 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)."
          ::= { hh3cPOEDCOutStateEntry 2 }

   hh3cPOEDCOutInfoObjects OBJECT IDENTIFIER ::= { hh3cPOEPowerObjects 4 }

   hh3cPOEDCOutCurNum 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 hh3cPOEDCOutInfoIndex."
          ::= { hh3cPOEDCOutInfoObjects 1 }

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

  hh3cPOEDCOutInfoEntry OBJECT-TYPE
          SYNTAX Hh3cPOEDCOutInfoEntry
          MAX-ACCESS not-accessible
          STATUS current
          DESCRIPTION
                 "The entry of the DC output information on this POE power."
          INDEX { hh3cPOEDCOutInfoIndex }
          ::= { hh3cPOEDCOutInfoTable 1 }

  Hh3cPOEDCOutInfoEntry ::=
          SEQUENCE {
                    hh3cPOEDCOutInfoIndex
                            Integer32,
                    hh3cPOEDCOutVol
                            OCTET STRING,
                    hh3cPOEDCOutInfoLoadCur
                            OCTET STRING
                  }

   hh3cPOEDCOutInfoIndex 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 hh3cPOEDCOutCurNum."
          ::= { hh3cPOEDCOutInfoEntry 1 }

   hh3cPOEDCOutVol 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."
          ::= { hh3cPOEDCOutInfoEntry 2 }

  hh3cPOEDCOutInfoLoadCur 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."
          ::= { hh3cPOEDCOutInfoEntry 3 }

  hh3cPOEACSwitchStateModuleObjs OBJECT IDENTIFIER ::= { hh3cPOEPowerObjects 5 }

  hh3cPOEACSwitchStateModuleNum 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 hh3cPOEACSwitchStateIndex."
          ::= { hh3cPOEACSwitchStateModuleObjs 1 }

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

  hh3cPOEACSwitchStateEntry OBJECT-TYPE
          SYNTAX Hh3cPOEACSwitchStateEntry
          MAX-ACCESS not-accessible
          STATUS current
          DESCRIPTION
                 "The entry of the AC switch state on this POE power."
          INDEX { hh3cPOEACSwitchStateIndex }
          ::= { hh3cPOEACSwitchStateTable 1 }

  Hh3cPOEACSwitchStateEntry ::=
          SEQUENCE {
                    hh3cPOEACSwitchStateIndex
                            Integer32,
                    hh3cPOEACSwitchState
                            SwitchState
                   }

  hh3cPOEACSwitchStateIndex 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 hh3cPOEACSwitchStateModuleNum."
          ::= { hh3cPOEACSwitchStateEntry 1 }

  hh3cPOEACSwitchState 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)"
          ::= { hh3cPOEACSwitchStateEntry 2 }

  hh3cPOEInCurStateObjects OBJECT IDENTIFIER ::= { hh3cPOEPowerObjects 6 }

  hh3cPOEInCurStateModuleNum 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 hh3cPOESwitchStateVolExIndex."
          ::= { hh3cPOEInCurStateObjects 1 }

  hh3cPOEInCurAState 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)."
          ::= { hh3cPOEInCurStateObjects 2 }

  hh3cPOEInCurBState 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)."
          ::= { hh3cPOEInCurStateObjects 3 }

  hh3cPOEInCurCState 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)."
          ::= { hh3cPOEInCurStateObjects 4 }

  hh3cPOESwitchStateVolExTable OBJECT-TYPE
          SYNTAX SEQUENCE OF Hh3cPOESwitchStateVolExEntry
          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)."
          ::= { hh3cPOEInCurStateObjects 5 }

  hh3cPOESwitchStateVolExEntry OBJECT-TYPE
          SYNTAX Hh3cPOESwitchStateVolExEntry
          MAX-ACCESS not-accessible
          STATUS current
          DESCRIPTION
                 "The hh3cPOESwitchStateVolExIndex will match the number of the VOL status."
          INDEX { hh3cPOESwitchStateVolExIndex }
          ::= { hh3cPOESwitchStateVolExTable 1 }

  Hh3cPOESwitchStateVolExEntry ::=
          SEQUENCE {
                   hh3cPOESwitchStateVolExIndex
                           Integer32,
                   hh3cPOESwitchStateInVolAB
                           ACAlarmState,
                   hh3cPOESwitchStateInVolBC
                           ACAlarmState,
                   hh3cPOESwitchStateInVolCA
                           ACAlarmState
                   }

  hh3cPOESwitchStateVolExIndex 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 hh3cPOEInCurStateModuleNum."
          ::= { hh3cPOESwitchStateVolExEntry 1 }

  hh3cPOESwitchStateInVolAB 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)."
          ::= { hh3cPOESwitchStateVolExEntry 2 }

  hh3cPOESwitchStateInVolBC 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)."
          ::= { hh3cPOESwitchStateVolExEntry 3 }

  hh3cPOESwitchStateInVolCA 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)."
          ::= { hh3cPOESwitchStateVolExEntry 4 }

  hh3cPOEAlarmStateObjects OBJECT IDENTIFIER ::= { hh3cPOEPowerObjects 7 }

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

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

  hh3cPOEAlarmStateInfoEntry OBJECT-TYPE
          SYNTAX Hh3cPOEAlarmStateInfoEntry
          MAX-ACCESS not-accessible
          STATUS current
          DESCRIPTION
                 "The hh3cPOEAlarmModuleInfoIndex will match the number
                 of the power module."
  INDEX { hh3cPOEAlarmModuleInfoIndex }
          ::= { hh3cPOEAlarmStateInfoTable 1 }

  Hh3cPOEAlarmStateInfoEntry ::=
          SEQUENCE {
                   hh3cPOEAlarmModuleInfoIndex
                           Integer32,
                   hh3cPOEModuleDisconnect
                           ModuleAlarmState,
                   hh3cPOEModuleInputError
                           ModuleAlarmState,
                   hh3cPOEModuleOutputError
                           ModuleAlarmState,
                   hh3cPOEModuleOverVoltage
                           ModuleAlarmState,
                   hh3cPOEModuleOverTemp
                           ModuleAlarmState,
                   hh3cPOEModuleFanError
                           ModuleAlarmState,
                   hh3cPOEModuleShutdown
                           ModuleAlarmState,
                   hh3cPOEModuleCurRestricted
                           ModuleAlarmState
                   }

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

  hh3cPOEModuleDisconnect 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)."
          ::= { hh3cPOEAlarmStateInfoEntry 2 }

   hh3cPOEModuleInputError 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)."
          ::= { hh3cPOEAlarmStateInfoEntry 3 }

  hh3cPOEModuleOutputError 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)."
          ::= { hh3cPOEAlarmStateInfoEntry 4 }

  hh3cPOEModuleOverVoltage 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)."
          ::= { hh3cPOEAlarmStateInfoEntry 5 }

  hh3cPOEModuleOverTemp 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)."
          ::= { hh3cPOEAlarmStateInfoEntry 6 }

  hh3cPOEModuleFanError 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)."
          ::= { hh3cPOEAlarmStateInfoEntry 7 }

   hh3cPOEModuleShutdown 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)."
          ::= { hh3cPOEAlarmStateInfoEntry 8 }

  hh3cPOEModuleCurRestricted 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)."
          ::= { hh3cPOEAlarmStateInfoEntry 9 }
  END
