RFC 3621

Power Ethernet MIB

πŸ“… published December 2003, from ietf

RFC 3621: Power Ethernet MIB πŸŽ€ (Part 1 of 4)

okay bestie, this one is all about Power Ethernet, which means powering devices like phones through the same Ethernet cable that carries their data. πŸ”Œβœ¨ It was written up by A. Berger from PowerDsine Inc. and D. Romascanu from Avaya. It's a Standards Track document, dated December 2003, and it's part of the Network Working Group's work. πŸ’…


Status of this Memo

ngl this section is the legal-but-important bit. This document is an Internet standards track protocol for the Internet community, and it's asking everyone to talk about it and suggest improvements. 🫢 If you want the current standardization state and status of this protocol, check the current edition of the "Internet Official Protocol Standards" (STD 1). Distribution of this memo is unlimited, so share away πŸ¦‹

Copyright (C) The Internet Society (2003). All Rights Reserved. 🌸

Abstract

This memo defines a portion of the Management Information Base (MIB) that network management protocols use across the Internet community. 🧚 It extends the Ethernet-like Interfaces MIB with a set of objects for managing Power Sourcing Equipment (PSE). Iconic. πŸ‘‘

Table of Contents

1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  2
2.  The Internet-Standard Management Framework . . . . . . . . . .  2
3.  Overview . . . . . . . . . . . . . . . . . . . . . . . . . . .  2
4.  MIB Structure. . . . . . . . . . . . . . . . . . . . . . . . .  3
5.  Definitions. . . . . . . . . . . . . . . . . . . . . . . . . .  3
6.  Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 16
7.  References . . . . . . . . . . . . . . . . . . . . . . . . . . 16
    7.1.  Normative References . . . . . . . . . . . . . . . . . . 16
    7.2.  Informative References . . . . . . . . . . . . . . . . . 17
8.  Intellectual Property Statement. . . . . . . . . . . . . . . . 17
9.  Security Considerations. . . . . . . . . . . . . . . . . . . . 18
10. Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . 19
11. Full Copyright Statement . . . . . . . . . . . . . . . . . . . 20

1. Introduction ✨

bestie, this memo is all about a set of MIB objects for managing Power Ethernet [IEEE-802.3af] Power Sourcing Equipment (PSE). πŸ”Œ Basically it's the management toolkit for the thing supplying the power.

Now the key words. The words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document get read the way [RFC2119] describes. πŸ’– These are the official strength words, so don't mess with them.

2. The Internet-Standard Management Framework 🧚

If you want the full tea on the Internet-Standard Management Framework docs, go check section 7 of RFC 3410 [RFC3410]. πŸ“š

Managed objects live in a virtual information store called the Management Information Base, or MIB. πŸ—‚οΈ You usually reach MIB objects through the Simple Network Management Protocol (SNMP). The objects get defined with the rules in the Structure of Management Information (SMI). This memo's MIB module follows SMIv2, which is described in STD 58, RFC 2578 [RFC2578], STD 58, RFC 2579 [RFC2579] and STD 58, RFC 2580 [RFC2580]. πŸ’…

3. Overview πŸ¦‹

IP telephony is a big deal now because voice apps can run on the same infrastructure as data apps. That's how Ethernet IP phones showed up, and they do the same stuff as traditional phones. πŸ“ž Powering the phone through the same cable that carries the signal is something people just take for granted now, and it's lowkey genius. ⭐ The IEEE 802.3 Working Group started standardizing this, currently known as the IEEE 802.3af work [IEEE-802.3af].

Here's the tea: the IEEE 802.3af WG didn't define a full management interface. It only defined the hardware registers that let someone build management interfaces for a powered Ethernet device. 🫠 This MIB module extends the Ethernet-like Interfaces MIB [RFC3635] with the management objects needed to manage powered Ethernet devices and ports. Slay. πŸ’œ

The abbreviations below are defined in [IEEE-802.3af] and mean the same thing in this document:

  • PSE - Power Sourcing Equipment;
  • PD - Powered Device

4. MIB Structure πŸ“

