Re: [PATCH net-next 2/9] ethtool: Expand Ethernet Power Equipment with PoE alongside PoDL
From: Köry Maincent <kory.maincent@bootlin.com>
Date: 2023-11-21 10:02:24
Also in:
linux-devicetree, linux-doc, lkml
On Mon, 20 Nov 2023 19:00:03 +0100 Andrew Lunn [off-list ref] wrote:
quoted
Official name for "PoE" is "Power via Media Dependent Interface". PoE is not used in the IEEE 802.3-2018. Using names not used in the specification, make development even harder :) Especially since there are even more marketing names (names not used in the specification) for different PoE variants: - 802.3af (802.3at Type 1), PoE - 802.3at Type 2, PoE+ - 802.3bt Type 3, 4PPoE or PoE++ - 802.3bt Type 4, 4PPoE or PoE++From the 2018 standard: 1.4.407 Power Sourcing Equipment (PSE): A DTE or midspan device that provides the power to a single link section. PSEs are defined for use with two different types of balanced twisted-pair PHYs. When used with 2 or 4 pair balanced twisted-pair (BASE-T) PHYs, (see IEEE Std 802.3, Clause 33), DTE powering is intended to provide a single 10BASE-T, 100BASE-TX, or 1000BASE-T device with a unified interface for both the data it requires and the power to process these data. When used with single balanced twisted-pair (BASE-T1) PHYs (see IEEE Std 802.3, Clause 104), DTE powering is intended to provide a single 100BASE-T1 or 1000BASE-T1 device with a unified interface for both the data it requires and the power to process these data. A PSE used with balanced single twisted-pair PHYs is also referred to as a PoDL PSE. So it seems like, anything not PoDL PSE does not have a name :-( However, everything not PoDL PSE seems to be clause 33. So how about: enum ethtool_podl_pse_admin_state podl_admin_control; enum ethtool_c33_pse_admin_state c33_admin_control; At least inside the kernel we use c22, c45, c37 etc. I'm not sure they are visible to userspace, but if we don't have a better name, maybe we have to use c33 in userspace as well. I do think naming like this makes it clear we are talking about two parallel technologies, not a generic layer and then extensions for podl. What do you think?
If we decide to add a prefix, "c33" is precise but less easily understandable, why not using simply "poe" prefix? Maybe as POE were originally PMDI you prefer to use c33 which won't change over time? Should I also modify the content of the enum? ETHTOOL_PSE_ADMIN_STATE_* to ETHTOOL_C33_PSE_ADMIN_* ETHTOOL_PSE_PW_D_STATUS_* to ETHTOOL_C33_PSE_PW_D_STATUS_* -- Köry Maincent, Bootlin Embedded Linux and kernel engineering https://bootlin.com