STRUCT FLOW_DISSECTOR_KEY_PORTS_RANGE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ‘‘ struct flow_dissector_key_ports_range(9) β€” a Kernel API Manual moment

okay so bestie, welcome to the Kernel API Manual πŸ’… this page is literally about a lil struct with no description line to its name (the NAME section is just... the struct itself, and honestly? iconic minimalism ✨). It lives in the kernel file ./include/net/flow_dissector.h and it's giving "I hold port info and I'm not sorry about it." πŸŽ€


✨ SYNOPSIS ✨

here's the whole vibe, character for character, no edits no cap 🫢

struct flow_dissector_key_ports_range {
    union {
      struct flow_dissector_key_ports tp;
      struct {
        struct flow_dissector_key_ports tp_min;
        struct flow_dissector_key_ports tp_max;
      };
    };
 };

like… it's a union of a single port thing and an anonymous struct holding a range of port things. the way that it just nests?? obsessed 😭


🌸 Members 🌸

  • {unnamed_union} β€” anonymous πŸ‘» (yes that's the whole description, she's mysterious)
  • tp β€” port number from packet πŸ“¦ (the single-port main character)
  • {unnamed_struct} β€” also anonymous, also mysterious πŸ«₯
  • tp_min β€” min port number in range πŸ”½ (the lower bound bestie)
  • tp_max β€” max port number in range πŸ”Ό (the upper bound bestie)
ngl the anonymous union + anonymous struct thing is doing a lot of heavy lifting here β€” that's how you get both tp and tp_min/tp_max living in the same memory. it's giving "one union, two moods" πŸ’€

πŸ¦‹ SEE ALSO πŸ¦‹

the whole friend group 🫢 (kernel file ./include/net/flow_dissector.h struct, plus):

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

and that's the whole page, bestie β€” short, sweet, and structurally loaded πŸ’– sign-off time: this one came from the kernel source under ./include/net, dated October 2026, and it's part of the Kernel API Manual set. slay, go read your flow dissector headers πŸ”₯πŸ‘‘βœ¨

πŸ“¦ where this page comes from