From 99d511dcd39c3ce56d424c56e4096c7fc59590bb Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Fri, 23 Mar 2018 19:15:58 +0100 Subject: [PATCH] kernel: fix offloading connections with SNAT + DNAT Signed-off-by: Felix Fietkau --- ...w_table-fix-offloading-connections-w.patch | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 target/linux/generic/backport-4.14/368-netfilter-nf_flow_table-fix-offloading-connections-w.patch diff --git a/target/linux/generic/backport-4.14/368-netfilter-nf_flow_table-fix-offloading-connections-w.patch b/target/linux/generic/backport-4.14/368-netfilter-nf_flow_table-fix-offloading-connections-w.patch new file mode 100644 index 00000000000..28c3817c70b --- /dev/null +++ b/target/linux/generic/backport-4.14/368-netfilter-nf_flow_table-fix-offloading-connections-w.patch @@ -0,0 +1,23 @@ +From: Felix Fietkau +Date: Fri, 23 Mar 2018 19:12:30 +0100 +Subject: [PATCH] netfilter: nf_flow_table: fix offloading connections with + SNAT+DNAT + +Pass all NAT types to the flow offload struct, otherwise parts of the +address/port pair do not get translated properly, causing connection +stalls + +Signed-off-by: Felix Fietkau +--- + +--- a/net/netfilter/nf_flow_table_core.c ++++ b/net/netfilter/nf_flow_table_core.c +@@ -83,7 +83,7 @@ flow_offload_alloc(struct nf_conn *ct, s + + if (ct->status & IPS_SRC_NAT) + flow->flags |= FLOW_OFFLOAD_SNAT; +- else if (ct->status & IPS_DST_NAT) ++ if (ct->status & IPS_DST_NAT) + flow->flags |= FLOW_OFFLOAD_DNAT; + + return flow; -- 2.30.2