These MIB objects sort into three MIB groups. 🧁

First up is the pethPsePortTable. It holds the objects for configuring and describing the status of ports on a PSE device. Examples of PSE devices are Ethernet switches that support power Ethernet, and mid-span boxes. πŸ”₯

Next is the pethMainPseObjects MIB group. It defines the management objects for a managed main power source in a PSE device. Ethernet switches are one example of boxes that would support these objects. ⚑

Last, the pethNotificationControlTable includes objects that control whether notifications get sent from the agent to a management application. πŸ””

5. Definitions πŸ’–

Here's the actual MIB module. Don't touch a single character, it's a spec. πŸ™ˆ

POWER-ETHERNET-MIB DEFINITIONS ::= BEGIN

IMPORTS
           MODULE-IDENTITY, mib-2, OBJECT-TYPE, Integer32,
           Gauge32, Counter32, NOTIFICATION-TYPE
                   FROM SNMPv2-SMI
           TruthValue
                   FROM SNMPv2-TC
           MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
                   FROM SNMPv2-CONF

            SnmpAdminString
                    FROM SNMP-FRAMEWORK-MIB;

    powerEthernetMIB MODULE-IDENTITY

         LAST-UPDATED    "200311240000Z"  -- November 24, 2003
         ORGANIZATION "IETF Ethernet Interfaces and Hub MIB
                       Working Group"

         CONTACT-INFO
         "
          WG Charter:
          http://www.ietf.org/html.charters/hubmib-charter.html

         Mailing lists:
          General Discussion: hubmib@ietf.org
          To Subscribe: hubmib-requests@ietf.org
          In Body: subscribe your_email_address

         Chair: Dan Romascanu
          Avaya
          Tel:  +972-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 managing 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.

             Copyright (c) The Internet Society (2003).  This version
             of this MIB module is part of RFC 3621; See the RFC
             itself for full legal notices."

       REVISION    "200311240000Z"  -- November 24, 2003
       DESCRIPTION "Initial version, published as RFC 3621."
       ::= { mib-2 105 }

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

Okay so, this is where the port table lives, bestie, and it is the MAIN character of the whole MIB πŸ’…πŸ”₯ Each row is one power Ethernet port on a PSE (the box that sources the power), and every column tells you something about what that port is doing πŸ¦‹

-- 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 of power Ethernet ports on a Power Source
            Entity (PSE) device.  This group will be implemented in
            managed power Ethernet switches and mid-span devices.
            Values of all read-write objects in this table are
            persistent at restart/reboot."
       ::= { 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
          Integer32,
       pethPsePortIndex
          Integer32,
       pethPsePortAdminEnable
          TruthValue,
       pethPsePortPowerPairsControlAbility
          TruthValue,
       pethPsePortPowerPairs
          INTEGER,
       pethPsePortDetectionStatus
          INTEGER,
       pethPsePortPowerPriority
          INTEGER,

       pethPsePortMPSAbsentCounter
          Counter32,
       pethPsePortType
          SnmpAdminString,
       pethPsePortPowerClassifications
          INTEGER,
       pethPsePortInvalidSignatureCounter
          Counter32,
       pethPsePortPowerDeniedCounter
          Counter32,
       pethPsePortOverLoadCounter
          Counter32,
       pethPsePortShortCounter
          Counter32
  }

So the table is a sequence of entries, and each entry is indexed by two things: a group index (the box in a stack or the module in a rack 🏠) and a port index (the port inside that group) ✨ The table is also a big deal for persistence, because the read-write values in it stick around across a restart or reboot 🌸

