summaryrefslogtreecommitdiffstats
path: root/net/sched/act_ct.c
diff options
context:
space:
mode:
authorPaul Blakey <paulb@nvidia.com>2022-02-17 11:30:48 +0200
committerDavid S. Miller <davem@davemloft.net>2022-02-18 11:02:48 +0000
commit2f131de361f6d0eaff17db26efdb844c178432f8 (patch)
tree04e3fa251f4da5a120e03ff4a88476fdc13cae87 /net/sched/act_ct.c
parent4224cfd7fb6523f7a9d1c8bb91bb5df1e38eb624 (diff)
downloadlinux-2f131de361f6d0eaff17db26efdb844c178432f8.tar.gz
linux-2f131de361f6d0eaff17db26efdb844c178432f8.tar.bz2
linux-2f131de361f6d0eaff17db26efdb844c178432f8.zip
net/sched: act_ct: Fix flow table lookup after ct clear or switching zones
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@nvidia.com> Acked-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/sched/act_ct.c')
-rw-r--r--net/sched/act_ct.c5
1 files changed, 0 insertions, 5 deletions
diff --git a/net/sched/act_ct.c b/net/sched/act_ct.c
index f99247fc6468..33e70d60f0bf 100644
--- a/net/sched/act_ct.c
+++ b/net/sched/act_ct.c
@@ -533,11 +533,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))