mbox series

[net-next,v11,00/13] Introduce PHY listing and link_topology tracking

Message ID 20240404093004.2552221-1-maxime.chevallier@bootlin.com (mailing list archive)
Headers show
Series Introduce PHY listing and link_topology tracking | expand

Message

Maxime Chevallier April 4, 2024, 9:29 a.m. UTC
Hello everyone,

This is V11 for the link topology addition, allowing to track all PHYs
that are linked to netdevices.

This V11 addresses the various netlink-related issues that were raised
by Jakub, and fixes some typos in the documentation.

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/link-topo-v6

Link to V10: https://lore.kernel.org/netdev/20240304151011.1610175-1-maxime.chevallier@bootlin.com/
Link to V9: https://lore.kernel.org/netdev/20240228114728.51861-1-maxime.chevallier@bootlin.com/
Link to V8: https://lore.kernel.org/netdev/20240220184217.3689988-1-maxime.chevallier@bootlin.com/
Link to V7: https://lore.kernel.org/netdev/20240213150431.1796171-1-maxime.chevallier@bootlin.com/
Link to V6: https://lore.kernel.org/netdev/20240126183851.2081418-1-maxime.chevallier@bootlin.com/
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  |  52 +++
 Documentation/networking/index.rst            |   1 +
 .../networking/phy-link-topology.rst          | 120 +++++++
 MAINTAINERS                                   |   2 +
 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                  |  55 ++++
 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             |  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                         |  57 +++-
 net/ethtool/netlink.h                         |  10 +
 net/ethtool/phy.c                             | 300 ++++++++++++++++++
 net/ethtool/plca.c                            |  19 +-
 net/ethtool/pse-pd.c                          |  13 +-
 net/ethtool/strset.c                          |  17 +-
 31 files changed, 979 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

Comments

patchwork-bot+netdevbpf@kernel.org April 6, 2024, 5:30 p.m. UTC | #1
Hello:

This series was applied to netdev/net-next.git (main)
by David S. Miller <davem@davemloft.net>:

On Thu,  4 Apr 2024 11:29:50 +0200 you wrote:
> Hello everyone,
> 
> This is V11 for the link topology addition, allowing to track all PHYs
> that are linked to netdevices.
> 
> This V11 addresses the various netlink-related issues that were raised
> by Jakub, and fixes some typos in the documentation.
> 
> [...]

Here is the summary with links:
  - [net-next,v11,01/13] net: phy: Introduce ethernet link topology representation
    https://git.kernel.org/netdev/net-next/c/6916e461e793
  - [net-next,v11,02/13] net: sfp: pass the phy_device when disconnecting an sfp module's PHY
    https://git.kernel.org/netdev/net-next/c/0ec5ed6c130e
  - [net-next,v11,03/13] net: phy: add helpers to handle sfp phy connect/disconnect
    https://git.kernel.org/netdev/net-next/c/e75e4e074c44
  - [net-next,v11,04/13] net: sfp: Add helper to return the SFP bus name
    https://git.kernel.org/netdev/net-next/c/fdd353965b52
  - [net-next,v11,05/13] net: ethtool: Allow passing a phy index for some commands
    https://git.kernel.org/netdev/net-next/c/841942bc6212
  - [net-next,v11,06/13] netlink: specs: add phy-index as a header parameter
    (no matching commit)
  - [net-next,v11,07/13] net: ethtool: Introduce a command to list PHYs on an interface
    (no matching commit)
  - [net-next,v11,08/13] netlink: specs: add ethnl PHY_GET command set
    (no matching commit)
  - [net-next,v11,09/13] net: ethtool: plca: Target the command to the requested PHY
    (no matching commit)
  - [net-next,v11,10/13] net: ethtool: pse-pd: Target the command to the requested PHY
    (no matching commit)
  - [net-next,v11,11/13] net: ethtool: cable-test: Target the command to the requested PHY
    (no matching commit)
  - [net-next,v11,12/13] net: ethtool: strset: Allow querying phy stats by index
    (no matching commit)
  - [net-next,v11,13/13] Documentation: networking: document phy_link_topology
    (no matching commit)

You are awesome, thank you!
Maxime Chevallier April 8, 2024, 2:32 p.m. UTC | #2
Hi,

On Sat, 06 Apr 2024 17:30:29 +0000
patchwork-bot+netdevbpf@kernel.org wrote:

> Hello:
> 
> This series was applied to netdev/net-next.git (main)
> by David S. Miller <davem@davemloft.net>:
> 
> On Thu,  4 Apr 2024 11:29:50 +0200 you wrote:
> > Hello everyone,
> > 
> > This is V11 for the link topology addition, allowing to track all PHYs
> > that are linked to netdevices.
> > 
> > This V11 addresses the various netlink-related issues that were raised
> > by Jakub, and fixes some typos in the documentation.
> > 
> > [...]  
> 
> Here is the summary with links:
>   - [net-next,v11,01/13] net: phy: Introduce ethernet link topology representation
>     https://git.kernel.org/netdev/net-next/c/6916e461e793
>   - [net-next,v11,02/13] net: sfp: pass the phy_device when disconnecting an sfp module's PHY
>     https://git.kernel.org/netdev/net-next/c/0ec5ed6c130e
>   - [net-next,v11,03/13] net: phy: add helpers to handle sfp phy connect/disconnect
>     https://git.kernel.org/netdev/net-next/c/e75e4e074c44
>   - [net-next,v11,04/13] net: sfp: Add helper to return the SFP bus name
>     https://git.kernel.org/netdev/net-next/c/fdd353965b52
>   - [net-next,v11,05/13] net: ethtool: Allow passing a phy index for some commands
>     https://git.kernel.org/netdev/net-next/c/841942bc6212
>   - [net-next,v11,06/13] netlink: specs: add phy-index as a header parameter
>     (no matching commit)
>   - [net-next,v11,07/13] net: ethtool: Introduce a command to list PHYs on an interface
>     (no matching commit)
>   - [net-next,v11,08/13] netlink: specs: add ethnl PHY_GET command set
>     (no matching commit)
>   - [net-next,v11,09/13] net: ethtool: plca: Target the command to the requested PHY
>     (no matching commit)
>   - [net-next,v11,10/13] net: ethtool: pse-pd: Target the command to the requested PHY
>     (no matching commit)
>   - [net-next,v11,11/13] net: ethtool: cable-test: Target the command to the requested PHY
>     (no matching commit)
>   - [net-next,v11,12/13] net: ethtool: strset: Allow querying phy stats by index
>     (no matching commit)
>   - [net-next,v11,13/13] Documentation: networking: document phy_link_topology
>     (no matching commit)

