Many copper Ethernet PHY have support for performing diagnostics of the cable. Are the cable shorted, broken, not plugged into anything at the other end? And they can report roughly how far along the cable any fault is.
Add infrastructure in ethtool and phylib support for triggering a cable test and reporting the results. The Marvell 1G PHY driver is then extended to make use of this infrastructure. For testing, a modified ethtool(1) can be found here: https://github.com/lunn/ethtool.git feature/cable-test-v2. This also contains extra code for TDR dump, which will be added to the kernel in a later patch series. Thanks to Chris Healy for extensive testing. v2: See individual patches but: Remove _REPLY messages Change length into a u32 Grammar fixes Rename functions for consistency Extack for cable test already running Remove ethnl_cable_test_act_ops Add status attributes Rename pairs from numbers to letters Andrew Lunn (10): net: phy: Add cable test support to state machine net: phy: Add support for polling cable test net: ethtool: netlink: Add support for triggering a cable test net: ethtool: Add attributes for cable test reports net: ethtool: Make helpers public net: ethtool: Add infrastructure for reporting cable test results net: ethtool: Add helpers for reporting test results net: phy: marvell: Add cable test support net: phy: Put interface into oper testing during cable test net: phy: Send notifier when starting the cable test Documentation/networking/ethtool-netlink.rst | 59 +++++- drivers/net/phy/marvell.c | 202 +++++++++++++++++++ drivers/net/phy/phy.c | 106 ++++++++++ include/linux/ethtool_netlink.h | 33 +++ include/linux/phy.h | 42 ++++ include/uapi/linux/ethtool_netlink.h | 65 ++++++ net/Kconfig | 1 + net/ethtool/Makefile | 2 +- net/ethtool/cabletest.c | 202 +++++++++++++++++++ net/ethtool/netlink.c | 9 +- net/ethtool/netlink.h | 4 + 11 files changed, 721 insertions(+), 4 deletions(-) create mode 100644 net/ethtool/cabletest.c -- 2.26.2