From patchwork Thu Feb 13 15:34:19 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lorenzo Bianconi X-Patchwork-Id: 13973462 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.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 DBADB26B087; Thu, 13 Feb 2025 15:34:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739460887; cv=none; b=hrPqVi7ZPxDvSvdK1F3b9BLNr/4/m1D/KOUFBcN/6R8Cb5Mswae7nn6xtl6V8GZj7/vAIlq9QhQVfyKnokMq6z/60AnUF2V6zI1O7XzxPDm52zcE1OgXwxDt2ocvIjZuAhN4Pe/hnr2yvRaZ5VcFGIzZWklhtRz3N8bDNpyEDag= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739460887; c=relaxed/simple; bh=Rl03C7By4SNA25wNS7XOBCBNVDSlVEq3pH9hEVWdSlQ=; h=From:Subject:Date:Message-Id:MIME-Version:Content-Type:To:Cc; b=ElTeLxylxiizyKc3yNRjxmDlIOdIzGcYVdvrt3BBVLDRxQ4iN9PD0pUH8spWLJUkMwwapFC1gDdErL6ViUsGaYtaD0LPNnAa9JK+QvQ4xBebgaapZXRzibo1WAwov40CYNWefH8+CtrpuHVGHWIh+qOWxxshRDpi+QuMBwY/RTg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=eaMrfNJ7; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="eaMrfNJ7" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 1C65AC4CED1; Thu, 13 Feb 2025 15:34:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1739460886; bh=Rl03C7By4SNA25wNS7XOBCBNVDSlVEq3pH9hEVWdSlQ=; h=From:Subject:Date:To:Cc:From; b=eaMrfNJ7ATPcRAmtTwm1BPyCnEid6mj+pFXnFl91ghifrBVayVc8MRLnsAHHHHS8M UXq7AnBvBPMeVMv8t1nIEKIe3dwa2cLnjnmSe/Hwe0n2tk17C/YTr2p8HnSDwSR7rE NAK4jdlqgaVRpx54x3AVjVKHaekbNI8i5giidEEpuD2AUn4AznFQyk7xdb8FKlF1AS I1tWu5u7pdi/rS7AerdDt7fqXy+gwhP6vuCLbr7T8aKo1DGXm11WP5JXZPIIE5NRfQ jY9+tlJGE3NnSnIZKAhs5tE53yd5VzSVFA8XrclK1kNJnabF45O6au2vQJsS8/z+08 4coL7k85ekyUA== From: Lorenzo Bianconi Subject: [PATCH net-next v4 00/16] Introduce flowtable hw offloading in airoha_eth driver Date: Thu, 13 Feb 2025 16:34:19 +0100 Message-Id: <20250213-airoha-en7581-flowtable-offload-v4-0-b69ca16d74db@kernel.org> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-B4-Tracking: v=1; b=H4sIAPsQrmcC/43OMQ7CMAwF0KugzAQlNkkoE/dADA51aUTVoLQqI NS7kzIVMZTN/w/v+yU6ToE7sV+9ROIhdCG2OWzXK3Guqb2wDGXOAhQYBcpICinWJLl1Zqdl1cR 7T75hGat8UykZSWuPHrdUiqzcElfh8Vk4nnKuQ9fH9PwMDnpq/7cHLZUs0cK5osJ5pQ9XTi03m 5guYsIHmINuGYQMIgFgYQsg635AnIPFMojTh56sYmeMsfgFjuP4BrBpwnRxAQAA X-Change-ID: 20250205-airoha-en7581-flowtable-offload-e3a11b3b34ad To: Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Felix Fietkau , Sean Wang , Matthias Brugger , AngeloGioacchino Del Regno , Philipp Zabel , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Lorenzo Bianconi , "Chester A. Unal" , Daniel Golle , DENG Qingfang , Andrew Lunn , Vladimir Oltean Cc: netdev@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, devicetree@vger.kernel.org, upstream@airoha.com, Mateusz Polchlopek , Christian Marangi , Krzysztof Kozlowski X-Mailer: b4 0.14.2 X-Patchwork-Delegate: kuba@kernel.org Introduce netfilter flowtable integration in airoha_eth driver to offload 5-tuple flower rules learned by the PPE module if the user accelerates them using a nft configuration similar to the one reported below: table inet filter { flowtable ft { hook ingress priority filter devices = { lan1, lan2, lan3, lan4, eth1 } flags offload; } chain forward { type filter hook forward priority filter; policy accept; meta l4proto { tcp, udp } flow add @ft } } Packet Processor Engine (PPE) module available on EN7581 SoC populates the PPE table with 5-tuples flower rules learned from traffic forwarded between the GDM ports connected to the Packet Switch Engine (PSE) module. airoha_eth driver configures and collects data from the PPE module via a Network Processor Unit (NPU) RISC-V module available on the EN7581 SoC. Move airoha_eth driver in a dedicated folder (drivers/net/ethernet/airoha). --- Changes in v4: - Add dedicated driver for the Airoha NPU module - Move airoha npu binding in net - Link to v3: https://lore.kernel.org/r/20250209-airoha-en7581-flowtable-offload-v3-0-dba60e755563@kernel.org Changes in v3: - Fix TSO support for header cloned skbs - Do not use skb_pull_rcsum() in airoha_get_dsa_tag() - Fix head lean computation after running airoha_get_dsa_tag() in airoha_dev_xmit() - Link to v2: https://lore.kernel.org/r/20250207-airoha-en7581-flowtable-offload-v2-0-3a2239692a67@kernel.org Changes in v2: - Add airoha-npu document binding - Enable Rx SPTAG on MT7530 dsa switch for EN7581 SoC. - Fix warnings in airoha_npu_run_firmware() - Fix sparse warnings - Link to v1: https://lore.kernel.org/r/20250205-airoha-en7581-flowtable-offload-v1-0-d362cfa97b01@kernel.org --- Lorenzo Bianconi (16): net: airoha: Fix TSO support for header cloned skbs net: airoha: Move airoha_eth driver in a dedicated folder net: airoha: Move definitions in airoha_eth.h net: airoha: Move reg/write utility routines in airoha_eth.h net: airoha: Move register definitions in airoha_regs.h net: airoha: Move DSA tag in DMA descriptor net: dsa: mt7530: Enable Rx sptag for EN7581 SoC net: airoha: Enable support for multiple net_devices net: airoha: Move REG_GDM_FWD_CFG() initialization in airoha_dev_init() net: airoha: Rename airoha_set_gdm_port_fwd_cfg() in airoha_set_vip_for_gdm_port() dt-bindings: net: airoha: Add the NPU node for EN7581 SoC dt-bindings: net: airoha: Add airoha,npu phandle property net: airoha: Introduce Airoha NPU support net: airoha: Introduce flowtable offload support net: airoha: Add loopback support for GDM2 net: airoha: Introduce PPE debugfs support .../devicetree/bindings/net/airoha,en7581-eth.yaml | 10 + .../devicetree/bindings/net/airoha,en7581-npu.yaml | 72 ++ drivers/net/dsa/mt7530.c | 5 + drivers/net/dsa/mt7530.h | 4 + drivers/net/ethernet/Kconfig | 2 + drivers/net/ethernet/Makefile | 1 + drivers/net/ethernet/airoha/Kconfig | 27 + drivers/net/ethernet/airoha/Makefile | 9 + .../net/ethernet/{mediatek => airoha}/airoha_eth.c | 1281 +++++--------------- drivers/net/ethernet/airoha/airoha_eth.h | 553 +++++++++ drivers/net/ethernet/airoha/airoha_npu.c | 521 ++++++++ drivers/net/ethernet/airoha/airoha_npu.h | 28 + drivers/net/ethernet/airoha/airoha_ppe.c | 894 ++++++++++++++ drivers/net/ethernet/airoha/airoha_ppe_debugfs.c | 175 +++ drivers/net/ethernet/airoha/airoha_regs.h | 798 ++++++++++++ drivers/net/ethernet/mediatek/Kconfig | 8 - drivers/net/ethernet/mediatek/Makefile | 1 - 17 files changed, 3385 insertions(+), 1004 deletions(-) --- base-commit: c3a97ccaed80986fc3c0581661bf9170847d23ba change-id: 20250205-airoha-en7581-flowtable-offload-e3a11b3b34ad Best regards,