Message ID | 20240819141241.2711601-2-o.rempel@pengutronix.de (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | Add ALCD Support to Cable Testing Interface | expand |
> @@ -573,15 +573,25 @@ enum { > ETHTOOL_A_CABLE_RESULT_UNSPEC, > ETHTOOL_A_CABLE_RESULT_PAIR, /* u8 ETHTOOL_A_CABLE_PAIR_ */ > ETHTOOL_A_CABLE_RESULT_CODE, /* u8 ETHTOOL_A_CABLE_RESULT_CODE_ */ > + ETHTOOL_A_CABLE_RESULT_SRC, /* u32 */ Please follow the convention of given the prefix of values, ETHTOOL_A_CABLE_INF_SRC_ in the comment. I also wounder if a u8 would be more in keeping with the API. _PAIR and _CODE are u8. Andrew
> +/* Information source for specific results. */ > +enum { > + /* Results provided by the Time Domain Reflectometry (TDR) */ > + ETHTOOL_A_CABLE_INF_SRC_TDR, > + /* Results provided by the Active Link Cable Diagnostic (ALCD) */ > + ETHTOOL_A_CABLE_INF_SRC_ALCD, > +}; It is pretty typical for such enums to have a _UNSPEC for the first entry. Andrew
On Mon, 19 Aug 2024 16:12:39 +0200 Oleksij Rempel wrote: > --- a/include/uapi/linux/ethtool_netlink.h > +++ b/include/uapi/linux/ethtool_netlink.h > @@ -573,15 +573,25 @@ enum { > ETHTOOL_A_CABLE_RESULT_UNSPEC, > ETHTOOL_A_CABLE_RESULT_PAIR, /* u8 ETHTOOL_A_CABLE_PAIR_ */ > ETHTOOL_A_CABLE_RESULT_CODE, /* u8 ETHTOOL_A_CABLE_RESULT_CODE_ */ > + ETHTOOL_A_CABLE_RESULT_SRC, /* u32 */ > > __ETHTOOL_A_CABLE_RESULT_CNT, > ETHTOOL_A_CABLE_RESULT_MAX = (__ETHTOOL_A_CABLE_RESULT_CNT - 1) > }; > > +/* Information source for specific results. */ > +enum { > + /* Results provided by the Time Domain Reflectometry (TDR) */ > + ETHTOOL_A_CABLE_INF_SRC_TDR, > + /* Results provided by the Active Link Cable Diagnostic (ALCD) */ > + ETHTOOL_A_CABLE_INF_SRC_ALCD, > +}; > + > enum { > ETHTOOL_A_CABLE_FAULT_LENGTH_UNSPEC, > ETHTOOL_A_CABLE_FAULT_LENGTH_PAIR, /* u8 ETHTOOL_A_CABLE_PAIR_ */ > ETHTOOL_A_CABLE_FAULT_LENGTH_CM, /* u32 */ > + ETHTOOL_A_CABLE_FAULT_LENGTH_SRC, /* u32 */ Please keep Documentation/netlink/specs/ethtool.yaml up to date
diff --git a/Documentation/networking/ethtool-netlink.rst b/Documentation/networking/ethtool-netlink.rst index 3f6c6880e7c48..5ca0b3661379a 100644 --- a/Documentation/networking/ethtool-netlink.rst +++ b/Documentation/networking/ethtool-netlink.rst @@ -1307,12 +1307,17 @@ information. +-+-+-----------------------------------------+--------+---------------------+ | | | ``ETHTOOL_A_CABLE_RESULTS_CODE`` | u8 | result code | +-+-+-----------------------------------------+--------+---------------------+ + | | | ``ETHTOOL_A_CABLE_RESULT_SRC`` | u32 | information source | + +-+-+-----------------------------------------+--------+---------------------+ | | ``ETHTOOL_A_CABLE_NEST_FAULT_LENGTH`` | nested | cable length | +-+-+-----------------------------------------+--------+---------------------+ | | | ``ETHTOOL_A_CABLE_FAULT_LENGTH_PAIR`` | u8 | pair number | +-+-+-----------------------------------------+--------+---------------------+ | | | ``ETHTOOL_A_CABLE_FAULT_LENGTH_CM`` | u32 | length in cm | +-+-+-----------------------------------------+--------+---------------------+ + | | | ``ETHTOOL_A_CABLE_FAULT_LENGTH_SRC`` | u32 | information source | + +-+-+-----------------------------------------+--------+---------------------+ + CABLE_TEST TDR ============== diff --git a/include/uapi/linux/ethtool_netlink.h b/include/uapi/linux/ethtool_netlink.h index 9074fa309bd6d..ebee3b67055bb 100644 --- a/include/uapi/linux/ethtool_netlink.h +++ b/include/uapi/linux/ethtool_netlink.h @@ -573,15 +573,25 @@ enum { ETHTOOL_A_CABLE_RESULT_UNSPEC, ETHTOOL_A_CABLE_RESULT_PAIR, /* u8 ETHTOOL_A_CABLE_PAIR_ */ ETHTOOL_A_CABLE_RESULT_CODE, /* u8 ETHTOOL_A_CABLE_RESULT_CODE_ */ + ETHTOOL_A_CABLE_RESULT_SRC, /* u32 */ __ETHTOOL_A_CABLE_RESULT_CNT, ETHTOOL_A_CABLE_RESULT_MAX = (__ETHTOOL_A_CABLE_RESULT_CNT - 1) }; +/* Information source for specific results. */ +enum { + /* Results provided by the Time Domain Reflectometry (TDR) */ + ETHTOOL_A_CABLE_INF_SRC_TDR, + /* Results provided by the Active Link Cable Diagnostic (ALCD) */ + ETHTOOL_A_CABLE_INF_SRC_ALCD, +}; + enum { ETHTOOL_A_CABLE_FAULT_LENGTH_UNSPEC, ETHTOOL_A_CABLE_FAULT_LENGTH_PAIR, /* u8 ETHTOOL_A_CABLE_PAIR_ */ ETHTOOL_A_CABLE_FAULT_LENGTH_CM, /* u32 */ + ETHTOOL_A_CABLE_FAULT_LENGTH_SRC, /* u32 */ __ETHTOOL_A_CABLE_FAULT_LENGTH_CNT, ETHTOOL_A_CABLE_FAULT_LENGTH_MAX = (__ETHTOOL_A_CABLE_FAULT_LENGTH_CNT - 1)
Extend the ethtool netlink cable testing interface by adding support for specifying the source of cable testing results. This allows users to differentiate between results obtained through different diagnostic methods. For example, some TI 10BaseT1L PHYs provide two variants of cable diagnostics: Time Domain Reflectometry (TDR) and Active Link Cable Diagnostic (ALCD). By introducing `ETHTOOL_A_CABLE_RESULT_SRC` and `ETHTOOL_A_CABLE_FAULT_LENGTH_SRC` attributes, this update enables drivers to indicate whether the result was derived from TDR or ALCD, improving the clarity and utility of diagnostic information. Signed-off-by: Oleksij Rempel <o.rempel@pengutronix.de> --- Documentation/networking/ethtool-netlink.rst | 5 +++++ include/uapi/linux/ethtool_netlink.h | 10 ++++++++++ 2 files changed, 15 insertions(+)