ice_flow_set_fld_ext(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… ice_flow_set_fld_ext β€” like, the whole kernel API manual page, bestie ✨

okay so this is the page for ice_flow_set_fld_ext from the Kernel API Manual, and ngl it's kind of a niche little icon but we're gonna get through it together 🫢


🌸 NAME 🌸

ice_flow_set_fld_ext β€” it specifies, like, the locations of a field from the entry's input buffer. that's the whole vibe. periodt.


✨ SYNOPSIS ✨

void ice_flow_set_fld_ext (struct ice_flow_seg_info *seg , enum
ice_flow_field fld , enum ice_flow_fld_match_type field_type , u16
val_loc , u16 mask_loc , u16 last_loc );

look at her. six args. she's booked and busy πŸ’…


πŸŽ€ ARGUMENTS πŸŽ€

  • seg β€” the packet segment that the field you're setting belongs to. like, which little neighborhood of the packet are we in 🏑
  • fld β€” the field being set. the field in question. the main character, honestly πŸ‘‘
  • field_type β€” the type of the field. that's it, that's the whole thing πŸ’–
  • val_loc β€” if it's not ICE_FLOW_FLD_OFF_INVAL, this is the location of the value to match from the entry's input buffer πŸ¦‹
  • mask_loc β€” if it's not ICE_FLOW_FLD_OFF_INVAL, this is the location of the mask value from the entry's input buffer 🌸
  • last_loc β€” if it's not ICE_FLOW_FLD_OFF_INVAL, this is the location of the last/upper value from the entry's input buffer ⭐
okay so the ICE_FLOW_FLD_OFF_INVAL thing shows up three times and it's fr fr important β€” it's the "this one's not set" signal for each of those three locations. iykyk 🧚

πŸ’œ DESCRIPTION πŸ’œ

so what does this helper actually do? she stores the info about a field being matched β€” lowkey a whole little filing cabinet moment πŸ“š β€” and that includes:

  • the type of the field
  • the locations of the value to match
  • the mask
  • the upper-bound value

and all of that lives at the start of the input buffer for a flow entry.

🚨 important caveat bestie: this function should only be used for fixed-size data structures. do not come in here with variable-size nonsense, she will not handle it 😭

she's also kinda clever on the side β€” she opportunistically determines the protocol headers to be present based on the fields being set ✨ like, she'll figure it out if she can.

but πŸ’€ some fields cannot be used alone to determine which protocol headers are present. and sometimes, fields for particular protocol headers aren't matched at all. in those cases? the protocol headers must be explicitly set. no vibes-based guessing allowed. periodt 🫢


πŸ¦‹ SEE ALSO πŸ¦‹

first up, the kernel file where this all lives β€” like her actual address:

  • ./drivers/net/ethernet/intel/ice/ice_flow.c

and now the whole extended friend group, everyone invited to the group chat 🌈:

that's a lot of siblings but they're all iconic in their own way πŸ’–


🌟 sign-off 🌟

this little love letter to ice_flow_set_fld_ext comes to you from ./drivers/net/ethernet/intel/ice, dated October 2026 β€” so mark your calendars, screenshot this, send it to the group chat, and go set some fields πŸŽ€βœ¨ bye bestie, slay πŸ«ΆπŸ’œ

πŸ“¦ where this page comes from