diff options
author | Paul Blakey <paulb@nvidia.com> | 2021-12-14 20:24:34 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2022-01-27 13:04:02 +0300 |
commit | a006c84824634fd13f442cd57c1217cc2b1aedbd (patch) | |
tree | 81db8e33d58e109a667d2c258ed8f18b474831d5 /include/linux | |
parent | 3a4ecdfc0cf49f5d5536cd244052b251f8c63365 (diff) | |
download | linux-a006c84824634fd13f442cd57c1217cc2b1aedbd.tar.xz |
net/sched: flow_dissector: Fix matching on zone id for invalid conns
[ Upstream commit 3849595866166b23bf6a0cb9ff87e06423167f67 ]
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: 7baf2429a1a9 ("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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/skbuff.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index b8c273af2910..4f31ca71a82a 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h @@ -1370,7 +1370,7 @@ skb_flow_dissect_ct(const struct sk_buff *skb, struct flow_dissector *flow_dissector, void *target_container, u16 *ctinfo_map, size_t mapsize, - bool post_ct); + bool post_ct, u16 zone); void skb_flow_dissect_tunnel_info(const struct sk_buff *skb, struct flow_dissector *flow_dissector, |