STRUCT FLOW_DISSECTOR_KEY_CT(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌸 struct flow_dissector_key_ct(9) 🌸

okay bestie, so this one lives in the Kernel API Manual, and it's literally the struct that holds all your conntrack (connection tracking) tea β˜• β€” the state, the zone, the mark, the labels. it's giving "backstage pass to netfilter" energy and honestly? we're obsessed.


✨ NAME ✨

struct flow_dissector_key_ct β€” and yeah, that's it, the name section is an empty box in the original too, so don't come for me πŸ’… the struct itself does all the talking.


πŸ¦‹ SYNOPSIS πŸ¦‹

here's the whole vibe, copied exactly so you can trust me:

struct flow_dissector_key_ct {
    u16 ct_state;
    u16 ct_zone;
    u32 ct_mark;
    u32 ct_labels[4];
};

look at her. four fields, zero notes. main character struct behavior, no cap πŸ‘‘


πŸŽ€ Members πŸŽ€

break it down with me:

  • ct_state β€” the conntrack state, but only after converting with map. so it's not raw, it's been remapped into flow-dissector-friendly form. important lil distinction, don't skip it ✨
  • ct_zone β€” the conntrack zone. you know, the zone. the neighborhood your connection lives in 🏑
  • ct_mark β€” the conntrack mark. (the original manpage literally spells it conttrack down there, bless its heart πŸ™ˆ we still love it, typo and all)
  • ct_labels β€” the conntrack labels. it's an array of four u32s, so ct_labels[4], so plenty of label room to go around πŸ’–

πŸ”₯ SEE ALSO πŸ”₯

first up, the source of truth itself β€” Kernel file ./include/net/flow_dissector.h β€” go read the actual struct, it's right there.

and then, the entire flow dissector family reunion 😭 every single sibling, no one left out:

  • struct flow_dissector_key_control(9)
  • struct flow_dissector_key_basic(9)
  • struct flow_dissector_key_enc_opts(9)
  • struct flow_dissector_key_ipv4_addrs(9)
  • struct flow_dissector_key_ipv6_addrs(9)
  • struct flow_dissector_key_tipc(9)
  • struct flow_dissector_key_addrs(9)
  • struct flow_dissector_key_arp(9)
  • struct flow_dissector_key_ports(9)
  • struct flow_dissector_key_ports_range(9)
  • struct flow_dissector_key_icmp(9)
  • struct flow_dissector_key_eth_addrs(9)
  • struct flow_dissector_key_tcp(9)
  • struct flow_dissector_key_ip(9)
  • struct flow_dissector_key_meta(9)
  • struct flow_dissector_key_hash(9)
  • struct flow_dissector_key_num_of_vlans(9)
  • struct flow_dissector_key_pppoe(9)
  • struct flow_dissector_key_l2tpv3(9)
  • struct flow_dissector_key_ipsec(9)
  • struct flow_dissector_key_cfm(9)

like. that's the whole group chat. iykyk 🫢


πŸ’œ the sign-off πŸ’œ

this little icon of a page ships out of ./include/net, dated October 2026, and it answers to the name struct flow_...ector_key_ct(9) (yes, they really abbreviate it that hard in the header, it's giving "my name is too long for the terminal" πŸ’€). go forth and dissect some flows, bestie β€” you're gonna slay 🧚✨

πŸ“¦ where this page comes from