]> git.baikalelectronics.ru Git - kernel.git/commit
net/sched: flow_dissector: Fix matching on zone id for invalid conns
authorPaul Blakey <paulb@nvidia.com>
Tue, 14 Dec 2021 17:24:34 +0000 (19:24 +0200)
committerJakub Kicinski <kuba@kernel.org>
Sat, 18 Dec 2021 02:06:35 +0000 (18:06 -0800)
commitf75d58b6aa650b4d273b9e8ae3ac7249f5c56e67
treeb8826fcbdb0a89278891d4aac30d2c60977147e2
parent107039c48ce9b75b1a9555f36c48ecff9b18a9ed
net/sched: flow_dissector: Fix matching on zone id for invalid conns

If ct rejects a flow, it removes the conntrack info from the skb.
act_ct sets the post_ct variable so the dissector will see this case
as an +tracked +invalid state, but the zone id is lost with the
conntrack info.

To restore the zone id on such cases, set the last executed zone,
via the tc control block, when passing ct, and read it back in the
dissector if there is no ct info on the skb (invalid connection).

Fixes: 4c72a1db37dc ("net/sched: cls_flower add CT_FLAGS_INVALID flag support")
Signed-off-by: Paul Blakey <paulb@nvidia.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
include/linux/skbuff.h
include/net/pkt_sched.h
net/core/flow_dissector.c
net/sched/act_ct.c
net/sched/cls_flower.c