module ieee802-ethernet-pse {
yang-version 1.1;
namespace
"urn:ieee:std:802.3:yang:ieee802-ethernet-pse";
prefix ieee802-pse;
import ietf-interfaces {
prefix if;
reference
"IETF RFC 8343";
}
import ietf-yang-types {
prefix yang;
reference
"IETF RFC 6991";
}
import ieee802-ethernet-interface {
prefix ieee802-eth-if;
}
organization
"IEEE 802.3 Ethernet Working Group
Web URL: http://www.ieee802.org/3/";
contact
"Web URL: http://www.ieee802.org/3/";
description
"This module contains YANG definitions for configuring and
managing ports with Power Over Ethernet feature defined by
IEEE 802.3. It provides functionality roughly equivalent to
that of the POWER-ETHERNET-MIB defined in IETF RFC 3621.";
revision "2019-06-21" {
description "Initial revision.";
reference
"IEEE Std 802.3-2018, unless dated explicitly";
}
typedef multi-pair-detection-state {
type enumeration {
enum "disabled" {
value 1;
description "PSE disabled.";
}
enum "searching" {
value 2;
description "PSE is searching.";
}
enum "deliveringPower" {
value 3;
description
"PSE is delivering power.";
}
enum "fault" {
value 4;
description "PSE fault detected.";
}
enum "test" {
value 5;
description "PSE test mode.";
}
enum "otherFault" {
value 6;
description
"PSE implementation specific fault detected.";
}
}
description
"Detection state of a multi-pair PSE.";
reference
"IEEE Std 802.3, 30.9.1.1.5";
}
typedef single-pair-detection-state {
type enumeration {
enum "unknown" {
value 1;
description
"True detection state unknown.";
}
enum "disabled" {
value 2;
description
"PoDL PSE is disabled.";
}
enum "searching" {
value 3;
description
"PoDL PSE is searching.";
}
enum "deliveringPower" {
value 4;
description
"PoDL PSE is delivering power.";
}
enum "sleep" {
value 5;
description
"PoDL PSE is in sleep state.";
}
enum "idle" {
value 6;
description "PoDL PSE is idle.";
}
enum "error" {
value 7;
description "PoDL PSE error.";
}
}
description
"Detection state of a PoDL PSE.";
reference
"IEEE Std 802.3, 30.15.1.1.3";
}
typedef power-class {
type enumeration {
enum "class0" {
value 1;
description "Class 0";
}
enum "class1" {
value 2;
description "Class 1";
}
enum "class2" {
value 3;
description "Class 2";
}
enum "class3" {
value 4;
description "Class 3";
}
enum "class4" {
value 5;
description "Class 4";
}
enum "class5" {
value 6;
description
"Class 5 (for PoDL-only)";
}
enum "class6" {
value 7;
description
"Class 6 (for PoDL-only)";
}
enum "class7" {
value 8;
description
"Class 7 (for PoDL-only)";
}
enum "class8" {
value 9;
description
"Class 8 (for PoDL-only)";
}
enum "class9" {
value 10;
description
"Class 9 (for PoDL-only)";
}
enum "unknown" {
value 11;
description
"Initializing, true Power Class not yet known
(only for PoDL PSE).";
}
}
description "Power class.";
reference
"IEEE Std 802.3, 30.9.1.1.6 aPSEPowerClassification and
IEEE Std 802.3, 30.15.1.1.6 aPoDLPSEDetectedPDPowerClass.";
}
identity pse-type {
base
description "Base type for PSE.";
}
identity multi-pair {
base pse-type;
description
"PSE supports IEEE Std 802.3, Clause 33.";
}
identity single-pair {
base pse-type;
description
"PSE support IEEE Std 802.3, Clause 104.";
}
identity powering-pairs {
base
description
"Base type for powering pairs.";
}
identity signal {
base powering-pairs;
description
"The signal pair is in use.";
}
identity spare {
base powering-pairs;
description
"The spare pair is in use.";
}
augment /if:interfaces/if:interface/ieee802-eth-if:ethernet {
description
"Augments ethernet interface configuration model with
nodes specific to DTE Power via MDI devices and ports";
container pse {
description
"DTE Power via MDI port configuration";
reference
"IEEE Std 802.3, 30.9.1 PoE PSE & IEEE Std 802.3, 30.15.1 PoDL
PSE";
leaf supported-pse-type {
type identityref {
base ieee802-pse:pse-type;
}
config false;
description
"PSE may support IEEE Std 802.3, Clause 33 or
IEEE Std 802.3, Clause 104.";
}
container multi-pair {
presence
"PSE port supports IEEE Std 802.3, Clause 33.";
description
"PSE port configuration in IEEE Std 802.3, 30.9.1.";
leaf pse-enable {
type boolean;
default 'false';
description
"When true enables the PSE function on the interface,
when false disables the PSE function on the interface.";
reference
"IEEE Std 802.3, 30.9.1.1.2 aPSEAdminState";
}
leaf powering-pairs {
type identityref {
base powering-pairs;
}
description
"Describes or controls the PSE pairs in use. If the value of
pairs-control-ability is true, this object is
writeable.";
reference
"IEEE Std 802.3, 30.9.1.1.4 aPSEPowerPairs";
}
leaf pairs-control-ability {
type boolean;
default 'true';
config false;
description
"Describes the ability to control switching the
power sourcing pins of the PSE.";
reference
"IEEE Std 802.3, 30.9.1.1.3 aPSEPowerPairsControlAbility";
}
leaf detection-status {
type multi-pair-detection-state;
config false;
description
"Describes the operational status of the port
PD detection.";
reference
"IEEE Std 802.3, 30.9.1.1.5 aPSEPowerDetectionStatus";
}
leaf classifications {
when
"../detection-status = 'deliveringPower'" {
description
"This node only applies when the detection status is
delivering power.";
}
type power-class;
config false;
description
"The power class of the PSE port.";
reference
"IEEE Std 802.3, 30.9.1.1.6 aPSEPowerClassfication";
}
container statistics {
config false;
description
"statistics information of the multi-pair port.";
leaf power-denied {
type yang:counter64;
description
"This counter is incremented when the PSE state diagram
enters the POWER_DENIED state, per IEEE Std 802.3,
Figure 33-9.";
reference
"IEEE Std 802.3, 30.9.1.1.8 aPSEPowerDeniedCounter";
}
leaf invalid-signature {
type yang:counter64;
description
"This counter is incremented when the PSE state diagram
enters the SIGNATURE_INVALID state per IEEE Std 802.3,
Figure 33-9.";
reference
"IEEE Std 802.3, 30.9.1.1.7 aPSEInvalidSignatureCounter";
}
leaf mps-absent {
type yang:counter64;
description
"This counter is incremented when the PSE
transitions directly from the POWER_ON state to the
IDLE state due to tmpdo_timer_done being asserted,
per IEEE Std 802.3, Figure 33-9.";
reference
"IEEE Std 802.3, 30.9.1.1.11 aPSEMPSAbsentCounter";
}
leaf overload {
type yang:counter64;
description
"This counter is incremented when the PSE state diagram
enters the ERROR_DELAY state due to the ovld_detected
variable being TRUE, per IEEE Std 802.3, Figure 33-9.";
reference
"IEEE Std 802.3, 30.9.1.1.9 aPSEOverLoadCounter";
}
leaf short {
type yang:counter64;
description
"This counter is incremented when the PSE state diagram
enters the ERROR_DELAY state due to the short_detected
variable being TRUE, per IEEE Std 802.3, Figure 33-9.";
reference
"IEEE Std 802.3, 30.9.1.1.10 aPSEShortCounter";
}
leaf cumulative-energy {
type yang:counter64;
units "millijoules";
description
"The cumulative energy supplied by the PSE as measured at
the MDI in millijoules.";
reference
"IEEE Std 802.3, 30.9.1.1.14 aPSECumulativeEnergy";
}
} // container statistics
leaf actual-power {
type decimal64 {
fraction-digits 4;
}
units "milliwatts";
config false;
description
"The actual power drawn by a PD over the port.";
reference
"IEEE Std 802.3, 30.9.1.1.12 aPSEActualPower";
}
leaf power-accuracy {
type int64;
units "milliwatts";
config false;
description
"An integer value indicating the accuracy
associated with power-accuracy in +/- milliwatts.";
reference
"IEEE Std 802.3, 30.9.1.1.13 aPSEPowerAccuracy";
}
} // container multi-pair
container single-pair {
presence
"PSE port working in PoDL.";
description
"PoDL PSE configuration as defined in
IEEE Std 802.3, 30.15.1.";
leaf pse-enable {
type boolean;
default 'false';
description
"When true enables the PSE function on the interface,
when false disables the PSE function on the interface.";
reference
"IEEE Std 802.3, 30.15.1.1.2 aPoDLPSEAdminState";
}
leaf detection-status {
type single-pair-detection-state;
config false;
description
"Indicates the current status of the PoDL PSE.";
reference
"IEEE Std 802.3, 30.15.1.1.3 aPoDLPSEPowerDetectionStatus";
}
leaf podl-type {
type enumeration {
enum "unknown" {
value 0;
description
"Unknown PSE type.";
}
enum "typeA" {
value 1;
description "TypeA";
}
enum "typeB" {
value 2;
description "TypeB";
}
enum "typeC" {
value 3;
description "TypeC";
}
enum "typeD" {
value 4;
description "TypeD";
}
}
config false;
description
"PSE type specified in IEEE Std 802.3, 104.4.1.";
}
leaf detected-pd-type {
when
"../detection-status = 'deliveringPower'" {
description
"This node only applies when the detection status is
delivering power.";
}
type enumeration {
enum "unknown" {
value 0;
description "Unknown";
}
enum "typeA" {
value 1;
description "TypeA";
}
enum "typeB" {
value 2;
description "TypeB";
}
enum "typeC" {
value 3;
description "TypeC";
}
enum "typeD" {
value 4;
description "TypeD";
}
}
config false;
description
"Indicates the Type of the detected PoDL PD as specified in
IEEE Std 802.3, 104.5.1.";
reference
"IEEE Std 802.3, 30.15.1.1.5 aPoDLPSEDetectedPDType";
}
leaf pd-power-class {
when
"../detection-status = 'deliveringPower'" {
description
"This node only applies when the detection status is
delivering power.";
}
type power-class;
config false;
description
"Power class of the PD detected on the PSE port.";
reference
"IEEE Std 802.3, 30.15.1.1.6 aPoDLPSEDetectedPDPowerClass";
}
container statistics {
config false;
description
"Statistics information of the single-pair PSE";
leaf power-denied {
type yang:counter64;
description
"This counter is incremented when the PoDL PSE state
diagram variable power_available transitions from true
to false (see IEEE Std 802.3, 104.4.3.3).";
reference
"IEEE Std 802.3, 30.15.1.1.9 aPoDLPSEPowerDeniedCounter";
}
leaf invalid-signature {
type yang:counter64;
description
"This counter is incremented when the PSE state diagram
enters the SIGNATURE_INVALID state per
IEEE Std 802.3, Figure 33-9.";
reference
"IEEE Std 802.3, 30.15.1.1.7
aPoDLPSEInvalidSignatureCounter";
}
leaf invalid-class {
type yang:counter64;
description
"This counter is incremented when the PoDL PSE state
diagram variable tclass_timer_done transitions from false
to true or when the valid_class variable transitions from
true to false (see IEEE Std 802.3, 104.4.3.3).";
reference
"IEEE Std 802.3, 30.15.1.1.8 aPoDLPSEInvalidClassCounter";
}
leaf overload {
type yang:counter64;
description
"This counter is incremented when the PSE state diagram
variable overload_held transitions from false to true
(see IEEE Std 802.3, 104.4.3.3).";
reference
"IEEE Std 802.3, 30.15.1.1.10 aPoDLPSEOverLoadCounter";
}
leaf fvs-absence {
type yang:counter64;
description
"Maintain Full Voltage Signature absent counter.
This counter is incremented when the PoDL PSE state
diagram variable mfvs_timeout transitions from false to
true (see IEEE Std 802.3, 104.4.3.3).";
reference
"IEEE Std 802.3, 30.15.1.1.11
aPoDLPSEMaintainFullVoltageSignatureAbsentCounter";
}
leaf cumulative-energy {
type yang:counter64;
units "millijoules";
description
"A count of the cumulative energy supplied by the PoDL
PSE, measured at the MDI, and expressed in units of
millijoules.";
reference
"IEEE Std 802.3, 30.15.1.1.14 aPoDLPSECumulativeEnergy";
}
} // container statistics
leaf actual-power {
type decimal64 {
fraction-digits 4;
}
units "milliwatts";
config false;
description
"An integer value indicating present (actual) power being
supplied by the PoDL PSE as measured at the MDI in
milliwatts.";
reference
"IEEE Std 802.3, 30.15.1.1.12 aPoDLPSEActualPower";
}
leaf power-accuracy {
type int64;
units "milliwatts";
config false;
description
"A signed integer value indicating the accuracy associated
with power-accuracy in milliwatts.";
reference
"IEEE Std 802.3, 30.15.1.1.13 aPoDLPSEPowerAccuracy";
}
} // container single-pair
} // container pse
}
} // module ieee802-ethernet-pse