Received: by 2002:ab2:6309:0:b0:1fb:d597:ff75 with SMTP id s9csp864346lqt; Fri, 7 Jun 2024 00:19:36 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCVt6jlXILfuVgjM5AAg0EM5eJ5PtgUIlBFtkGyA6++jcjBTIfBJlyE7npY3WY6NPoc5jJk9p3gRyYLg45xyx8Rw1COb3149YwAxKq8OeQ== X-Google-Smtp-Source: AGHT+IHTqRzZhXVFV/BMvglY5chKaIdiducbZGpzHIrtZ70GXECSlxkUvvD+6wnGBjdNxY7xqpKJ X-Received: by 2002:a05:622a:40b:b0:43d:f8ce:5c3 with SMTP id d75a77b69052e-44041ce37d7mr15956371cf.42.1717744776038; Fri, 07 Jun 2024 00:19:36 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1717744776; cv=pass; d=google.com; s=arc-20160816; b=GzgzSMT564qeJ9h45FjeLHKf5Mp8s2valHb6e5n7ub81Qfdp88RP7zsoMCzwY8f1Ig puxmw1GdYyxBKPlNOfPFVC/ZV9o6ZdMwtlr60IAAYcoqB+eQDN4uGuoboreNfZ13Uyjb wpe1U0TWFvBeLDb0Bc291FUI4td0S8r2amCJPVlsQibsYcJeW5BuHnkAum6ExqPqPm5M wY6OmrI3gN0NqjloSeObeJ+Zwaz4AkOZfwdIAy9y+bEY+spPXV7jtgx6dGa6NYWJk12z k7s3KUDJQveQvvWjt4k79Hrqzw49IUT6D4SJENWnEaW/EiyjWBItxKQIugTE9HAOmvr6 MCJQ== 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=INDco8Dct61gOk37+4SpGwRZ3UaFmubJwDoSRl1HXJE=; fh=Dinp91LF2KcnzfyOXGg1vCezYXJAYX+8GKPCxLQjq1Q=; b=wHbe5G31MtAh1kUco2VnsyL2SESmrzHLk/hyPL1tn/QbFuAvE3GV34bnDEyO8PPGIV NIqEVuWHRLJBVHn+Qsgpnq6yhHXBbqkzylDA5vBz3kaCp6Uh5Pd/OhYOy5QDNgcTCtR1 ILTLF2u37flf2JNB+j3iXJAQzNYPLzn03zk1zoLavSmm9O76j1S2kiMKp1TBLj+Jz05n M70Wq7uj8F6BFLISZGZC8d9Pc6yTU+Mgf4b8KRZXN9lE1G/V73ys1WzuaLvDjzJ+bTzd oQIILZsMeZVPa9pVgWNvnHPMeXIhmhCOlciZRn7Hshg045L7ZaSsYkONMs4f9HYrWjsY bHcA==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@bootlin.com header.s=gm1 header.b=fohiULdI; 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-205504-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-205504-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=bootlin.com Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [147.75.199.223]) by mx.google.com with ESMTPS id d75a77b69052e-44038b6720esi34105881cf.633.2024.06.07.00.19.35 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 07 Jun 2024 00:19:36 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-205504-linux.lists.archive=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=fohiULdI; 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-205504-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.199.223 as permitted sender) smtp.mailfrom="linux-kernel+bounces-205504-linux.lists.archive=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 1B55A1C25097 for ; Fri, 7 Jun 2024 07:19:03 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id CCB6B15442B; Fri, 7 Jun 2024 07:18:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bootlin.com header.i=@bootlin.com header.b="fohiULdI" Received: from relay8-d.mail.gandi.net (relay8-d.mail.gandi.net [217.70.183.201]) (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 D8BB429406; Fri, 7 Jun 2024 07:18:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=217.70.183.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717744730; cv=none; b=ZXVsflaMWoIzdjbHXTnMMdRafjAILES1uq/Ba6rYKK2hUBgc0JoXfIgIYUhec3KFDwEUqyn6THuHzXUaDjYvKZQno9m5DfYTS2UZAIBsJDFErV2AbTxCvWJ7/gWrqbKEeU0SjiXRDklmhzXEGmKYUARpF6HoUdUdVJLupD9mKLE= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717744730; c=relaxed/simple; bh=yG+T/UEpCqCSvLfKbeP4ojTfLvjMWyTe/9IZBv8PHaQ=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:Content-Type; b=p5Pb+fdOvIZeKJTv4+IO4oGrNnabVGMoUlDSqBT/mblQbocAS8Uyv1f4GE4Fy0KpOf8mmjaLgNrdT5yokJLzDm0KDdFWpyK/c6i/RaxFbt6zsPnrN3vE0ER5bvCKSv93ieZSYU7v1dkicDroetCOJshxXXB7/AIcW7pE1fzyPag= 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=fohiULdI; arc=none smtp.client-ip=217.70.183.201 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 F119F1BF203; Fri, 7 Jun 2024 07:18:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1717744726; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=INDco8Dct61gOk37+4SpGwRZ3UaFmubJwDoSRl1HXJE=; b=fohiULdIjWNoT1rMWI8zcXSG7qd777wcXuvbbmNDYwHSN/iyzoy1H5fLM09UTIjt5gxY3N FQc5N+UiZShnjVtCgUeeWYMGcheZIfY3QcMQ8/Qz0kswlv+5vX+KOa8M7Gxlzrie06ygse hNAas8tt6g43zOsnVdxWXADPMNDV6m2RhAtjvPgtapyMt1RriKe8yPxVYJJrzP8f+6Pu5d LiV1xea2ZPCrka/auKuWhDzOtk0AvpRyfzlLujejRGKjxKes4IYYAs6QzFP5C2eNPSKeqT ar8hpJSpTtFb8i3V7WI7fnLcWI3JL0zQ2t2j+9jxQkCFWi4WVES2q5/x4zse8Q== From: Maxime Chevallier To: davem@davemloft.net Cc: Maxime Chevallier , netdev@vger.kernel.org, linux-kernel@vger.kernel.org, thomas.petazzoni@bootlin.com, Andrew Lunn , Jakub Kicinski , Eric Dumazet , Paolo Abeni , Russell King , linux-arm-kernel@lists.infradead.org, Christophe Leroy , Herve Codina , Florian Fainelli , Heiner Kallweit , Vladimir Oltean , =?UTF-8?q?K=C3=B6ry=20Maincent?= , Jesse Brandeburg , =?UTF-8?q?Marek=20Beh=C3=BAn?= , Piergiorgio Beruto , Oleksij Rempel , =?UTF-8?q?Nicol=C3=B2=20Veronese?= , Simon Horman , mwojtas@chromium.org, Nathan Chancellor , Antoine Tenart Subject: [PATCH net-next v13 00/13] Introduce PHY listing and link_topology tracking Date: Fri, 7 Jun 2024 09:18:13 +0200 Message-ID: <20240607071836.911403-1-maxime.chevallier@bootlin.com> X-Mailer: git-send-email 2.45.1 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-GND-Sasl: maxime.chevallier@bootlin.com 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@bootlin.com/ https://lore.kernel.org/netdev/20240429131008.439231-1-maxime.chevallier@bootlin.com/ https://lore.kernel.org/netdev/20240507102822.2023826-1-maxime.chevallier@bootlin.com/ 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@bootlin.com/ Link to v11: https://lore.kernel.org/netdev/20240404093004.2552221-1-maxime.chevallier@bootlin.com/ 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 | 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