Message ID | 20240228114728.51861-1-maxime.chevallier@bootlin.com |
---|---|
Headers |
Return-Path: <linux-kernel+bounces-84941-ouuuleilei=gmail.com@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:a81b:b0:108:e6aa:91d0 with SMTP id bq27csp3290939dyb; Wed, 28 Feb 2024 03:48:53 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCXmcibL/2emkAq37IiGPKlZs0H4jr7K2DqGICUiKrvoL53sXQGA78/xvr44mv+P9PEWuynifUUJ40ymbqdyqAUPleCdmA== X-Google-Smtp-Source: AGHT+IFM3DfHCTq+0/IbTzGm4tOkXk0m15bxHNMOIN/nz4SOwSoP3BhgvDriNG/yf48QvSnsv13D X-Received: by 2002:a5b:246:0:b0:dcb:f7a0:b031 with SMTP id g6-20020a5b0246000000b00dcbf7a0b031mr1977546ybp.50.1709120932972; Wed, 28 Feb 2024 03:48:52 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1709120932; cv=pass; d=google.com; s=arc-20160816; b=wz5v5tTvO1ZnpzbyzGZrrQMvYNnwjQ1wjp/a3mtSuL51pENKhBBZB9d1d2qX7vdEtQ boMB6TDPemnBU4FyadKK7X0WSS4qy5cGDbyVlR/ZPpFwjaSDfO58h6ZUSOwA4Z4wqRtS W0brohC5bVXUbX3SrrPZE+7MUPQXfjDdjbrLgDHSlXigzIxiH2vIzb6wEaglDVxh3mpM lMVMVbFB9mjbFk1qVGonSRc2oAmWRTp7K3//nOOhPUnVVCpBA4AZndKPLbbJG1ZRCUCU jQisS4Ig+USQ0WrGOLg8WTLGMX/+1NKNIiNrtlCFnsmvvu/2W1lhjfQ5ouXDh++1iqx3 xIKA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:message-id:date:subject:cc:to :from:dkim-signature; bh=e9kneD1suoGv2rYaX5ZPhcMDEyaGpCI72/Bws7kEYZQ=; fh=1vUu/d1GTjraph6G+ET+Z0z13QVrf6oL/IrrK9zaTF8=; b=nH+Fo/8vTPZgmrsCz8eoUmm/VhfZlrKfY/2WdsaUk7ut+lGPAd3pEr6aIOwSX/6FMy VTLLosT+4vVwfbn4nZZEaW5a3xLytubzgQ/HagdChYHGKNQo8DvR1Brhgu7zEowSYlA/ JHEsUNTLX03he2kPWNyul6xOKbSE5sGZpNkUVRPwl+ufAnSIU/365rME50IzfjZRNQwJ CiBpL8xP7Xb2DDIgw+4A+tKz5x+tdC7P0V8k8Cssp7fwPGbrxIup4yH0yx8Fd2NWu9z6 nlvM88IHanMcruCgp5sPOffbG/s36iYbgoWGvUALQt3au7HqOtlPV3x0JxxfaM80UQfi 85yg==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@bootlin.com header.s=gm1 header.b=PBrWDWC1; arc=pass (i=1 spf=pass spfdomain=bootlin.com dkim=pass dkdomain=bootlin.com dmarc=pass fromdomain=bootlin.com); spf=pass (google.com: domain of linux-kernel+bounces-84941-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-84941-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=bootlin.com Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [147.75.199.223]) by mx.google.com with ESMTPS id j23-20020ac86657000000b0042e55c72d1csi9254653qtp.661.2024.02.28.03.48.52 for <ouuuleilei@gmail.com> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 28 Feb 2024 03:48:52 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-84941-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) client-ip=147.75.199.223; Authentication-Results: mx.google.com; dkim=pass header.i=@bootlin.com header.s=gm1 header.b=PBrWDWC1; arc=pass (i=1 spf=pass spfdomain=bootlin.com dkim=pass dkdomain=bootlin.com dmarc=pass fromdomain=bootlin.com); spf=pass (google.com: domain of linux-kernel+bounces-84941-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-84941-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=bootlin.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id AD2CB1C213F8 for <ouuuleilei@gmail.com>; Wed, 28 Feb 2024 11:48:52 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 5D39D6CDC3; Wed, 28 Feb 2024 11:47:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b="PBrWDWC1" Received: from relay5-d.mail.gandi.net (relay5-d.mail.gandi.net [217.70.183.197]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C2BB573505; Wed, 28 Feb 2024 11:47:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=217.70.183.197 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709120864; cv=none; b=r0YRQqY5YT35M+WdT/Z1hOglhSp2NuZnuq6O/1STL6khNhklDF61TP4378subhM5n6jGee2b7D4xm8dCHRu7TENEztASY8R7HLiduo9RpgpX6tXSvHqsmxML0cKxDQ7L7Kx3CKqWs6qYs4WzFdGElzo8h5eyhx3EBhiPQzc1K0E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709120864; c=relaxed/simple; bh=zfgIkhEvBG7jNm5lV6MugOLFSLIUdpsytfroSpAN2nc=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=qwmcTB1Rde/7gkn2gRxi2yaEzjsDI6VeJLMXa3Uj+RTp9O8TXS2qZ3voDZ539PWV/vhh7o5P+LlrL6tMfsTE1dWP3FPyslOzWLo4ajaq9bdWIrvaBzdXt7XbDx6FWnnJG2UwRVA07MLbEGtChoQdED7jJ+bmyON/H8JRX4oMxC0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com; spf=pass smtp.mailfrom=bootlin.com; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b=PBrWDWC1; arc=none smtp.client-ip=217.70.183.197 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=bootlin.com Received: by mail.gandi.net (Postfix) with ESMTPSA id 56D391C000D; Wed, 28 Feb 2024 11:47:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1709120854; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=e9kneD1suoGv2rYaX5ZPhcMDEyaGpCI72/Bws7kEYZQ=; b=PBrWDWC1mqywmJ3rElWUEeUeRUqdT5d2IE1d/cmD3Ypvcl9t0sfDm+QpwZkKbCQOpKSzTa EbIirARep+TryUh0Sx/09ArLcNgR2WsvsJRzWrRmirMdnrHGPiFisuGn7k/jqJ5e6DpIy6 IWeJk//RA7bNLscy5pvRZFvP/V8puv+mCyt7NdB1r9OHOeAHwAj4d/usS5yPOP50AItqw7 W4YD9XNjNrwPp52zgZa6qvZW/8FQQyBiph62J5SR/jYRJc1CRGtT/S82GL0bFC0mL+lPwS TC8elRx6P5ee8T0Y2rGRNq5pOdv8lBKh8b4dQC2CBEgyA0gyNU9pTn4JhKG/BQ== From: Maxime Chevallier <maxime.chevallier@bootlin.com> To: davem@davemloft.net Cc: Maxime Chevallier <maxime.chevallier@bootlin.com>, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, thomas.petazzoni@bootlin.com, Andrew Lunn <andrew@lunn.ch>, Jakub Kicinski <kuba@kernel.org>, Eric Dumazet <edumazet@google.com>, Paolo Abeni <pabeni@redhat.com>, Russell King <linux@armlinux.org.uk>, linux-arm-kernel@lists.infradead.org, Christophe Leroy <christophe.leroy@csgroup.eu>, Herve Codina <herve.codina@bootlin.com>, Florian Fainelli <f.fainelli@gmail.com>, Heiner Kallweit <hkallweit1@gmail.com>, Vladimir Oltean <vladimir.oltean@nxp.com>, =?utf-8?q?K=C3=B6ry_Maincent?= <kory.maincent@bootlin.com>, Jesse Brandeburg <jesse.brandeburg@intel.com>, Jonathan Corbet <corbet@lwn.net>, =?utf-8?q?Marek_Beh=C3=BAn?= <kabel@kernel.org>, Piergiorgio Beruto <piergiorgio.beruto@gmail.com>, Oleksij Rempel <o.rempel@pengutronix.de>, =?utf-8?q?Nicol=C3=B2_Veronese?= <nicveronese@gmail.com>, Simon Horman <horms@kernel.org>, mwojtas@chromium.org Subject: [PATCH net-next v9 00/13] Introduce PHY listing and link_topology tracking Date: Wed, 28 Feb 2024 12:47:14 +0100 Message-ID: <20240228114728.51861-1-maxime.chevallier@bootlin.com> X-Mailer: git-send-email 2.43.2 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: <linux-kernel.vger.kernel.org> List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org> List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-GND-Sasl: maxime.chevallier@bootlin.com X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1792143191676257056 X-GMAIL-MSGID: 1792143191676257056 |
Series |
Introduce PHY listing and link_topology tracking
|
|
Message
Maxime Chevallier
Feb. 28, 2024, 11:47 a.m. UTC
Hello everyone, This is V9 for the link topology addition, allowing to track all PHYs that are linked to netdevices. The only change in V9 is the renaming of one of the netlink attributes in the ethtool netlink spec, and a rebase on net-next. 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 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 | 46 +++ Documentation/networking/index.rst | 1 + .../networking/phy-link-topology.rst | 121 +++++++ 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 | 53 +++- net/ethtool/netlink.h | 10 + net/ethtool/phy.c | 297 ++++++++++++++++++ net/ethtool/plca.c | 19 +- net/ethtool/pse-pd.c | 13 +- net/ethtool/strset.c | 17 +- 31 files changed, 967 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