summaryrefslogtreecommitdiffstats
path: root/net/sched/act_ct.c
diff options
context:
space:
mode:
authorPaul Blakey <paulb@mellanox.com>2020-03-12 11:23:08 +0100
committerDavid S. Miller <davem@davemloft.net>2020-03-12 23:00:39 +0100
commit8b3646d6e0c4ca4ba5615facaef1312d6d40d123 (patch)
tree7a9fce3f6028080e0375163d11604ef5f73203d1 /net/sched/act_ct.c
parentnet/sched: act_ct: Support restoring conntrack info on skbs (diff)
downloadlinux-8b3646d6e0c4ca4ba5615facaef1312d6d40d123.tar.xz
linux-8b3646d6e0c4ca4ba5615facaef1312d6d40d123.zip
net/sched: act_ct: Support refreshing the flow table entries
If driver deleted an FT entry, a FT failed to offload, or registered to the flow table after flows were already added, we still get packets in software. For those packets, while restoring the ct state from the flow table entry, refresh it's hardware offload. Signed-off-by: Paul Blakey <paulb@mellanox.com> Reviewed-by: Jiri Pirko <jiri@mellanox.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.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/net/sched/act_ct.c b/net/sched/act_ct.c
index 31eef8a847d2..16fc731e5b03 100644
--- a/net/sched/act_ct.c
+++ b/net/sched/act_ct.c
@@ -531,6 +531,7 @@ static bool tcf_ct_flow_table_lookup(struct tcf_ct_params *p,
ctinfo = dir == FLOW_OFFLOAD_DIR_ORIGINAL ? IP_CT_ESTABLISHED :
IP_CT_ESTABLISHED_REPLY;
+ flow_offload_refresh(nf_ft, flow);
nf_conntrack_get(&ct->ct_general);
nf_ct_set(skb, ct, ctinfo);