Now the columns, one by one, bestie πŸŽ€

     pethPsePortGroupIndex OBJECT-TYPE
       SYNTAX      Integer32 (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.
            Furthermore, the same value MUST be used in this variable,
            pethMainPseGroupIndex, and pethNotificationControlGroupIndex
            to refer to a given box in a stack or module in the rack."
       ::= { pethPsePortEntry 1 }

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

     pethPsePortAdminEnable OBJECT-TYPE
    SYNTAX TruthValue
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "true (1) An interface which can provide the PSE functions.
         false(2) The interface will act as it would if it had no PSE
         function."

    REFERENCE
      "IEEE Std 802.3af Section 30.9.1.1.2 aPSEAdminState"
    ::= { 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.  When false the PSE Pinout
         Alternative used cannot be controlled through the
         PethPsePortAdminEnable attribute."
    REFERENCE
      "IEEE Std 802.3af Section 30.9.1.1.3
       aPSEPowerPairsControlAbility"
    ::= { 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) 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"
    ::= { pethPsePortEntry 5 }

     pethPsePortDetectionStatus OBJECT-TYPE
    SYNTAX INTEGER   {
             disabled(1),
             searching(2),
               deliveringPower(3),
               fault(4),
               test(5),
               otherFault(6)
     }

    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 DISABLED.
         A value of deliveringPower(3) - indicates that the PSE State
         diagram is in the state POWER_ON for a duration greater than
         tlim max (see IEEE Std 802.3af Table 33-5 tlim).
         A value of fault(4) - indicates that the PSE State diagram is
         in the state TEST_ERROR.
         A value of test(5) - indicates that the PSE State diagram is
         in the state TEST_MODE.
         A value of otherFault(6) - indicates that the PSE State
         diagram is in the state IDLE due to the variable
         error_conditions.
         A value of searching(2)- indicates the PSE State diagram is
         in a state other than those listed above."
    REFERENCE
      "IEEE Std 802.3af Section 30.9.1.1.5
       aPSEPowerDetectionStatus"
    ::= { pethPsePortEntry 6 }

     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 7 }

   pethPsePortMPSAbsentCounter OBJECT-TYPE
    SYNTAX Counter32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
          "This counter is incremented when the PSE state diagram
             transitions directly from the state POWER_ON to the
             state IDLE due to tmpdo_timer_done being asserted."
    REFERENCE
      "IEEE Std 802.3af Section 30.9.1.1.11
       aPSEMPSAbsentCounter"
    ::= { pethPsePortEntry 8 }

   pethPsePortType OBJECT-TYPE
    SYNTAX SnmpAdminString
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "A manager will set the value of this variable to indicate
         the type of powered device that is connected to the port.
         The default value supplied by the agent if no value has
         ever been set should be a zero-length octet string."
    ::= { pethPsePortEntry 9 }

    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 meaning of the classification labels is defined in the
        IEEE specification.

       This variable is valid only while a PD is being powered,
        that is, while the attribute pethPsePortDetectionStatus
        is reporting the enumeration deliveringPower."
    REFERENCE
      "IEEE Std 802.3af Section 30.9.1.1.6
       aPSEPowerClassification"
   ::= { pethPsePortEntry 10 }

   pethPsePortInvalidSignatureCounter OBJECT-TYPE
    SYNTAX Counter32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
       "This counter is incremented when the PSE state diagram
         enters the state SIGNATURE_INVALID."
    REFERENCE
          "IEEE Std 802.3af Section 30.9.1.1.7
           aPSEInvalidSignatureCounter"
    ::= { pethPsePortEntry 11 }

   pethPsePortPowerDeniedCounter OBJECT-TYPE
    SYNTAX Counter32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
          "This counter is incremented when the PSE state diagram
             enters the state POWER_DENIED."
    REFERENCE
      "IEEE Std 802.3af Section 30.9.1.1.8
       aPSEPowerDeniedCounter"
    ::= { pethPsePortEntry 12 }

   pethPsePortOverLoadCounter OBJECT-TYPE
    SYNTAX Counter32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
          "This counter is incremented when the PSE state diagram
             enters the state ERROR_DELAY_OVER."
    REFERENCE
      "IEEE Std 802.3af Section 30.9.1.1.9
       aPSEOverLoadCounter"
    ::= { pethPsePortEntry 13 }

   pethPsePortShortCounter OBJECT-TYPE
    SYNTAX Counter32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
          "This counter is incremented when the PSE state diagram
             enters the state ERROR_DELAY_SHORT."
    REFERENCE
      "IEEE Std 802.3af Section 30.9.1.1.10
       aPSEShortCounter"
    ::= { pethPsePortEntry 14 }

-- Main PSE Objects

pethMainPseObjects       OBJECT IDENTIFIER ::= { pethObjects 3 }

Phew, that's the whole port table, and honestly it's giving organised πŸ§šπŸ’œ Every object hangs off pethPsePortEntry, and the numbers in the ::= lines are just the slot each column takes in the row.

The pethMainPseObjects line at the bottom is where the next chunk picks up 🌈✨

Main PSE time! βš‘πŸ’– This is where the main power source gets its moment in the spotlight. Here's the table, the entry, and its objects, all exactly as written.

pethMainPseTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF PethMainPseEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "A table of objects that display and control attributes
            of the main power source in a PSE  device.  Ethernet
            switches are one example of boxes that would support
            these objects.
            Values of all read-write objects in this table are
            persistent at restart/reboot."
       ::= { 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
           Integer32,
       pethMainPsePower
           Gauge32 ,
       pethMainPseOperStatus
           INTEGER,
       pethMainPseConsumptionPower
           Gauge32,
       pethMainPseUsageThreshold
           Integer32
   }
     pethMainPseGroupIndex OBJECT-TYPE
       SYNTAX       Integer32 (1..2147483647)
       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.  Furthermore, the same
           value MUST be used in this variable, pethPsePortGroupIndex,
           and pethNotificationControlGroupIndex to refer to a
           given box in a stack or module in a rack."
       ::= { pethMainPseEntry 1 }

     pethMainPsePower OBJECT-TYPE
       SYNTAX      Gauge32  (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 }

     pethMainPseUsageThreshold OBJECT-TYPE
       SYNTAX      Integer32  (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 5 }

Next up: the notification control objects πŸ””πŸ’…

-- 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.
            Values of all read-write objects in this table are
            persistent at restart/reboot."
       ::= { 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
           Integer32,
       pethNotificationControlEnable
           TruthValue
   }
     pethNotificationControlGroupIndex OBJECT-TYPE
       SYNTAX      Integer32 (1..2147483647)
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This variable uniquely identifies the group.  Group
            means box in the stack, module in a rack and the value
            1 MUST be used for non-modular devices.  Furthermore,
            the same value MUST be used in this variable,
            pethPsePortGroupIndex, and
            pethMainPseGroupIndex to refer to a given box in a
            stack or module in a rack. "
       ::= { pethNotificationControlEntry 1 }

      pethNotificationControlEnable  OBJECT-TYPE
       SYNTAX             TruthValue
       MAX-ACCESS         read-write
       STATUS             current
       DESCRIPTION
          "This object controls, on a per-group basis, whether
             or not notifications from the agent are enabled.  The
             value true(1) means that notifications are enabled; the
             value false(2) means that they are not."
       ::= { pethNotificationControlEntry 2 }

Now the notifications section 🚨✨

--
-- 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.
               At least 500 msec must elapse between notifications
               being emitted by the same object instance."
          ::= { pethNotifications 1 }

     pethMainPowerUsageOnNotification NOTIFICATION-TYPE
         OBJECTS     { pethMainPseConsumptionPower  }
         STATUS      current
         DESCRIPTION
           " This Notification indicate PSE Threshold usage
               indication is on, the usage power is above the
               threshold.  At least 500 msec must elapse between
               notifications being emitted by the same object
               instance."
         ::= { pethNotifications 2 }

      pethMainPowerUsageOffNotification NOTIFICATION-TYPE
         OBJECTS     { pethMainPseConsumptionPower }
         STATUS      current
         DESCRIPTION
           " This Notification indicates PSE Threshold usage indication
               off, the usage power is below the threshold.
               At least 500 msec must elapse between notifications being
               emitted by the same object instance."
         ::= { pethNotifications 3 }

Last stretch of the MIB: conformance, groups, and the end of the module πŸŽ€

--
-- 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
           MANDATORY-GROUPS { pethPsePortGroup,
                              pethPsePortNotificationGroup,
                              pethNotificationControlGroup
                            }
           GROUP   pethMainPseGroup
           DESCRIPTION
               "The pethMainPseGroup is mandatory for PSE systems
                that implement a main power supply."
           GROUP   pethMainPowerNotificationGroup
           DESCRIPTION
               "The pethMainPowerNotificationGroup is mandatory for
               PSE systems that implement a main power supply."
       ::= { pethCompliances 1 }

pethPsePortGroup OBJECT-GROUP
    OBJECTS {
       pethPsePortAdminEnable,
       pethPsePortPowerPairsControlAbility,
       pethPsePortPowerPairs,
       pethPsePortDetectionStatus,
       pethPsePortPowerPriority,
       pethPsePortMPSAbsentCounter,
       pethPsePortInvalidSignatureCounter,
       pethPsePortPowerDeniedCounter,
       pethPsePortOverLoadCounter,
       pethPsePortShortCounter,
       pethPsePortType,
       pethPsePortPowerClassifications
    }
    STATUS  current
    DESCRIPTION
          "PSE Port objects."
    ::= { pethGroups 1 }

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

pethNotificationControlGroup OBJECT-GROUP

    OBJECTS {
       pethNotificationControlEnable
    }
    STATUS  current
    DESCRIPTION
            "Notification Control  Objects. "
    ::= { pethGroups 3 }

pethPsePortNotificationGroup NOTIFICATION-GROUP
    NOTIFICATIONS { pethPsePortOnOffNotification}
    STATUS           current
    DESCRIPTION  "Pse Port Notifications."
    ::= { pethGroups 4 }

  pethMainPowerNotificationGroup NOTIFICATION-GROUP
     NOTIFICATIONS { pethMainPowerUsageOnNotification,
                      pethMainPowerUsageOffNotification}
    STATUS           current
    DESCRIPTION  "Main PSE Notifications."
      ::= { pethGroups 5 }

END

6. Acknowledgements 🫢

This doc was cooked up by the Ethernet Interfaces and Hub MIB WG πŸ‘‘. The authors wanna give a huge shoutout to C.M. Heard and David Law for their special contributions πŸ’œ.

7. References ✨

7.1. Normative References πŸ“š

  • [RFC2026] Bradner, S., "The Internet Standards Process - Revision 3", BCP 9, RFC 2026, October 1996.
  • [RFC2578] McCloghrie, K., Perkins, D. and J. Schoenwaelder, "Structure of Management Information Version 2 (SMIv2)", STD 58, RFC 2578, April 1999.
  • [RFC2579] McCloghrie, K., Perkins, D. and J. Schoenwaelder, "Textual Conventions for SMIv2", STD 58, RFC 2579, April 1999.
  • [RFC2580] McCloghrie, K., Perkins, D. and J. Schoenwaelder, "Conformance Statements for SMIv2", STD 58, RFC 2580, April 1999.
  • [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
  • [RFC3635] Flick, J., "Definitions of Managed Objects for the Ethernet-like Interface Types", RFC 3635, September 2003.
  • [RFC3411] Harrington, D., Presuhn, R. and B. Wijnen, "An Architecture for Describing Simple Network Management Protocol (SNMP) Management Frameworks", STD 62, RFC 3411, December 2002.
  • [IEEE-802.3af] IEEE 802.3 Working Group, "IEEE Std 802.3af-2003 - Data Terminal Equipment (DTE) Power via Media Dependent Interface (MDI)", July 2003.

7.2. Informative References 🌸

  • [RFC3410] Case, J., Mundy, R., Partain, D. and B. Stewart, "Introduction and Applicability Statements for Internet-Standard Management Framework", RFC 3410, December 2002.

8. Intellectual Property Statement ✨

Okay, IP time, bestie πŸŽ€ The IETF doesn't take a side on whether any intellectual property rights apply to the tech in this document, whether you can get a license for them, or whether they've even looked for any. If you want the nitty-gritty on how the IETF handles rights for standards-track and standards-related docs, check out BCP-11 πŸ“š Any claims of rights that were made available for publication, plus any licensing assurances, or the outcome of anyone trying to get a general license or permission to use proprietary rights for this spec, can be requested from the IETF Secretariat πŸ’Œ

The IETF also invites anyone to flag any copyrights, patents, patent applications, or other proprietary rights that might cover technology needed to practice this standard. Send that info to the IETF Executive Director 🫢

9. Security Considerations

Okay, this part is seriously important, so grab your snacks and listen up 😭πŸ”₯ This MIB module defines a bunch of management objects with a MAX-ACCESS of read-write. Those objects can be sensitive or vulnerable in some network setups πŸ™ˆ If you allow SET operations in a non-secure environment without proper protection, it can really mess with network operations. Not a vibe πŸ’€

Setting these objects to the wrong values can mess up how the PSE runs, and it's even possible that the PD won't get power from the PSE port ⚑

   pethPsePortAdminEnable
   pethPsePortPowerPairs
   pethPsePortPowerPriority
   pethPsePortType

Setting these objects to the wrong values can cause way too many traps to be sent to network management stations πŸ“’

   pethMainPseUsageThreshold
   pethNotificationControlEnable

Some of the readable objects here (the ones with a MAX-ACCESS other than not-accessible) can also be sensitive or vulnerable in some environments. These are the ones to watch πŸ‘€

   pethPsePortPowerPairsControlAbility
   pethPsePortPowerPriority
   pethPsePortPowerClassifications

So it's really important to control even GET and/or NOTIFY access to these, and maybe even encrypt their values when you send them over the network with SNMP πŸ”

Real talk: SNMP versions before SNMPv3 didn't have adequate security. Even if your network is secure (say, you're using IPSec), there's still no control over who on that secure network can GET or SET (read, change, create, or delete) the objects in this MIB module. Lowkey scary 😱

It is RECOMMENDED that implementers look at the security features of the SNMPv3 framework (see [RFC3410], section 8), including full support for the SNMPv3 cryptographic mechanisms for authentication and privacy πŸ›‘οΈ

Also, deploying SNMP versions before SNMPv3 is NOT RECOMMENDED πŸ™…β€β™€οΈ Instead, it is RECOMMENDED to deploy SNMPv3 and turn on cryptographic security. After that, it's on the customer or operator to make sure the SNMP entity that gives access to this MIB module is set up so only the principals (users) with legitimate rights can GET or SET (change, create, or delete) the objects πŸ’…

10. Authors' Addresses

Meet the authors! 🧚

   Avi Berger
   PowerDsine Inc.
   1, Hanagar St., P.O. Box 7220
   Hod Hasharon 45421,
   Israel

   Phone: +972-9-7755100 Ext 307
   Fax:   +972-9-7755120
   EMail: avib@PowerDsine.com


   Dan Romascanu
   Avaya
   Atidim Technology Park, Bldg. #3
   Tel Aviv, 61131
   Israel

   Phone: +972-3-645-8414
   EMail: dromasca@avaya.com

Here's the legal stuff, kept word for word so nothing gets lost in translation 🌈

   Copyright (C) The Internet Society (2003).  All Rights Reserved.

   This document and translations of it may be copied and furnished to
   others, and derivative works that comment on or otherwise explain it
   or assist in its implementation may be prepared, copied, published
   and distributed, in whole or in part, without restriction of any
   kind, provided that the above copyright notice and this paragraph are
   included on all such copies and derivative works.  However, this
   document itself may not be modified in any way, such as by removing
   the copyright notice or references to the Internet Society or other
   Internet organizations, except as needed for the purpose of
   developing Internet standards in which case the procedures for
   copyrights defined in the Internet Standards process must be
   followed, or as required to translate it into languages other than
   English.

   The limited permissions granted above are perpetual and will not be
   revoked by the Internet Society or its successors or assignees.

   This document and the information contained herein is provided on an
   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
   TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
   BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
   HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Acknowledgement πŸ’–

Funding for the RFC Editor function is currently provided by the Internet Society. Thank you, Internet Society, you're the real MVP πŸ‘‘βœ¨

πŸ“¦ where this page comes from