Received: by 2002:a05:7412:d008:b0:f9:6acb:47ec with SMTP id bd8csp448312rdb; Wed, 20 Dec 2023 01:46:58 -0800 (PST) X-Google-Smtp-Source: AGHT+IFAi4405rLg3tA1Bhn/1uAMxmAE+e+Dx40iCzpt5msWqd4mJ+V0RxVq4sygi46VJQuCUgH9 X-Received: by 2002:a05:6870:c18e:b0:204:d5e:8a63 with SMTP id h14-20020a056870c18e00b002040d5e8a63mr669994oad.108.1703065618367; Wed, 20 Dec 2023 01:46:58 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1703065618; cv=none; d=google.com; s=arc-20160816; b=K64uogwvxLQV/JDnMplRPrLiw1wbLwWGK6iXSNndCkRiCwSzRq+mnpdIGBO9CPEEDI o5cDEh06/X0CbXeAm5B29n7GBBM10X5SqtgCnEVbcS+4IB18ep7g2hy9yCKqHq5GdAfW pKCaKqBosD6r4t65xjNF1OwlMnuGB3scSer3muT+xh/Jtl14W/7q2qf2sFFZeJeVlbnE JfGDPMno4H7flGHDHedVStoBX+qywvERpsHYFWz9jGHHUYN7dG/YRCuNH1F200aU4E9B 5H2QRL5C+kVy0bHPT9Ut0wIbalLF9VDf3NKBgFmOTPEpfFANl6dZJDXseybSGuaiBtXw AWAg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=user-agent:in-reply-to:content-transfer-encoding :content-disposition:mime-version:list-unsubscribe:list-subscribe :list-id:precedence:references:message-id:subject:cc:to:from:date; bh=A1F0utRumjuPxv/oR5tPg7z1mGrnJd9cDCtzkrn8xNU=; fh=MfQQ1uEghD2g528QDBtP/X6Uvxg5itgf0a+YGJw4QIE=; b=Z0SOgHJ+rnuKVI993TeEoKbfICYqj4Dw1o6tu4lywp3qN9264qaGJbBbwru2HSKr1U xjDU0Pi1G3yw/CVSv3AmDnsGLMgAlMgfnObhHVqnrXgStI+qbf4cugfkM39ImerL16S0 4S5WCpvlOnlwCahRx671bAmFz3Sb5gQ2NAdj1G9fn+HOA/MRRAFQzRq+Fns5aB2ykoPm yQuA0vCrL0xuMeL6knC6U9hg4q2VtrOG6oOpeVfJugoEc492JyltfEdSOX8kds8n/ExN 2Mo257tcbq9UhfRlD731MtJkURaa2apZkFIyAm+SSkFWCn6TKsTBVsg5k3DBYbqDAUq+ Jz6A== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel+bounces-6647-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.48.161 as permitted sender) smtp.mailfrom="linux-kernel+bounces-6647-linux.lists.archive=gmail.com@vger.kernel.org" Return-Path: Received: from sy.mirrors.kernel.org (sy.mirrors.kernel.org. [147.75.48.161]) by mx.google.com with ESMTPS id f25-20020a656299000000b005c684e1f2ecsi21230338pgv.400.2023.12.20.01.46.57 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 Dec 2023 01:46:58 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-6647-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.48.161 as permitted sender) client-ip=147.75.48.161; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel+bounces-6647-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.48.161 as permitted sender) smtp.mailfrom="linux-kernel+bounces-6647-linux.lists.archive=gmail.com@vger.kernel.org" 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 sy.mirrors.kernel.org (Postfix) with ESMTPS id A406CB25566 for ; Wed, 20 Dec 2023 09:46:56 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id E756F1F61F; Wed, 20 Dec 2023 09:46:43 +0000 (UTC) X-Original-To: linux-kernel@vger.kernel.org Received: from metis.whiteo.stw.pengutronix.de (metis.whiteo.stw.pengutronix.de [185.203.201.7]) (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 070B51F602 for ; Wed, 20 Dec 2023 09:46:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=pengutronix.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=pengutronix.de Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.whiteo.stw.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1rFt9w-00032F-RJ; Wed, 20 Dec 2023 10:46:36 +0100 Received: from [2a0a:edc0:2:b01:1d::c0] (helo=ptx.whiteo.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rFt9t-000DKM-LV; Wed, 20 Dec 2023 10:46:34 +0100 Received: from ore by ptx.whiteo.stw.pengutronix.de with local (Exim 4.92) (envelope-from ) id 1rFt9u-007uXL-LS; Wed, 20 Dec 2023 10:46:34 +0100 Date: Wed, 20 Dec 2023 10:46:34 +0100 From: Oleksij Rempel To: Vladimir Oltean Cc: Woojung Huh , Andrew Lunn , Arun Ramadoss , Florian Fainelli , netdev@vger.kernel.org, linux-kernel@vger.kernel.org, UNGLinuxDriver@microchip.com, Eric Dumazet , kernel@pengutronix.de, Jakub Kicinski , Paolo Abeni , "David S. Miller" Subject: Re: [PATCH net-next v1 3/3] net: dsa: microchip: Fix PHY loopback configuration for KSZ8794 and KSZ8873 Message-ID: <20231220094634.GG1697233@pengutronix.de> References: <20231121152426.4188456-1-o.rempel@pengutronix.de> <20231121152426.4188456-1-o.rempel@pengutronix.de> <20231121152426.4188456-3-o.rempel@pengutronix.de> <20231121152426.4188456-3-o.rempel@pengutronix.de> <20231207002823.2qx24nxjhn6e43w4@skbuf> <20231207051502.GB1324895@pengutronix.de> <20231207140030.ki625ety6cg3ujxn@skbuf> 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-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20231207140030.ki625ety6cg3ujxn@skbuf> X-Sent-From: Pengutronix Hildesheim X-URL: http://www.pengutronix.de/ X-Accept-Language: de,en X-Accept-Content-Type: text/plain User-Agent: Mutt/1.10.1 (2018-07-13) X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: ore@pengutronix.de X-SA-Exim-Scanned: No (on metis.whiteo.stw.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org On Thu, Dec 07, 2023 at 04:00:30PM +0200, Vladimir Oltean wrote: > On Thu, Dec 07, 2023 at 06:15:02AM +0100, Oleksij Rempel wrote: > > On Thu, Dec 07, 2023 at 02:28:23AM +0200, Vladimir Oltean wrote: > > > On Tue, Nov 21, 2023 at 04:24:26PM +0100, Oleksij Rempel wrote: > > > > Correct the PHY loopback bit handling in the ksz8_w_phy_bmcr and > > > > ksz8_r_phy_bmcr functions for KSZ8794 and KSZ8873 variants in the ksz8795 > > > > driver. Previously, the code erroneously used Bit 7 of port register 0xD > > > > for both chip variants, which is actually for LED configuration. This > > > > update ensures the correct registers and bits are used for the PHY > > > > loopback feature: > > > > > > > > - For KSZ8794: Use 0xF / Bit 7. > > > > - For KSZ8873: Use 0xD / Bit 0. > > > > > > > > Signed-off-by: Oleksij Rempel > > > > --- > > > > > > How did you find, and how did you test this, and on which one of the switches? > > > > I tested it by using "ethtool -t lanX" command on KSZ8873. Before this > > patch the link will stop to work _after_ end of the selftest. The > > selftest will fail too. > > > > After this patch, the selftest is passed, except of the TCP test. And > > link is working _after_ the selftest, > > So you are suggesting that this far-end loopback mode does work as > expected by the kernel. > > But is that consistent with the description from the datasheet? It speaks > about an "originating PHY port", but maybe this is confusing, because > based on your test, even the CPU port could be originating the traffic > that gets looped back? > > I see it says that far-end loopback goes through the switching fabric. > So the packet, on its return path from the loopback port, gets forwarded > by its MAC DA? That can't be, because the MAC DA lookup has already > determined the destination to be the loopback port (and no MAC SA<->DA > swapping should take place). Or it is forced by the switch to return > specifically to the originating port? > > With a bridge between the 2 LAN ports, and lan1 put in loopback, what > happens if you send a broadcast packet towards lan1? Will you also see > it on lan2's link partner, or only on the CPU port? > > It's not your fault, but this is all a bit confusing, and I'm not quite > able to match up the documentation with your results. I will trust the > experimental results, however. I did following tests: ip l a name br0 type bridge ip l s dev br0 up ip l s lan1 master br0 ip l s dev lan1 up ip l s lan2 master br0 ip l s dev lan2 up # to avoid link drop with the loopback mode ethtool -s lan1 speed 100 duplex full autoneg off # currently no tool support loopback configuration, so set it directly # to the register mii -i lan1 -p 0 -r 0 -v 6120 ################# Test 1 ########################### # on DUT ping 192.168.2.200 -I lan1 on eth0/cpu interface: 00:03:20.656445 AF Unknown (4294967295), length 61: 0x0000: ffff 000e cd00 cdbe 0806 0001 0800 0604 ................ 0x0010: 0001 000e cd00 cdbe c0a8 010e 0000 0000 ................ 0x0020: 0000 c0a8 02c8 0000 0000 0000 0000 0000 ................ 0x0030: 0000 0000 0000 0000 01 ......... 00:03:20.656548 AF Unknown (4294967295), length 61: 0x0000: ffff 000e cd00 cdbe 0806 0001 0800 0604 ................ 0x0010: 0001 000e cd00 cdbe c0a8 010e 0000 0000 ................ 0x0020: 0000 c0a8 02c8 0000 0000 0000 0000 0000 ................ 0x0030: 0000 0000 0000 0000 00 ......... on lan1 remote system: 100 701.752654927 00:0e:cd:00:cd:be → ff:ff:ff:ff:ff:ff ARP 60 Who has 192.168.2.200? Tell 192.168.1.14 on lan2 remote system: 347 1071.154437549 00:0e:cd:00:cd:be → ff:ff:ff:ff:ff:ff ARP 60 Who has 192.168.2.200? Tell 192.168.1.14 ################# Test 2 ########################### # send ping on on lan1 remote system: ping 172.17.0.1 on eth0/cpu interface DUT: -- nothing -- on lan1 remote system: 109 946.617862621 80:61:5f:0c:29:54 → ff:ff:ff:ff:ff:ff ARP 42 Who has 172.17.0.1? Tell 172.17.0.12 on lan2 remote system: -- nothing -- ################# Test 3 ########################### # send ping on on lan2 remote system: ping 172.17.0.122 on eth0/cpu interface DUT: 00:12:18.034220 AF Unknown (4294967295), length 61: 0x0000: ffff 8061 5f0c 2955 0806 0001 0800 0604 ...a_.)U........ 0x0010: 0001 8061 5f0c 2955 ac11 000d 0000 0000 ...a_.)U........ 0x0020: 0000 ac11 007a 0000 0000 0000 0000 0000 .....z.......... 0x0030: 0000 0000 0000 0000 01 ......... 00:12:18.034228 AF Unknown (4294967295), length 61: 0x0000: ffff 8061 5f0c 2955 0806 0001 0800 0604 ...a_.)U........ 0x0010: 0001 8061 5f0c 2955 ac11 000d 0000 0000 ...a_.)U........ 0x0020: 0000 ac11 007a 0000 0000 0000 0000 0000 .....z.......... 0x0030: 0000 0000 0000 0000 00 on lan1 remote system: -- nothing -- on lan2 remote system: 476 1608.560311470 80:61:5f:0c:29:55 → ff:ff:ff:ff:ff:ff ARP 42 Who has 172.17.0.122? Tell 172.17.0.13 477 1608.560361808 80:61:5f:0c:29:55 → ff:ff:ff:ff:ff:ff ARP 60 Who has 172.17.0.122? Tell 172.17.0.13 I also retest selftest results and noted that it is not working if port is part of bridge. Regards, Oleksij -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |