ice_flow_set_fld_ext(9)
π 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 notICE_FLOW_FLD_OFF_INVAL, this is the location of the value to match from the entry's input buffer π¦mask_locβ if it's notICE_FLOW_FLD_OFF_INVAL, this is the location of the mask value from the entry's input buffer πΈlast_locβ if it's notICE_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 π:
ice_flow_val_hdrs(9)ice_flow_calc_seg_sz(9)ice_flow_proc_seg_hdrs(9)ice_flow_xtract_fld(9)ice_flow_xtract_raws(9)ice_flow_create_xtrct_seq(9)ice_flow_proc_segs(9)ice_flow_find_prof_conds(9)ice_flow_find_prof_id(9)ice_flow_rem_entry_sync(9)ice_flow_add_prof_sync(9)ice_flow_rem_prof_sync(9)ice_flow_assoc_prof(9)ice_flow_disassoc_prof(9)ice_flow_set_parser_prof(9)ice_flow_add_prof(9)ice_flow_rem_prof(9)ice_flow_add_entry(9)ice_flow_rem_entry(9)ice_flow_set_fld(9)ice_flow_add_fld_raw(9)ice_flow_rem_vsi_prof(9)ice_flow_set_rss_seg_info(9)ice_rem_vsi_rss_list(9)ice_rem_vsi_rss_cfg(9)ice_get_rss_hdr_type(9)ice_rem_rss_list(9)ice_add_rss_list(9)ice_rss_config_xor_word(9)ice_rss_config_xor(9)ice_rss_set_symm(9)ice_rss_cfg_raw_symm(9)ice_rss_update_raw_symm(9)ice_add_rss_cfg_sync(9)ice_add_rss_cfg(9)ice_rem_rss_cfg_sync(9)ice_rem_rss_cfg(9)ice_add_avf_rss_cfg(9)ice_set_rss_cfg_symm(9)ice_replay_rss_cfg(9)ice_get_rss_cfg(9)
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
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms