Re: [PATCH net v2 2/3] net/sched: flow_dissector: Fix matching on zone id for invalid conns
flat view
From: Cong Wang <hidden>
Date: 2021-12-12 01:00:07
On Fri, Dec 10, 2021 at 8:52 PM Jakub Kicinski [off-list ref] wrote:
On Thu, 9 Dec 2021 09:57:33 +0200 Paul Blakey wrote:quoted
@@ -238,10 +239,12 @@ void 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) + size_t mapsize) { #if IS_ENABLED(CONFIG_NF_CONNTRACK) + bool post_ct = tc_skb_cb(skb)->post_ct; struct flow_dissector_key_ct *key; + u16 zone = tc_skb_cb(skb)->zone; enum ip_conntrack_info ctinfo; struct nf_conn_labels *cl; struct nf_conn *ct;@@ -260,6 +263,7 @@ skb_flow_dissect_ct(const struct sk_buff *skb, if (!ct) { key->ct_state = TCA_FLOWER_KEY_CT_FLAGS_TRACKED | TCA_FLOWER_KEY_CT_FLAGS_INVALID; + key->ct_zone = zone; return; }Why is flow dissector expecting skb cb to be TC now? Please keep the appropriate abstractions intact.
Probably because only fl_classify() calls it, but I agree with you on this point, this function is supposed to be TC independent. Thanks.