aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/generic/pending-5.10/704-03-netfilter-nft_flow_offload-fix-offload-with-pppoe-vl.patch
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@nbd.name>2022-05-06 15:49:58 +0200
committerFelix Fietkau <nbd@nbd.name>2022-05-06 20:11:01 +0200
commit53fc6e9edeae7364847bd1a7a81a331feeb56172 (patch)
tree5db1e05f2ac8693330d703f842a2694cf715e26e /target/linux/generic/pending-5.10/704-03-netfilter-nft_flow_offload-fix-offload-with-pppoe-vl.patch
parent77e123340f0b5490905e27ddc92f0dff8ed017a5 (diff)
downloadupstream-53fc6e9edeae7364847bd1a7a81a331feeb56172.tar.gz
upstream-53fc6e9edeae7364847bd1a7a81a331feeb56172.tar.bz2
upstream-53fc6e9edeae7364847bd1a7a81a331feeb56172.zip
kernel: fix flow offload issues with pppoe
sync xt_FLOWOFFLOAD code with latest version of nft_flow_offload Signed-off-by: Felix Fietkau <nbd@nbd.name> (cherry-picked from commit 726ef8ba2dbe4d4a693c4d9300bc69e234e6d67d)
Diffstat (limited to 'target/linux/generic/pending-5.10/704-03-netfilter-nft_flow_offload-fix-offload-with-pppoe-vl.patch')
-rw-r--r--target/linux/generic/pending-5.10/704-03-netfilter-nft_flow_offload-fix-offload-with-pppoe-vl.patch24
1 files changed, 24 insertions, 0 deletions
diff --git a/target/linux/generic/pending-5.10/704-03-netfilter-nft_flow_offload-fix-offload-with-pppoe-vl.patch b/target/linux/generic/pending-5.10/704-03-netfilter-nft_flow_offload-fix-offload-with-pppoe-vl.patch
new file mode 100644
index 0000000000..1e0dc9957d
--- /dev/null
+++ b/target/linux/generic/pending-5.10/704-03-netfilter-nft_flow_offload-fix-offload-with-pppoe-vl.patch
@@ -0,0 +1,24 @@
+From: Felix Fietkau <nbd@nbd.name>
+Date: Fri, 6 May 2022 15:15:06 +0200
+Subject: [PATCH] netfilter: nft_flow_offload: fix offload with pppoe +
+ vlan
+
+When running a combination of PPPoE on top of a VLAN, we need to set
+info->outdev to the PPPoE device, otherwise PPPoE encap is skipped
+during software offload.
+
+Signed-off-by: Felix Fietkau <nbd@nbd.name>
+---
+
+--- a/net/netfilter/nft_flow_offload.c
++++ b/net/netfilter/nft_flow_offload.c
+@@ -123,7 +123,8 @@ static void nft_dev_path_info(const stru
+ info->indev = NULL;
+ break;
+ }
+- info->outdev = path->dev;
++ if (!info->outdev)
++ info->outdev = path->dev;
+ info->encap[info->num_encaps].id = path->encap.id;
+ info->encap[info->num_encaps].proto = path->encap.proto;
+ info->num_encaps++;