module ieee802-pse{ namespace "urn:ieee:params:xml:ns:yang:ieee802-pse"; prefix pse; /**imports**/ import ietf-interfaces { prefix if; } import ieee802-ethernet-interface { prefix eth-if; } /**Meta information**/ organization "Web URL: http://www.ieee802.org/3/ Working Group Chair: David Law dlaw@hpe.com Working Group Vice-chair: Adam Healey adam.healey@broadcom.com YANG Data Model Definitions Task Force Chair: Yan Zhuang zhuangyan.zhuang@huawei.com Editor: Fei Li lifei@huawei.com"; contact "Fei Li - lifei@huawei.com"; description "This module contains YANG defintions for confirguring and managing ports with Power Over Ethernet feature defined by IEEE 802.3. It provdes funcitonality roughly equivalent to that of the POWER-ETHERNET-MIB defined in RFC3621."; revision 2017-03-02{ description "revision for IEEE 802.3 PSE. changes from previous version: - remove notification container. "; reference "IEEE P802.3.2 (IEEE 802.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 pse-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"; } enum class6 { value 7; description "class 6"; } enum class7 { value 8; description "class 7"; } enum class8 { value 9; description "class 8"; } enum class9 { value 10; description "class 9. only for PoDL PSE"; } } description "power class"; reference "IEEE Std 802.3, 30.9.1.1.6 aPSEPowerClassification"; } identity pse-pair-mode { description "Base type for wire pair mode for pse power to pd."; } identity multi-pair-mode { description "Pse using 2 or 4 pair wire to supply power to pd."; } identity podl-mode { description "Pse using only 1 pair wire to supply power to pd."; } /* * Configuration */ /*poe 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 poe-pse { description "DTE Power via MDI port configuration"; reference "802.3, 30.9.1 Multi-pair PSE & 802.3, 30.15.1 PoDL PSE"; container multi-pair { presence "Pse port working in multi-pair mode."; description "Multi-pair PSE port configuration in std802.3 30.9.1."; leaf pse-enable { type boolean; default false; description "whether to enable the PSE function on the interface."; reference "802.3 30.9.1.1.2 aPSEAdminState"; } leaf powering-pairs { type enumeration { enum signal { value 1; description "the signal pair is in use"; } enum spare { value 2; description "the spare pair is in use"; } enum both { value 3; description "4-pair powering which is for .bt devices"; } } 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"; } } container single-pair { presence "Pse port working in single-pair mode."; description "PoDL PSE configuration as defined in std802.3 30.15.1"; leaf pse-enable { type boolean; default false; description "whether to enable the PSE function on the interface."; reference "IEEE 802.3, 30.15.1.1.2 aPoDLPSEAdminState"; } } } } /* * Operational */ /*poe port*/ augment "/if:interfaces-state/if:interface/eth-if:ethernet" { description "Augments ethernet interface operational state model with nodes specific to DTE Power via MDI devices and ports"; container poe-pse { description "Interface operational state for PoE port"; leaf pse-pair-mode { type identityref { base pse:pse-pair-mode ; } description "Pse may use multi-pair or single pair wire to power pd."; } container multi-pair { when "../pse-pair-mode = 'pse:multi-pair-mode' "; description "Multi-pair pse port state information."; leaf pairs-control-ability { type boolean; default true; 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 pse-detection-state; 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 apply when the detection status is delivering power."; } type power-class; description "power class of the port"; reference "IEEE Std 802.3, 30.9.1.1.6 aPSEPowerClassfication"; } container poe-statistics { description "statistics information of the pse 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 'watt'; 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'; description "An integer value indicating the accuracy associated with aPSEActualPower in +/- milliwatts."; reference "IEEE Std 802.3, 30.9.1.1.13 aPSEPowerAccuracy"; } } container single-pair { when "../pse-pair-mode = 'pse:podl-mode' "; description "Single-pair pse port state information."; leaf detection-status { type podl-detection-state; description "Indicates the current status of the PoDL PSE."; reference "IEEE Std 802.3, 30.15.1.1.3 aPoDLPSEPowerDetectionStatus"; } leaf 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"; } } description "PSE type specified in 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"; } } description "indicates the Type of the detected PoDL PD as specified in 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; description "power class of the port"; reference "IEEE Std 802.3, 30.9.1.1.6 aPSEPowerClassfication"; } container poe-statistics { 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 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 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 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 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'; 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'; description "A signed integer value indicating the accuracy associated with aPoDLPSEActualPower in milliwatts.."; reference "IEEE Std 802.3, 30.15.1.1.13 aPoDLPSEPowerAccuracy"; } leaf cumulative-energy { type uint32; units 'millijoule'; description ""; } } } } }