   POWER-ETHERNET-MIB DEFINITIONS ::= BEGIN

      IMPORTS
           MODULE-IDENTITY, OBJECT-TYPE, Integer32 , Gauge32,Counter32,
           NOTIFICATION-TYPE
                   FROM SNMPv2-SMI
           dot3
                   FROM EtherLike-MIB
           TruthValue
                   FROM SNMPv2-TC
           MODULE-COMPLIANCE, OBJECT-GROUP ,NOTIFICATION-GROUP
                   FROM SNMPv2-CONF;

      powerEthernetMIB MODULE-IDENTITY
           LAST-UPDATED "200210190000Z"  -- October 19, 2002
           ORGANIZATION "IETF Ethernet Interfaces and Hub MIB
                         Working Group"
           CONTACT-INFO
           "

                       Chair: Dan Romascanu
                                  Avaya Inc.
                                  Tel:  ?3-645-8414
                                  Email: dromasca@avaya.com

                       Editor: Avi Berger
                                 PowerDsine Inc.
                                   Tel:    972-9-7755100 Ext 307
                                  Fax:    972-9-7755120
                                   E-mail: avib@PowerDsine.com
           "

          DESCRIPTION
                 "The MIB module for for managing Powered Devices (PD) or
                  Power Source Equipment (PSE) working according to the IEEE
                  802.af Powered Ethernet (DTE Power via MDI) standard.

                  The following terms are used throughout this
                  MIB module.  For complete formal definitions,
                  the IEEE 802.3 standards should be consulted
                  wherever possible:

                  Group - A recommended, but optional, entity
                  defined by the IEEE 802.3 management standard,
                  in order to support a modular numbering scheme.
                  The classical example allows an implementor to
                  represent field-replaceable units as groups of
                  ports, with the port numbering matching the
                  modular hardware implementation.

                  Port - This entity identifies the port within the group
                  for which this entry contains information. The numbering
                  scheme for ports is implementation specific."
           ::= { dot3 20 }

   pethObjects       OBJECT IDENTIFIER ::= { powerEthernetMIB 1 }
   pethNotifications OBJECT IDENTIFIER ::= { powerEthernetMIB 2 }
   pethConformance   OBJECT IDENTIFIER ::= { powerEthernetMIB 3 }

   -- PSE Objects

     pethPsePortTable OBJECT-TYPE
          SYNTAX      SEQUENCE OF PethPsePortEntry
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION
              "A table of objects that display and control the power
               characteristics power Ethernet ports on a Power Source
               Entity (PSE) device. This group will be implemented in
               managed power Ethernet switches and mid-span devices."
          ::= { pethObjects 1 }

      pethPsePortEntry OBJECT-TYPE
          SYNTAX      PethPsePortEntry
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION
                  "A set of objects that display and control the power
                  characteristics of a power Ethernet PSE port."
          INDEX    { pethPsePortGroupIndex , pethPsePortIndex  }
          ::= { pethPsePortTable 1 }


      PethPsePortEntry ::= SEQUENCE {
          pethPsePortGroupIndex
             INTEGER,
          pethPsePortIndex
             INTEGER,
          pethPsePortAdminEnable
              INTEGER,
          pethPsePortPowerPairsControlAbility
              TruthValue,
          pethPsePortPowerPairs
              INTEGER,
          pethPsePortPowerDetectionControl
              INTEGER,
          pethPsePortDetectionStatus
              INTEGER,
          pethPsePortPowerPriority
              INTEGER,
          pethPsePortPowerMaintenanceStatus
              INTEGER,
          pethPsePortMPSAbsentCounter
                Counter32,
          pethPsePortOverCurrentCounter
                Counter32,
          pethPsePortType
              INTEGER,
          pethPsePortPowerClassifications
                INTEGER
      }

      pethPsePortGroupIndex OBJECT-TYPE
          SYNTAX      INTEGER (1..2147483647)
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION
              "This variable uniquely identifies the group
               containing the port to which a 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 .

               pethPseMidSpanGroupCapacity is the number of Mid-Span PSE
               groups that can be contained within the Mid-Span PSE."
          ::= { pethPsePortEntry 1 }

      pethPsePortIndex OBJECT-TYPE
          SYNTAX      INTEGER(1..2147483647)
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION
              "This variable uniquely identifies the power Ethernet PSE
               port within group pethPseGroupIndex to which the
               power Ethernet PSE entry is connected."
          ::= { pethPsePortEntry 2 }


      pethPsePortAdminEnable OBJECT-TYPE
          SYNTAX INTEGER   {
                     enable(1),
                     disable(2)
                 }
          MAX-ACCESS read-write
          STATUS current
          DESCRIPTION
              "Enables power supply on this port.
               Setting this object at a value enable(1) enables power
               and detection mechanism for this port.
               Setting this object at a value disable(2) disables power
               for this port."
          ::= { pethPsePortEntry 3 }

      pethPsePortPowerPairsControlAbility OBJECT-TYPE
          SYNTAX TruthValue
          MAX-ACCESS read-only
          STATUS current
          DESCRIPTION
              "Describes the capability of controlling the power pairs
               functionality to switch pins for sourcing power.
               The value true indicate that the device has the capability
               to control the power pairs"
          ::= { pethPsePortEntry 4 }

      pethPsePortPowerPairs OBJECT-TYPE
          SYNTAX INTEGER   {
                  signal(1),
                  spare(2)
                 }
          MAX-ACCESS read-write
          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) menas that the signal pairs
               only are in use.
               A value of spare(2) means that the spare pairs
               only are in use."
          ::= { pethPsePortEntry 5 }

      pethPsePortPowerDetectionControl OBJECT-TYPE
          SYNTAX INTEGER   {
                  auto(1),
                  test(2)
                 }
          MAX-ACCESS read-write
          STATUS current
          DESCRIPTION
              "Controls the power detection mechanism of the port.
               Setting the value auto(1) enables the power detection
               mechanism of the port.
               Setting the value test(2) puts the port in a
               testmode: force continuous discovery without applying
               power regardless of whether PD detected."
          ::= { pethPsePortEntry 6 }


      pethPsePortDetectionStatus OBJECT-TYPE
          SYNTAX INTEGER   {
                   disabled(1),
                   searching(2),
                   deliveringPower(4),
                   fault(5),
                   test(7),
                   denyLowPriority(8)
                 }
          MAX-ACCESS read-only
          STATUS current
          DESCRIPTION
              "Describes the operational status of the port PD detection.
               A value of disabled(1)- indicates that the PSE State diagram 
               is in the state IDLE
               A value of searching(2)- indicates that the PSE State diagram 
               is in the state DETECTION, CLASSIFICATION, SIGNATURE_INVALID or 
               BACKOFF.
               A value of deliveringPower(4) - indicates that the PSE State 
               diagram is in the state POWER_UP, POWER_ON or POWER_OFF.
               A value of fault(5) - indicates that the PSE State diagram is 
               in the state TEST_ERROR or the state IDLE due to the variable 
               error condition.
               Faults detected are vendor specific.
               A value of test(7) - indicates that the PSE State diagram is 
               in the state TEST_MODE.
               A value of denyLowPriority(8) indicates that the port was
               disabled by the power management system, in order to keep
               active higher priority ports.
              "
          ::= { pethPsePortEntry 7 }

      pethPsePortPowerPriority OBJECT-TYPE
          SYNTAX INTEGER   {
                     critical(1),
                     high(2),
                     low(3)
                 }
          MAX-ACCESS read-write
          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."
          ::= { pethPsePortEntry 8 }

      pethPsePortPowerMaintenanceStatus  OBJECT-TYPE
          SYNTAX INTEGER   {
                     ok(1),
                     underCurrent(2),
                     mPSAbsent(3)
                 }
          MAX-ACCESS read-only
          STATUS current
          DESCRIPTION
              "The value ok(1) indicates the Power Maintenance
               Signature is present and the overcurrent condition has not been
               detected.
               The value overCurrent (2) indicates an overcurrent condition
               has been detected.
               The value mPSAbsent(3) indicates that the Power Maintenance
               Signature is absent."
   

          REFERENCE   "[IEEE Draft P802.3af/D3.3, October, 2002, 30.9.1.1.8
                      aPSEPowerMaintenanceStatus]"
          ::= { pethPsePortEntry 10 }

      pethPsePortMPSAbsentCounter OBJECT-TYPE
          SYNTAX Counter32
          MAX-ACCESS read-only
          STATUS current
          DESCRIPTION
                "Counts the number of times that the
                 pethPsePortPowerMaintenanceStatus attribute changes from any
                 value to the value mPSAbsent(3)."
          REFERENCE   "[IEEE Draft P802.3af/D3.3, October, 2002,  object 
                       30.9.1.1.9 aPSEUnderCurrentCounter]"
          ::= { pethPsePortEntry 11 }

      pethPsePortOverCurrentCounter OBJECT-TYPE
          SYNTAX Counter32
          MAX-ACCESS read-only
          STATUS current
          DESCRIPTION
                "Counts the number of times that the aPSEPowerCurrentStatus
                 attribute changes from any value to the value overCurrent(2)."
          REFERENCE   "[IEEE Draft P802.3af/D3.3, October, 2002, object 
                       30.9.1.1.10aPSEOverCurrentCounter]"
          ::= { pethPsePortEntry 12 }


      pethPsePortType OBJECT-TYPE
          SYNTAX INTEGER   {
                    other(1),
                    telephone(2),
                    webcam(3),
                    wireless(4)
                 }
          MAX-ACCESS read-write
          STATUS current
          DESCRIPTION
              "A manager will set the value of this variable to a value
               that indicates the type of the device that is connected
               to theport. This value can be the result of the mapping
               the address of the station connected to the port and of
               the value of the pethPdPortType of the respective PD port."
          ::= { pethPsePortEntry 13 }

      pethPsePortPowerClassifications OBJECT-TYPE
          SYNTAX INTEGER   {
                    class0(1),
                    class1(2),
                    class2(3),
                    class3(4),
                    class4(5)
                 }
          MAX-ACCESS read-only
          STATUS current
          DESCRIPTION
              "Classification is a way to tag different terminals on the
               Power over LAN network according to their power consumption.
               Devices such as IP telephones, WLAN access points and others,
               will be classified according to their power requirements.
   
               The value is only valid while a valid PD is being detected as
               indicated by the attribute pethPsePortDetectionStatus reporting
               the value or deliveringPower(4)."
          REFERENCE   "[IEEE Draft P802.3af/D3.3, October , 2002,
                       object 30.9.1.1.7 aPSEPowerClassification]"
          ::= { pethPsePortEntry 14 }


   -- PD Port table

   pethPdPortTable OBJECT-TYPE
          SYNTAX      SEQUENCE OF PethPdPortEntry
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION
              "A table of objects that display and control the power
               characteristics power Ethernet ports on a Powered
               Device(PD) device. This group will be implemented in
               managed powered and mid-span devices."
          ::= { pethObjects 2 }

   pethPdPortEntry OBJECT-TYPE
          SYNTAX      PethPdPortEntry
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION
               "A set of objects that display and control the power
               characteristics of a Powered Device port."
          INDEX    { pethPdPortIndex }
          ::= { pethPdPortTable 1 }

   PethPdPortEntry ::= SEQUENCE {
          pethPdPortIndex
              INTEGER,
          pethPdPortAdminEnable
              INTEGER
     }

   pethPdPortIndex OBJECT-TYPE
          SYNTAX      INTEGER (0..65535)
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION
               "An index value that uniquely identifies an
               interface to a PD device.  The
               interface identified by a particular value of
               this index is the same interface as identified
               by the same value of ifIndex. The mapping
               between the ifIndex values and the numbering of
               the port on the device is an implementation
               issue."
          ::= { pethPdPortEntry 1 }


   pethPdPortAdminEnable OBJECT-TYPE
       SYNTAX INTEGER   {
                  enable(1),
                  disable(2)
        }
       MAX-ACCESS read-write
       STATUS current
       DESCRIPTION
             "This value  identifies the operational state of the PD functions.
              An interface which can provide the PD functions will be enabled
              to do so when this attribute has the value enable. When this
              attribute has the value disable the interface will act
              as it would if it had no PD function."
       ::= { pethPdPortEntry 2 }


   -- Main PSE Objects

   pethMainPseObjects       OBJECT IDENTIFIER ::= { pethObjects 3 }

   pethMainPseTable OBJECT-TYPE
          SYNTAX      SEQUENCE OF PethMainPseEntry
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION
              "A table of objects that display and control the Main power
             on a PSE  device. Example - an Ethernet switch midspan device can
               control an Ethnternet port and the Main Power supply unit's."
          ::= { pethMainPseObjects 1 }

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

   PethMainPseEntry ::= SEQUENCE {
          pethMainPseGroupIndex
              INTEGER,
          pethMainPsePower
              Integer32,
          pethMainPseOperStatus
              INTEGER,
          pethMainPseConsumptionPower
              Gauge32,
          pethMainPseBackupPresent
                INTEGER,
          pethMainPseBackupActivated
                TruthValue,
          pethMainPseUsageThreshold
              INTEGER,
          pethMainPseMaximumDcPower
                INTEGER
      }
   pethMainPseGroupIndex OBJECT-TYPE
          SYNTAX      INTEGER (0..65535)
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION
              "This variable uniquely identifies the group 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 "
          ::= { pethMainPseEntry 1 }

   pethMainPsePower OBJECT-TYPE
          SYNTAX      Integer32 (1..65535)
          UNITS      "Watts"
          MAX-ACCESS  read-only
          STATUS      current
          DESCRIPTION
                  "The nominal power of the PSE expressed in Watts."
          ::= { pethMainPseEntry 2 }


   pethMainPseOperStatus OBJECT-TYPE
          SYNTAX INTEGER   {
                  on(1),
                  off(2),
                  faulty(3)
             }
          MAX-ACCESS  read-only
          STATUS      current
          DESCRIPTION
                  "The operational status of the main PSE."
          ::= { pethMainPseEntry 3 }

   pethMainPseConsumptionPower OBJECT-TYPE
          SYNTAX      Gauge32
          UNITS      "Watts"
          MAX-ACCESS  read-only
          STATUS      current
          DESCRIPTION
                  "Measured usage power expressed in Watts."
          ::= { pethMainPseEntry 4 }


   pethMainPseBackupPresent  OBJECT-TYPE
          SYNTAX  INTEGER    {
                                 present(1),
                                 notPresent(2),
                                 faulty(3)
          }
          MAX-ACCESS         read-only
          STATUS             current
          DESCRIPTION
                       "reflects the presence of a backup PSE ."
          ::= { pethMainPseEntry 5 }

   pethMainPseBackupActivated  OBJECT-TYPE
          SYNTAX         TruthValue
          MAX-ACCESS      read-only
          STATUS          current
          DESCRIPTION
               "- reflects the activation status of the backup PSE .
                The value true Backup is activated."
          ::= { pethMainPseEntry 6 }

   pethMainPseUsageThreshold OBJECT-TYPE
          SYNTAX      INTEGER (1..99)
          UNITS      "%"
          MAX-ACCESS  read-write
          STATUS      current
          DESCRIPTION
                  "The usage threshold expressed in percents for
                   comparing the measured power and initiating
                   an alarm if the threshold is exceeded."
          ::= { pethMainPseEntry 7 }

   pethMainPseMaximumDcPower  OBJECT-TYPE
         SYNTAX             INTEGER
         UNITS               "Watts"
         MAX-ACCESS         read-write
         STATUS             current
         DESCRIPTION
                  "Describes the maximum available power  in
                   Watt to be supplied by the DC backup source to this
                   device."
         ::= { pethMainPseEntry 8 }



   -- Notification  Control  Objects

   pethNotificationControl        OBJECT IDENTIFIER ::= { pethObjects 4 }

   pethNotificationControlTable OBJECT-TYPE
          SYNTAX      SEQUENCE OF PethNotificationControlEntry
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION
              "A table of objects that display and control the Notification
             on a PSE  device."
          ::= { pethNotificationControl 1 }

      pethNotificationControlEntry OBJECT-TYPE
          SYNTAX      PethNotificationControlEntry
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION
               "A set of objects that control the Notification events."
          INDEX    { pethNotificationControlGroupIndex }
          ::= { pethNotificationControlTable 1 }

      PethNotificationControlEntry ::= SEQUENCE {
          pethNotificationControlGroupIndex
              INTEGER,
          pethNotificationControlEnable
                INTEGER
      }
        pethNotificationControlGroupIndex OBJECT-TYPE
          SYNTAX      INTEGER (1..65535)
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION
              "This variable uniquely identifies the group. Group means
              box in the stack, module in a rack and it is RECOMENDED
              that the value 1 be used for non-modular devices "
          ::= { pethNotificationControlEntry 1 }


         pethNotificationControlEnable  OBJECT-TYPE
             SYNTAX             INTEGER
                  {
                       enable(1),
                       disable(2)
                  }
             MAX-ACCESS         read-write
             STATUS             current
             DESCRIPTION
                  "Enable Notification from Agent"
          ::= { pethNotificationControlEntry 2 }


   --
   -- Notifications Section
   --
   --

        pethPsePortOnOffNotification NOTIFICATION-TYPE
            OBJECTS     { pethPsePortDetectionStatus }
            STATUS      current
            DESCRIPTION
                    " This Notification indicates if Pse Port is  delivering  or
                       not power to the PD. This Notification SHOULD be sent on
                       every status change except in the searching mode."
             ::= { pethNotifications 1 }



        pethPsePortPowerMaintenanceStatusNotification NOTIFICATION-TYPE
            OBJECTS     { pethPsePortPowerMaintenanceStatus  }
            STATUS      current
            DESCRIPTION
                  " This Notification indicates a Port Change Status and it
                        SHOULD be sent on every status change."
            ::= { pethNotifications 2 }

        pethMainPseBackUpActivatedNotification NOTIFICATION-TYPE
            OBJECTS     { pethMainPseBackupActivated }
            STATUS      current
            DESCRIPTION
                  " This Notification indicate BackUp is Activated or BackUp is
                       released."
            ::= { pethNotifications 3 }

        pethMainPowerUsageOnNotification NOTIFICATION-TYPE
            OBJECTS     { pethMainPseConsumptionPower  }
            STATUS      current
            DESCRIPTION
                  " This Notification indicate PSE Threshold usage indication is
                       on, the usage power is above the threshold."
            ::= { pethNotifications 4 }

         pethMainPowerUsageOffNotification NOTIFICATION-TYPE
            OBJECTS     { pethMainPseConsumptionPower }
            STATUS      current
            DESCRIPTION
                  " This Notification indicate PSE Threshold usage indication
                       off, the usage power is below the threshold."
            ::= { pethNotifications 5 }




   --
   -- Conformance Section
   --
   pethCompliances OBJECT IDENTIFIER ::= { pethConformance 1 }
   pethGroups      OBJECT IDENTIFIER ::= { pethConformance 2 }

   pethCompliance MODULE-COMPLIANCE
       STATUS  current
       DESCRIPTION
               "Describes the requirements for conformance to the
               Power Ethernet MIB."
       MODULE  -- this module
           GROUP   pethPsePortGroup
           DESCRIPTION
               "The pethPsePortGroup is mandatory for systems which
               implement PSE ports."
          GROUP   pethPdPortGroup
           DESCRIPTION
               "The pethPdPortGroup is mandatory for systems which
               implement PD Ports."
           GROUP   pethMainPseGroup
           DESCRIPTION
               "The pethMainPseGroup is mandatory for systems which
               implement main power supply within a PSE Device."
           GROUP   pethNotificationControlGroup
           DESCRIPTION
               "The pethNotificationControlGroup is mandatory for systems which
               implement PSE ports."
       ::= { pethCompliances 1 }

   pethPseCompliance MODULE-COMPLIANCE
       STATUS  current
       DESCRIPTION
               "Describes the requirements for conformance to the PSE and MID-
                Span."
       MODULE  -- this module
       MANDATORY-GROUPS {pethPsePortGroup, pethMainPseGroup,pethNotificationControlGroup}
        ::= { pethCompliances 2 }


   pethPdCompliance MODULE-COMPLIANCE

       STATUS  current
       DESCRIPTION
               "Describes the requirements for conformance to the PD."
       MODULE  -- this module
       MANDATORY-GROUPS {pethPdPortGroup}
        ::= { pethCompliances 3}

   pethPsePortGroup OBJECT-GROUP
       OBJECTS {
          pethPsePortAdminEnable,
          pethPsePortPowerPairsControlAbility,
          pethPsePortPowerDetectionControl,
          pethPsePortPowerPairs,
          pethPsePortDetectionStatus,
          pethPsePortPowerPriority,
          pethPsePortPowerMaintenanceStatus ,
          pethPsePortMPSAbsentCounter,
          pethPsePortOverCurrentCounter,
          pethPsePortType,
          pethPsePortPowerClassifications
       }
       STATUS  current
       DESCRIPTION
               "PSE Port Objects."
       ::= { pethGroups 1 }

   pethPdPortGroup OBJECT-GROUP
       OBJECTS {
          pethPdPortAdminEnable
       }
       STATUS  current
       DESCRIPTION
               "PD Port Objects."
       ::= { pethGroups 2 }

   pethMainPseGroup OBJECT-GROUP
       OBJECTS {
          pethMainPsePower,
          pethMainPseOperStatus,
          pethMainPseConsumptionPower,
          pethMainPseBackupPresent,
          pethMainPseBackupActivated,
          pethMainPseUsageThreshold,
          pethMainPseMaximumDcPower
       }
       STATUS  current
       DESCRIPTION
               "Main PSE Objects. "
       ::= { pethGroups 3 }

   pethNotificationControlGroup OBJECT-GROUP
       OBJECTS { pethNotificationControlEnable }
       STATUS  current
       DESCRIPTION
               "Notification Control  Objects. "
       ::= { pethGroups 4 }

   pethPsePortNotificationGroup NOTIFICATION-GROUP
       NOTIFICATIONS { pethPsePortOnOffNotification,
                       pethPsePortPowerMaintenanceStatusNotification}
       STATUS          current
       DESCRIPTION  "Pse Notification indications"
       ::= { pethCompliances 4 }

   pethMainPowerNotificationGroup NOTIFICATION-GROUP
       NOTIFICATIONS { pethMainPseBackUpActivatedNotification,
                       pethMainPowerUsageOnNotification,
                       pethMainPowerUsageOffNotification}
       STATUS          current
       DESCRIPTION  "Pse Notification indications"
       ::= { pethCompliances 5 }

   END
