[PATCH net-next v13 00/13] Introduce PHY listing and link_topology tracking
From: Maxime Chevallier
Date: Fri Jun 07 2024 - 03:19:04 EST
Hello everyone,
This is V13 for the link topology addition, allowing to track all PHYs
that are linked to netdevices.
This version is based on the V12, and addresses the missing
documentation for the return code of some helpersn, and gathers the
review from Köry.
Discussions on the patch 01/13 updates can be found here :
https://lore.kernel.org/netdev/20240412104615.3779632-1-maxime.chevallier@xxxxxxxxxxx/
https://lore.kernel.org/netdev/20240429131008.439231-1-maxime.chevallier@xxxxxxxxxxx/
https://lore.kernel.org/netdev/20240507102822.2023826-1-maxime.chevallier@xxxxxxxxxxx/
As a remainder, here's what the PHY listings would look like :
- eth0 has a 88x3310 acting as media converter, and an SFP module with
an embedded 88e1111 PHY
- eth2 has a 88e1510 PHY
# ethtool --show-phys *
PHY for eth0:
PHY index: 1
Driver name: mv88x3310
PHY device name: f212a600.mdio-mii:00
Downstream SFP bus name: sfp-eth0
PHY id: 0
Upstream type: MAC
PHY for eth0:
PHY index: 2
Driver name: Marvell 88E1111
PHY device name: i2c:sfp-eth0:16
PHY id: 21040322
Upstream type: PHY
Upstream PHY index: 1
Upstream SFP name: sfp-eth0
PHY for eth2:
PHY index: 1
Driver name: Marvell 88E1510
PHY device name: f212a200.mdio-mii:00
PHY id: 21040593
Upstream type: MAC
Ethtool patches : https://github.com/minimaxwell/ethtool/tree/mc/main
Link to v12: https://lore.kernel.org/netdev/20240605124920.720690-1-maxime.chevallier@xxxxxxxxxxx/
Link to v11: https://lore.kernel.org/netdev/20240404093004.2552221-1-maxime.chevallier@xxxxxxxxxxx/
Link to V10: https://lore.kernel.org/netdev/20240304151011.1610175-1-maxime.chevallier@xxxxxxxxxxx/
Link to V9: https://lore.kernel.org/netdev/20240228114728.51861-1-maxime.chevallier@xxxxxxxxxxx/
Link to V8: https://lore.kernel.org/netdev/20240220184217.3689988-1-maxime.chevallier@xxxxxxxxxxx/
Link to V7: https://lore.kernel.org/netdev/20240213150431.1796171-1-maxime.chevallier@xxxxxxxxxxx/
Link to V6: https://lore.kernel.org/netdev/20240126183851.2081418-1-maxime.chevallier@xxxxxxxxxxx/
Link to V5: https://lore.kernel.org/netdev/20231221180047.1924733-1-maxime.chevallier@xxxxxxxxxxx/
Link to V4: https://lore.kernel.org/netdev/20231215171237.1152563-1-maxime.chevallier@xxxxxxxxxxx/
Link to V3: https://lore.kernel.org/netdev/20231201163704.1306431-1-maxime.chevallier@xxxxxxxxxxx/
Link to V2: https://lore.kernel.org/netdev/20231117162323.626979-1-maxime.chevallier@xxxxxxxxxxx/
Link to V1: https://lore.kernel.org/netdev/20230907092407.647139-1-maxime.chevallier@xxxxxxxxxxx/
Maxime Chevallier (13):
net: phy: Introduce ethernet link topology representation
net: sfp: pass the phy_device when disconnecting an sfp module's PHY
net: phy: add helpers to handle sfp phy connect/disconnect
net: sfp: Add helper to return the SFP bus name
net: ethtool: Allow passing a phy index for some commands
netlink: specs: add phy-index as a header parameter
net: ethtool: Introduce a command to list PHYs on an interface
netlink: specs: add ethnl PHY_GET command set
net: ethtool: plca: Target the command to the requested PHY
net: ethtool: pse-pd: Target the command to the requested PHY
net: ethtool: cable-test: Target the command to the requested PHY
net: ethtool: strset: Allow querying phy stats by index
Documentation: networking: document phy_link_topology
Documentation/netlink/specs/ethtool.yaml | 62 ++++
Documentation/networking/ethtool-netlink.rst | 52 +++
Documentation/networking/index.rst | 1 +
.../networking/phy-link-topology.rst | 121 +++++++
MAINTAINERS | 1 +
drivers/net/phy/Makefile | 2 +-
drivers/net/phy/marvell-88x2222.c | 2 +
drivers/net/phy/marvell.c | 2 +
drivers/net/phy/marvell10g.c | 2 +
drivers/net/phy/phy_device.c | 48 +++
drivers/net/phy/phy_link_topology.c | 105 ++++++
drivers/net/phy/phylink.c | 3 +-
drivers/net/phy/qcom/at803x.c | 2 +
drivers/net/phy/qcom/qca807x.c | 2 +
drivers/net/phy/sfp-bus.c | 15 +-
include/linux/netdevice.h | 4 +-
include/linux/phy.h | 6 +
include/linux/phy_link_topology.h | 82 +++++
include/linux/sfp.h | 8 +-
include/uapi/linux/ethtool.h | 16 +
include/uapi/linux/ethtool_netlink.h | 21 ++
net/core/dev.c | 15 +
net/ethtool/Makefile | 2 +-
net/ethtool/cabletest.c | 16 +-
net/ethtool/netlink.c | 57 +++-
net/ethtool/netlink.h | 10 +
net/ethtool/phy.c | 306 ++++++++++++++++++
net/ethtool/plca.c | 19 +-
net/ethtool/pse-pd.c | 16 +-
net/ethtool/strset.c | 17 +-
30 files changed, 970 insertions(+), 45 deletions(-)
create mode 100644 Documentation/networking/phy-link-topology.rst
create mode 100644 drivers/net/phy/phy_link_topology.c
create mode 100644 include/linux/phy_link_topology.h
create mode 100644 net/ethtool/phy.c
--
2.45.1