linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net-next v6 00/13] Introduce PHY listing and link_topology tracking
@ 2024-01-26 18:38 Maxime Chevallier
  2024-01-26 18:38 ` [PATCH net-next v6 01/13] net: phy: Introduce ethernet link topology representation Maxime Chevallier
                   ` (13 more replies)
  0 siblings, 14 replies; 15+ messages in thread
From: Maxime Chevallier @ 2024-01-26 18:38 UTC (permalink / raw)
  To: davem
  Cc: Maxime Chevallier, netdev, linux-kernel, thomas.petazzoni,
	Andrew Lunn, Jakub Kicinski, Eric Dumazet, Paolo Abeni,
	Russell King, linux-arm-kernel, Christophe Leroy, Herve Codina,
	Florian Fainelli, Heiner Kallweit, Vladimir Oltean,
	Köry Maincent, Jesse Brandeburg, Jonathan Corbet,
	Marek Behún, Piergiorgio Beruto, Oleksij Rempel,
	Nicolò Veronese, Simon Horman

Hello everyone,

Here's a V6 for the link topo and multi-phy support series.

Most of the changes were from Jakub's and Russell's reviews, the main
point being a rework of the netlink API, removing uneeded nests and
cleaning-up the dump code. Thanks's Jakub for all the tips, hopefulle
the API is cleaner now.

Another change is that we now try to re-use the phy index if possible,
but I couldn't reliably have this and the alloc-topology-on-first-attached-phy
feature as well, with the risk of assigning the same index to different
PHYs when setting an interface down then up again.

Here's what the new 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/link-topo-v6

Link to V5: https://lore.kernel.org/netdev/20231221180047.1924733-1-maxime.chevallier@bootlin.com/
Link to V4: https://lore.kernel.org/netdev/20231215171237.1152563-1-maxime.chevallier@bootlin.com/
Link to V3: https://lore.kernel.org/netdev/20231201163704.1306431-1-maxime.chevallier@bootlin.com/
Link to V2: https://lore.kernel.org/netdev/20231117162323.626979-1-maxime.chevallier@bootlin.com/
Link to V1: https://lore.kernel.org/netdev/20230907092407.647139-1-maxime.chevallier@bootlin.com/

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  |  46 +++
 Documentation/networking/index.rst            |   1 +
 .../networking/phy-link-topology.rst          | 121 +++++++
 MAINTAINERS                                   |   2 +
 drivers/net/phy/Makefile                      |   2 +-
 drivers/net/phy/at803x.c                      |   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                  |  55 ++++
 drivers/net/phy/phy_link_topology.c           | 105 ++++++
 drivers/net/phy/phylink.c                     |   3 +-
 drivers/net/phy/sfp-bus.c                     |  15 +-
 include/linux/netdevice.h                     |   4 +-
 include/linux/phy.h                           |   6 +
 include/linux/phy_link_topology.h             |  72 +++++
 include/linux/phy_link_topology_core.h        |  25 ++
 include/linux/sfp.h                           |   8 +-
 include/uapi/linux/ethtool.h                  |  16 +
 include/uapi/linux/ethtool_netlink.h          |  21 ++
 net/core/dev.c                                |   9 +
 net/ethtool/Makefile                          |   2 +-
 net/ethtool/cabletest.c                       |  16 +-
 net/ethtool/netlink.c                         |  53 +++-
 net/ethtool/netlink.h                         |  10 +
 net/ethtool/phy.c                             | 298 ++++++++++++++++++
 net/ethtool/plca.c                            |  19 +-
 net/ethtool/pse-pd.c                          |  13 +-
 net/ethtool/strset.c                          |  17 +-
 30 files changed, 966 insertions(+), 43 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 include/linux/phy_link_topology_core.h
 create mode 100644 net/ethtool/phy.c

-- 
2.43.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2024-01-27  1:30 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-01-26 18:38 [PATCH net-next v6 00/13] Introduce PHY listing and link_topology tracking Maxime Chevallier
2024-01-26 18:38 ` [PATCH net-next v6 01/13] net: phy: Introduce ethernet link topology representation Maxime Chevallier
2024-01-26 18:38 ` [PATCH net-next v6 02/13] net: sfp: pass the phy_device when disconnecting an sfp module's PHY Maxime Chevallier
2024-01-26 18:38 ` [PATCH net-next v6 03/13] net: phy: add helpers to handle sfp phy connect/disconnect Maxime Chevallier
2024-01-26 18:38 ` [PATCH net-next v6 04/13] net: sfp: Add helper to return the SFP bus name Maxime Chevallier
2024-01-26 18:38 ` [PATCH net-next v6 05/13] net: ethtool: Allow passing a phy index for some commands Maxime Chevallier
2024-01-26 18:38 ` [PATCH net-next v6 06/13] netlink: specs: add phy-index as a header parameter Maxime Chevallier
2024-01-26 18:38 ` [PATCH net-next v6 07/13] net: ethtool: Introduce a command to list PHYs on an interface Maxime Chevallier
2024-01-26 18:38 ` [PATCH net-next v6 08/13] netlink: specs: add ethnl PHY_GET command set Maxime Chevallier
2024-01-26 18:38 ` [PATCH net-next v6 09/13] net: ethtool: plca: Target the command to the requested PHY Maxime Chevallier
2024-01-26 18:38 ` [PATCH net-next v6 10/13] net: ethtool: pse-pd: " Maxime Chevallier
2024-01-26 18:38 ` [PATCH net-next v6 11/13] net: ethtool: cable-test: " Maxime Chevallier
2024-01-26 18:38 ` [PATCH net-next v6 12/13] net: ethtool: strset: Allow querying phy stats by index Maxime Chevallier
2024-01-26 18:38 ` [PATCH net-next v6 13/13] Documentation: networking: document phy_link_topology Maxime Chevallier
2024-01-27  1:29 ` [PATCH net-next v6 00/13] Introduce PHY listing and link_topology tracking Jakub Kicinski

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).