module ieee802-ethernet-pse{ yang-version 1.1; namespace "urn:ieee:std:802.3:yang:ieee802-ethernet-pse"; prefix pse; /**imports**/ import ietf-interfaces { prefix if; } import ieee802-ethernet-interface { prefix eth-if; } organization "IEEE 802.3 Ethernet Working Group Web URL: http://www.ieee802.org/3/"; contact "Web URL: http://www.ieee802.org/3/cf/"; description "This module contains YANG defintions 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 RFC3621."; revision 2017-10-18 { description "Restructed to be NMDA compliant."; reference "IEEE P802.3.2 (IEEE 802.3cf) YANG Data Model Definitions Task Force"; } revision 2017-09-11{ description "revision for D1.2"; reference "P802.3.2 D1.2"; } revision 2017-03-02{ description "Initial revision of YANG module for IEEE 802.3 PSE."; reference "IEEE P802.3.2 (IEEE P802.3cf) YANG Data Model Definitions Task Force"; } revision 2017-01-25{ description "revision for IEEE 802.3 PSE. changes from previous version: - remove power management into a separate module. - provide the pse module for both multi-pair PSE and single pair PSE (PoDL PSE). "; reference "IEEE P802.3.2 (IEEE 802.3cf) YANG Data Model Definitions Task Force"; } revision 2016-12-26{ description "Initial revision of YANG model for IEEE 802.3 multi-pair PSE. changes from previous version: - augement from ieee802-ethernet-interface and keep consist with it. - change the module name to multi-pair pse."; reference "IEEE P802.3.2 (IEEE 802.3cf) YANG Data Model Definitions Task Force"; } /*Identities&typedef*/ typedef poe-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 podl-detection-state{ type enumeration { enum unkown { value 1; description "true state unknown"; } enum disabled { value 2; description "PoDL PSE is disabled"; } enum searching { value 3; description "PoDL PSE searching"; } enum deliveringPower { value 4; description "PoDL PSE delivering power"; } enum sleep { value 5; description "PoDL PSE sleep"; } enum idle { value 6; description "PoDL PSE idle"; } enum error { value 7; description "PoDL PSE error"; } } description "detection state of a PoDL PSE"; reference "IEEE Std 802.3, 30.15.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 "initialzing, true state 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 { description "Base type for pse."; } identity poe { base pse-type; description "Pse supports CL33."; } identity podl-pse { base pse-type; description "Support CL104."; } identity powering-pairs { 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."; } /* * Configuration */ /*pse port*/ augment "/if:interfaces/if:interface/eth-if:ethernet" { description "Augements 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 pse:pse-type ; } config false; description "Pse may support CL33 for AT pse or CL104 for PoDL pse."; } container poe { presence "Pse port supports CL33."; description "AT PSE port configuration in IEEE Std 802.3, 30.9.1."; leaf pse-enable { type boolean; default false; description "whether to enable 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 pairs in use. If the value of pethPsePortPowerPairsControl 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 capability of controlling the power pairs functionality to switch pins for sourcing power."; reference "IEEE Std 802.3, 30.9.1.1.3 aPSEPowerPairsControlAbility"; } leaf detection-status { type poe-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 and "; } leaf classifications { when "../detection-status = 'deliveringPower'" { description "This node only apply when the detection status is delivering power."; } type power-class; config false; description "power class of the port"; reference "IEEE Std 802.3, 30.9.1.1.6 aPSEPowerClassfication"; } container poe-statistics { config false; description "statistics information of the poe port"; leaf power-denied { type uint32; description "This counter is incremented when the PSE state diagram enters the state POWER_DENIED"; reference "IEEE Std 802.3, 30.9.1.1.8 aPSEPowerDeniedCounter"; } leaf invalid-signature { type uint32; description "This counter is incremented when the PSE state diagram enters the state SIGNATURE_INVALID."; reference "IEEE Std 802.3, 30.9.1.1.7 aPSEInvalidSignatureCounter"; } leaf mps-absent { type uint32; 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.3, 30.9.1.1.11 aPSEMPSAbsentCounter"; } leaf overload { type uint32; description "This counter is incremented when the PSE state diagram enters the state ERROR_DELAY_OVER."; reference "IEEE Std 802.3, 30.9.1.1.9 aPSEOverLoadCounter"; } leaf short { type uint32; description "This counter is incremented when the PSE state diagram enters the state ERROR_DELAY_SHORT."; reference "IEEE Std 802.3, 30.9.1.1.10 aPSEShortCounter"; } leaf cumulative-energy { type uint32; units 'millijoule'; 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"; } } leaf actual-power { type decimal64 { fraction-digits 4 ; } units 'milliwatt'; 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 uint32; units 'milliwatt'; config false; description "An integer value indicating the accuracy associated with aPSEActualPower in +/- milliwatts."; reference "IEEE Std 802.3, 30.9.1.1.13 aPSEPowerAccuracy"; } } container podl { 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 "whether to enable the PSE function on the interface."; reference "IEEE Std 802.3, 30.15.1.1.2 aPoDLPSEAdminState"; } leaf detection-status { type podl-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-pse-type { type enumeration { enum unknown { description "unknown pse type"; } enum typeA { description "typeA"; } enum typeB { description "typeB"; } enum typeC { description "typeC"; } enum typeD { 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 apply when the detection status is delivering power."; } type enumeration { enum unknown { description "unknown"; } enum typeA { description "typeA"; } enum typeB { description "typeB"; } enum typeC { description "typeC"; } enum typeD { 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 apply when the detection status is delivering power."; } type power-class; config false; description "power class of the port"; reference "IEEE Std 802.3, 30.15.1.1.6 aPoDLPSEDetectedPDPowerClass"; } container podl-statistics { config false; description "statistics information of the PoDL PSE"; leaf power-denied { type uint32; 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 uint32; description "This counter is incremented when the PSE state diagram enters the state SIGNATURE_INVALID."; reference "IEEE Std 802.3, 30.15.1.1.7 aPoDLPSEInvalidSignatureCounter"; } leaf invalid-class { type uint32; 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 uint32; 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 uint32; 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 uint32; 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"; } } leaf actual-power { type decimal64 { fraction-digits 4 ; } units 'watt'; 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 uint32; units 'milliwatt'; config false; description "A signed integer value indicating the accuracy associated with aPoDLPSEActualPower in milliwatts.."; reference "IEEE Std 802.3, 30.15.1.1.13 aPoDLPSEPowerAccuracy"; } } } } }