STRUCT IWL_SSID_IE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– NAME πŸ’–

struct iwl_ssid_ie β€” the directed scan network information element, bestie ✨

So like, this lil struct is literally the thing that carries "hey, go look for this network" energy into a scan. It's giving instruction card. Obsessed.


πŸŽ€ SYNOPSIS πŸŽ€

struct iwl_ssid_ie {
    u8 id;
    u8 len;
    u8 ssid[IEEE80211_MAX_SSID_LEN];
 };

Lowkey the whole struct is three fields and it still ate. Periodt.


🌸 MEMBERS 🌸

  • id β€” the element ID πŸ’… that's literally its whole job
  • len β€” the element length, aka how much of this thing is actually real
  • ssid β€” the element (SSID) data itself, the actual main character 🫢

πŸ¦‹ DESCRIPTION πŸ¦‹

Okay so here's the tea β˜• β€” up to 20 of these can show up in REPLY_SCAN_CMD, and which ones get picked is decided by the "type" bit field in struct iwl_scan_channel. So each channel gets to choose a different set of ssids from among those 20 entries. Not me loving the flexibility 😭

And ngl, the detail you can't skip: SSID IEs get transmitted in reverse order of entry. Yes, backwards. No cap, that's just how it is. πŸ”₯


🌈 SEE ALSO 🌈

Took a lil stroll through the whole scan family, and honestly? Iconic lineup πŸ‘‘ β€” go read these:

  • Kernel file ./drivers/net/wireless/intel/iwlwifi/fw/api/scan.h
  • enum iwl_scan_subcmd_ids(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_general_params_v11(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)

πŸ’œ That's the whole vibe check, bestie β€” 20 entries max, reverse order on the wire, no notes.

And before you go πŸ₯Ί β€” this page came from ./drivers/net/wireless/intel/i..., slapped with an October 2026 date, and it's filed under struct iwl_ssid_ie(9). Stan. πŸ“πŸ§šπŸ’–

πŸ“¦ where this page comes from