From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 472AFC4332F for ; Fri, 9 Dec 2022 09:25:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:CC:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=5UwcZvFiw10suc45u6zFCKvMxjWJOA1TPjMh75ez2Lo=; b=MlLf+cT0PVgnmt AeTq2EW+yYdEECd8UJLv5eyh2SegovLz8QNWlvZvFy0BjuBZJyuaOvdSWSXCe5H1S3i2lyuAPaYUz 8b4wmRKbWTDNjC9ESEKFxyu98BtwWN8iyc2i9uNq1NmUQjKKXBbiWCa1mdmGPUcEDSBNiBPQAAtLB Ce98SZLsROLcfi+mRHbte4Q2jM5B4U1raqyXTQRdd/5J5X8YWg+m5sRKlh582YvbTmTrgSx1PiIz5 RpkY66pwW+MHBQvvA1BB5xRpkZWD9Sj8umRYfcCcUxJhF8i+owsAe6jH0IJQzdpTcxbOFR9GpKfxs uTPUIEOWY9LAmBMcdEOA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1p3Zby-006AzW-Rf; Fri, 09 Dec 2022 09:24:06 +0000 Received: from esa.microchip.iphmx.com ([68.232.154.123]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1p3Zbv-006Axe-Fp for linux-arm-kernel@lists.infradead.org; Fri, 09 Dec 2022 09:24:05 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=microchip.com; i=@microchip.com; q=dns/txt; s=mchp; t=1670577844; x=1702113844; h=date:from:to:cc:subject:message-id:references: mime-version:in-reply-to; bh=XK/r9Yv+fEFNTG77MFjQPZxHHD70wakKqSR1wYV+Yy0=; b=lVGiwLkYi2rbcAAj80+LHDzUvZIy0m65aifT+NijLa5EuaiZ6JgdKayQ eoWhbyJ6FXO/Qr+q56Zph//MOFVWcGqKl1D7UgVcCPfLkvH69y/MvYMWG 7Ri+x34WyTnqrkrjTZ1B1rLpAPjef0lpnMDqKozc0UH7eyUTDrSSAHc+W fmn5sFLafLp2a1Z8fDcgJrDt+CJtOSbvr//GhpuFBhwrJf9fm+xTr501K 5V9W9jLCtjO8Ovs7j6Ccamam14zumx9tE67N3rCP6D3tJFXEB4GqhdNvS 1X6eGfNV5OXzQc894xkmi9Em7PsiDGxdexMrUfRWoOdqpS5mMF9U/xhs1 Q==; X-IronPort-AV: E=Sophos;i="5.96,230,1665471600"; d="scan'208";a="187348703" Received: from unknown (HELO email.microchip.com) ([170.129.1.10]) by esa4.microchip.iphmx.com with ESMTP/TLS/AES256-SHA256; 09 Dec 2022 02:23:58 -0700 Received: from chn-vm-ex03.mchp-main.com (10.10.85.151) by chn-vm-ex02.mchp-main.com (10.10.85.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.12; Fri, 9 Dec 2022 02:23:57 -0700 Received: from localhost (10.10.115.15) by chn-vm-ex03.mchp-main.com (10.10.85.151) with Microsoft SMTP Server id 15.1.2507.12 via Frontend Transport; Fri, 9 Dec 2022 02:23:57 -0700 Date: Fri, 9 Dec 2022 10:29:04 +0100 From: Horatiu Vultur To: Michael Walle CC: , , , , , , , , , , , , Subject: Re: [PATCH net-next v3 4/4] net: lan966x: Add ptp trap rules Message-ID: <20221209092904.asgka7zttvdtijub@soft-dev3-1> References: <20221203104348.1749811-5-horatiu.vultur@microchip.com> <20221208092511.4122746-1-michael@walle.cc> <20221208130444.xshazhpg4e2utvjs@soft-dev3-1> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20221209_012403_690061_03881218 X-CRM114-Status: GOOD ( 41.95 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org The 12/08/2022 14:18, Michael Walle wrote: > > Hi Horatiu, Hi Michael, > > Am 2022-12-08 14:04, schrieb Horatiu Vultur: > > > > > Currently lan966x, doesn't allow to run PTP over interfaces that are > > > > > part of the bridge. The reason is when the lan966x was receiving a > > > > > PTP frame (regardless if L2/IPv4/IPv6) the HW it would flood this > > > > > frame. > > > > > Now that it is possible to add VCAP rules to the HW, such to trap > > > > > these > > > > > frames to the CPU, it is possible to run PTP also over interfaces that > > > > > are part of the bridge. > > > > > > > > This gives me: > > > > > > > > # /etc/init.d/S65ptp4l start > > > > Starting linuxptp daemon: OK > > > > [ 44.136870] vcap_val_rule:1678: keyset was not updated: -22 > > > > [ 44.140196] vcap_val_rule:1678: keyset was not updated: -22 > > > > # > > > > > > > > # ptp4l -v > > > > 3.1.1 > > > > # uname -a > > > > Linux buildroot 6.1.0-rc8-next-20221208+ #924 SMP Thu Dec 8 10:08:58 > > > > CET 2022 armv7l GNU/Linux > > > > > > > > I don't know whats going on, but I'm happy to help with debugging with > > > > some > > > > guidance. > > > > > > Oh, and linuxptp is running on eth0, no bridges are set up. linuxptp > > > is started with "/usr/sbin/ptp4l -f /etc/linuxptp.cfg" > > > > > > # cat /etc/linuxptp.cfg > > > # LinuxPTP configuration file for synchronizing the system clock to > > > # a remote PTP master in slave-only mode. > > > # > > > # By default synchronize time in slave-only mode using UDP and > > > hardware > > > time > > > # stamps on eth0. If the difference to master is >1.0 second correct > > > by > > > # stepping the clock instead of adjusting the frequency. > > > # > > > # If you change the configuration don't forget to update the phc2sys > > > # parameters accordingly in linuxptp-system-clock.service (systemd) > > > # or the linuxptp SysV init script. > > > > > > [global] > > > slaveOnly 1 > > > delay_mechanism Auto > > > network_transport UDPv4 > > > time_stamping hardware > > > step_threshold 1.0 > > > > > > [eth0] > > > > Thanks for trying this! > > Actually I was just booting my board which happens to have linuxptp > started by default. And the error messages were new. But I'm not so > sure anymore if PTP was really working. I'm still puzzled by reading > your commit message. Was it already working for interfaces which aren't > part of a bridge and this commit will make it work even for interfaces > which are part of a bridge? Exactly! This worked on interfaces that were not part of the bridge. And with this commit will make it work even on interfaces that are part of the bridge. > > > The issue is because you have not enabled the TCAM lookups per > > port. They can be enabled using this commands: > > > > tc qdisc add dev eth0 clsact > > This gives me the following error, might be a missing kconfig option: > > # tc qdisc add dev eth0 clsact > RTNETLINK answers: Operation not supported Yes that should be the case, I think you are missing: CONFIG_NET_SCHED But may be others when you try to add the next rule. > > > tc filter add dev eth0 ingress prio 5 handle 5 matchall skip_sw action > > goto chain 8000000 > > > > This will enable the lookup and then you should be able to start again > > the ptp4l. Sorry for not mention this, at least I should have written > > it > > somewhere that this is required. > > > > I was not sure if lan966x should or not enable tcam lookups > > automatically when a ptp trap action is added. I am open to suggestion > > here. > > IMHO, from a user point of view this should just work. For a user > there is no connection between running linuxptp and some filtering > stuff with 'tc'. > > Also, if the answer to my question above is yes, and ptp should > have worked on eth0 before, this is a regression then. OK, I can see your point. With the following diff, you should see the same behaviour as before: --- diff --git a/drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c b/drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c index 904f5a3f636d3..538f4b76cf97a 100644 --- a/drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c +++ b/drivers/net/ethernet/microchip/lan966x/lan966x_vcap_impl.c @@ -91,8 +91,6 @@ lan966x_vcap_is2_get_port_keysets(struct net_device *dev, int lookup, /* Check if the port keyset selection is enabled */ val = lan_rd(lan966x, ANA_VCAP_S2_CFG(port->chip_port)); - if (!ANA_VCAP_S2_CFG_ENA_GET(val)) - return -ENOENT; /* Collect all keysets for the port in a list */ if (l3_proto == ETH_P_ALL) --- > > -michael -- /Horatiu _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel