Thread (8 messages) 8 messages, 4 authors, 2021-12-14

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.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help