STRUCT IWL_SCAN_GENERAL_PARAMS_V11(9)
β¨ struct iwl_scan_general_params_v11 β channel params β¨
okay bestie, welcome to the Kernel API Manual π this is the page for struct iwl_scan_general_params_v11, aka the channel params struct that lives in the iwlwifi scan API. it's giving "small struct, big responsibilities" and honestly we're obsessed π
πΈ SYNOPSIS πΈ
okay so here's the whole thing laid out, no cap, every field exactly as it is:
struct iwl_scan_general_params_v11 {
__le16 flags;
u8 reserved;
u8 scan_start_mac_or_link_id;
u8 active_dwell[SCAN_TWO_LMACS];
u8 adwell_default_2g;
u8 adwell_default_5g;
u8 adwell_default_social_chn;
u8 flags2;
__le16 adwell_max_budget;
__le32 max_out_of_time[SCAN_TWO_LMACS];
__le32 suspend_time[SCAN_TWO_LMACS];
__le32 scan_priority;
u8 passive_dwell[SCAN_TWO_LMACS];
u8 num_of_fragments[SCAN_TWO_LMACS];
};
like, look at her. a whole vibe. π
π¦ Members π¦
let's go field by field, bestie, and i'm gonna tell you exactly what each one does so you're never left guessing π«Ά
flagsβ this one's anenum iwl_umac_scan_general_flags_v2. iconic enum moment β¨reservedβ reserved for future. she's just sitting there holding space for the future, main character energy honestly πscan_start_mac_or_link_idβ tells the firmware to report the scan start TSF time according to this mac (that's everything up to verion 11, yes that's how the original spells it π) or link (starting with version 12) TSF. so like, which clock are we measuring from? this field answers that πactive_dwellβ dwell time for active scan, per LMAC. one entry per LMAC,SCAN_TWO_LMACSof them π«adwell_default_2gβ adaptive dwell default number of APs for 2.4GHz channel. yes that's the 2.4GHz one, don't mix it up πadwell_default_5gβ adaptive dwell default number of APs for 5GHz channels. the 5GHz sibling, slay πadwell_default_social_chnβ adaptive dwell default number of APs per social channel. social channels stay booked and busy π±β¨flags2β for version 11 seeenum iwl_umac_scan_general_params_flags2. Otherwise reserved. so like, v11 girlies get a whole enum, everyone else it's just vibes (reserved) πadwell_max_budgetβ the maximal number of TUs that adaptive dwell can add to the total scan time. it's the spending limit bestie, adaptive dwell cannot go over budget πmax_out_of_timeβ max out of serving channel time, per LMAC. she's gotSCAN_TWO_LMACSslots, one per LMAC βsuspend_timeβ max suspend time, per LMAC. alsoSCAN_TWO_LMACSentries, matching energy π¦scan_priorityβ priority of the request. yes queen, prioritize yourself πpassive_dwellβ continues dwell time for passive channel (without adaptive dwell). the word "continues" is doing its thing in the original and we're respecting it fr fr. also per LMAC,SCAN_TWO_LMACSentries πΈnum_of_fragmentsβ number of fragments needed for full fragmented scan coverage. per LMAC again,SCAN_TWO_LMACSof them β she loves consistency π
π₯ SEE ALSO π₯
okay this list is LONG but we do not skip, we do not summarize, we list every single one because that's the rules and honestly it's kind of satisfying π
the kernel file: ./drivers/net/wireless/intel/iwlwifi/fw/api/scan.h β and then all of these:
enum iwl_scan_subcmd_ids(9)struct iwl_ssid_ie(9)struct iwl_scan_offload_blocklist(9)struct iwl_scan_offload_profile(9)struct iwl_scan_offload_profile_cfg_data(9)struct iwl_scan_offload_profile_cfg_v1(9)struct iwl_scan_offload_profile_cfg(9)struct iwl_scan_schedule_lmac(9)struct iwl_scan_req_tx_cmd(9)struct iwl_scan_channel_cfg_lmac(9)struct iwl_scan_probe_segment(9)struct iwl_scan_probe_req_v1(9)struct iwl_scan_probe_req(9)struct iwl_scan_channel_opt(9)enum iwl_mvm_lmac_scan_flags(9)struct iwl_scan_req_lmac(9)struct iwl_scan_results_notif(9)struct iwl_lmac_scan_complete_notif(9)struct iwl_periodic_scan_complete(9)struct iwl_scan_dwell(9)struct iwl_scan_config_v1(9)struct iwl_scan_config_v2(9)struct iwl_scan_config(9)enum iwl_umac_scan_flags(9)enum iwl_umac_scan_general_flags2(9)enum iwl_umac_scan_general_flags_v2(9)enum iwl_umac_scan_general_params_flags2(9)struct iwl_scan_channel_cfg_umac(9)struct iwl_scan_umac_schedule(9)struct iwl_scan_req_umac_tail_v2(9)struct iwl_scan_umac_chan_param(9)struct iwl_scan_req_umac(9)struct iwl_scan_probe_params_v3(9)struct iwl_scan_probe_params_v4(9)struct iwl_scan_channel_params_v4(9)struct iwl_scan_channel_params_v7(9)struct iwl_scan_channel_params_v8(9)struct iwl_scan_periodic_parms_v1(9)struct iwl_scan_req_params_v12(9)struct iwl_scan_req_params_v17(9)struct iwl_scan_req_params_v18(9)struct iwl_scan_req_umac_v12(9)struct iwl_scan_req_umac_v17(9)struct iwl_scan_req_umac_v18(9)struct iwl_umac_scan_abort(9)enum iwl_umac_scan_abort_status(9)struct iwl_umac_scan_start(9)struct iwl_umac_scan_complete(9)struct iwl_scan_offload_profile_match_v1(9)struct iwl_scan_offload_profiles_query_v1(9)struct iwl_scan_offload_profile_match(9)struct iwl_scan_offload_match_info(9)struct iwl_umac_scan_iter_complete_notif(9)struct iwl_umac_scan_channel_survey_notif(9)
like, that's the whole friend group and they all showed up ππ
ngl this page is straight from./drivers/net/wireless/intel/i...and it's dated October 2026 β the header calls itselfstruct iwl_s...l_params_v11(9)and the footer says the same thing, so we're keeping that energy. periodt. π β¨π hopefully this made the struct make sense bestie, go read some scan code and 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