Similar to IPIP and IP6I6 tunnels, introduce sw acceleration for IPv4 over IPv6 and SIT tunnels in the netfilter flowtable infrastructure.
--- Changes in v6: - Rebase on top of nf-next and fixed conflicts. - Fix the case when both ingress and egress interfaces are IP tunnels. - Link to v5: https://lore.kernel.org/r/20260709-b4-flowtable-sw-accel-ip6ip-v5-0-828ceaf85...@kernel.org Changes in v5: - Fix ipip6_tunnel_fill_forward_path() to take into account not only IPv6 packet since SIT tunnels can encapsulate even IPv4/MPLS traffic. - Return an error in ipip6_tunnel_fill_forward_path() if tunnel daddr is not set since NBMA tunnels are not supported yet. - Return an error in ipip6_tunnel_fill_forward_path() if encap.type is not TUNNEL_ENCAP_NONE - cosmetics - Link to v4: https://lore.kernel.org/r/20260703-b4-flowtable-sw-accel-ip6ip-v4-0-00398cd12...@kernel.org Changes in v4: - Rebase on top of nf-next and fixed conflicts. - Link to v3: https://lore.kernel.org/r/20260531-b4-flowtable-sw-accel-ip6ip-v3-0-56a2826f3...@kernel.org Changes in v3: - Drop nf_flow_tunnel_v4_push and nf_flow_tunnel_v6_push routines - Rebase on top of net-next tree. - Link to v2: https://lore.kernel.org/r/20260506-b4-flowtable-sw-accel-ip6ip-v2-0-439fd4277...@kernel.org Changes in v2: - Fix MTU check in nf_flow_offload_forward() and in nf_flow_offload_ipv6_forward() - Add SIT sw acceleration support - Link to v1: https://lore.kernel.org/r/20260505-b4-flowtable-sw-accel-ip6ip-v1-0-9ac39ccc9...@kernel.org --- Lorenzo Bianconi (6): net: netfilter: add ether_type to net_device_path_ctx net: netfilter: add encap_proto to flow_offload_tunnel net: netfilter: add IPv4 over IPv6 tunnel flowtable acceleration selftests: netfilter: nft_flowtable.sh: add IPv4 over IPv6 flowtable selftest net: netfilter: add SIT tunnel flowtable acceleration selftests: netfilter: nft_flowtable.sh: add SIT flowtable selftest drivers/net/ethernet/airoha/airoha_ppe.c | 13 +- drivers/net/ethernet/mediatek/mtk_ppe_offload.c | 13 +- include/linux/netdevice.h | 5 +- include/net/netfilter/nf_flow_table.h | 1 + net/core/dev.c | 6 +- net/ipv4/ipip.c | 1 + net/ipv6/ip6_tunnel.c | 6 +- net/ipv6/sit.c | 60 +++ net/netfilter/nf_flow_table_core.c | 19 +- net/netfilter/nf_flow_table_ip.c | 424 +++++++++++++-------- net/netfilter/nf_flow_table_path.c | 20 +- tools/testing/selftests/net/netfilter/config | 1 + .../selftests/net/netfilter/nft_flowtable.sh | 86 ++++- 13 files changed, 461 insertions(+), 194 deletions(-) --- base-commit: 0150128b9506b5869d8d2000c6e71bef0719d6ce change-id: 20260505-b4-flowtable-sw-accel-ip6ip-7101034cd147 Best regards, -- Lorenzo Bianconi <[email protected]>
