STRUCT IWL_SCAN_GENERAL_PARAMS_V11(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ 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 an enum 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_LMACS of 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 see enum 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 got SCAN_TWO_LMACS slots, one per LMAC ⭐
  • suspend_time β€” max suspend time, per LMAC. also SCAN_TWO_LMACS entries, 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_LMACS entries 🌸
  • num_of_fragments β€” number of fragments needed for full fragmented scan coverage. per LMAC again, SCAN_TWO_LMACS of 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 itself struct 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