[SRU][F:linux-bluefield][PATCH] net/sched: act_ct: Fix flow table lookup after ct clear or switching zones
Bodong Wang
bodong at nvidia.com
Mon Mar 7 15:57:59 UTC 2022
From: Paul Blakey <paulb at nvidia.com>
BugLink: https://bugs.launchpad.net/bugs/1963948
Flow table lookup is skipped if packet either went through ct clear
action (which set the IP_CT_UNTRACKED flag on the packet), or while
switching zones and there is already a connection associated with
the packet. This will result in no SW offload of the connection,
and the and connection not being removed from flow table with
TCP teardown (fin/rst packet).
To fix the above, remove these unneccary checks in flow
table lookup.
Fixes: 46475bb20f4b ("net/sched: act_ct: Software offload of established flows")
Signed-off-by: Paul Blakey <paulb at nvidia.com>
Acked-by: Marcelo Ricardo Leitner <marcelo.leitner at gmail.com>
Signed-off-by: David S. Miller <davem at davemloft.net>
(cherry picked from commit 2f131de361f6d0eaff17db26efdb844c178432f8)
Signed-off-by: Bodong Wang <bodong at nvidia.com>
---
net/sched/act_ct.c | 5 -----
1 file changed, 5 deletions(-)
diff --git a/net/sched/act_ct.c b/net/sched/act_ct.c
index 8a78cbd..1c3d0b2 100644
--- a/net/sched/act_ct.c
+++ b/net/sched/act_ct.c
@@ -511,11 +511,6 @@ static bool tcf_ct_flow_table_lookup(struct tcf_ct_params *p,
struct nf_conn *ct;
u8 dir;
- /* Previously seen or loopback */
- ct = nf_ct_get(skb, &ctinfo);
- if ((ct && !nf_ct_is_template(ct)) || ctinfo == IP_CT_UNTRACKED)
- return false;
-
switch (family) {
case NFPROTO_IPV4:
if (!tcf_ct_flow_table_fill_tuple_ipv4(skb, &tuple, &tcph))
--
1.8.3.1
More information about the kernel-team
mailing list