It looks like commits 6 to 13 didn't make it upstream with (the "no
matching commit" messages above). Is that expected ?

Thanks,

Maxime
Andrew Lunn April 8, 2024, 11:50 p.m. UTC | #3
> > Here is the summary with links:
> >   - [net-next,v11,01/13] net: phy: Introduce ethernet link topology representation
> >     https://git.kernel.org/netdev/net-next/c/6916e461e793
> >   - [net-next,v11,02/13] net: sfp: pass the phy_device when disconnecting an sfp module's PHY
> >     https://git.kernel.org/netdev/net-next/c/0ec5ed6c130e
> >   - [net-next,v11,03/13] net: phy: add helpers to handle sfp phy connect/disconnect
> >     https://git.kernel.org/netdev/net-next/c/e75e4e074c44
> >   - [net-next,v11,04/13] net: sfp: Add helper to return the SFP bus name
> >     https://git.kernel.org/netdev/net-next/c/fdd353965b52
> >   - [net-next,v11,05/13] net: ethtool: Allow passing a phy index for some commands
> >     https://git.kernel.org/netdev/net-next/c/841942bc6212
> >   - [net-next,v11,06/13] netlink: specs: add phy-index as a header parameter
> >     (no matching commit)
> >   - [net-next,v11,07/13] net: ethtool: Introduce a command to list PHYs on an interface
> >     (no matching commit)
> >   - [net-next,v11,08/13] netlink: specs: add ethnl PHY_GET command set
> >     (no matching commit)
> >   - [net-next,v11,09/13] net: ethtool: plca: Target the command to the requested PHY
> >     (no matching commit)
> >   - [net-next,v11,10/13] net: ethtool: pse-pd: Target the command to the requested PHY
> >     (no matching commit)
> >   - [net-next,v11,11/13] net: ethtool: cable-test: Target the command to the requested PHY
> >     (no matching commit)
> >   - [net-next,v11,12/13] net: ethtool: strset: Allow querying phy stats by index
> >     (no matching commit)
> >   - [net-next,v11,13/13] Documentation: networking: document phy_link_topology
> >     (no matching commit)
> 
> It looks like commits 6 to 13 didn't make it upstream with (the "no
> matching commit" messages above). Is that expected ?

They are not in net-next, unlike 1-5.

You probably need to repost them.

    Andrew
Maxime Chevallier April 9, 2024, 7:22 a.m. UTC | #4
On Tue, 9 Apr 2024 01:50:54 +0200
Andrew Lunn <andrew@lunn.ch> wrote:

> > > Here is the summary with links:
> > >   - [net-next,v11,01/13] net: phy: Introduce ethernet link topology representation
> > >     https://git.kernel.org/netdev/net-next/c/6916e461e793
> > >   - [net-next,v11,02/13] net: sfp: pass the phy_device when disconnecting an sfp module's PHY
> > >     https://git.kernel.org/netdev/net-next/c/0ec5ed6c130e
> > >   - [net-next,v11,03/13] net: phy: add helpers to handle sfp phy connect/disconnect
> > >     https://git.kernel.org/netdev/net-next/c/e75e4e074c44
> > >   - [net-next,v11,04/13] net: sfp: Add helper to return the SFP bus name
> > >     https://git.kernel.org/netdev/net-next/c/fdd353965b52
> > >   - [net-next,v11,05/13] net: ethtool: Allow passing a phy index for some commands
> > >     https://git.kernel.org/netdev/net-next/c/841942bc6212
> > >   - [net-next,v11,06/13] netlink: specs: add phy-index as a header parameter
> > >     (no matching commit)
> > >   - [net-next,v11,07/13] net: ethtool: Introduce a command to list PHYs on an interface
> > >     (no matching commit)
> > >   - [net-next,v11,08/13] netlink: specs: add ethnl PHY_GET command set
> > >     (no matching commit)
> > >   - [net-next,v11,09/13] net: ethtool: plca: Target the command to the requested PHY
> > >     (no matching commit)
> > >   - [net-next,v11,10/13] net: ethtool: pse-pd: Target the command to the requested PHY
> > >     (no matching commit)
> > >   - [net-next,v11,11/13] net: ethtool: cable-test: Target the command to the requested PHY
> > >     (no matching commit)
> > >   - [net-next,v11,12/13] net: ethtool: strset: Allow querying phy stats by index
> > >     (no matching commit)
> > >   - [net-next,v11,13/13] Documentation: networking: document phy_link_topology
> > >     (no matching commit)  
> > 
> > It looks like commits 6 to 13 didn't make it upstream with (the "no
> > matching commit" messages above). Is that expected ?  
> 
> They are not in net-next, unlike 1-5.
> 
> You probably need to repost them.

I'll repost indeed.

Thanks Andrew BTW for all the reviews !

Maxime