On Sat, 11 Dec 2021, Jakub Kicinski 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.
Will do. Sending v3.