STRUCT IWL_TOF_RESPONDER_CONFIG_CMD(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ‘‘ struct iwl_tof_responder_config_cmd(9) β€” the ToF AP-mode glow-up

okay bestie, welcome to the Kernel API Manual entry for struct iwl_tof_responder_config_cmd β€” this is the struct that runs the show when your Wi-Fi card is doing ToF AP mode (that's Time-of-Flight, and it's giving main character energy in the ranging world). she's a little packed, but honestly? iconic. let's get into it πŸ’…


✨ NAME ✨

struct iwl_tof_responder_config_cmd β€” ToF AP mode. that's literally it. that's her whole job πŸŽ€


🌸 SYNOPSIS 🌸

struct iwl_tof_responder_config_cmd {
    __le32 cmd_valid_fields;
    __le32 responder_cfg_flags;
    u8 format_bw;
    u8 bss_color;
    u8 channel_num;
    u8 ctrl_ch_position;
    u8 sta_id;
    u8 band;
    __le16 toa_offset;
    __le16 common_calib;
    __le16 specific_calib;
    u8 bssid[ETH_ALEN];
    u8 r2i_ndp_params;
    u8 i2r_ndp_params;
    __le16 min_time_between_msr;
    __le16 max_time_between_msr;
 };

like yes she's got a lot of fields but every single one is doing something, ok? no filler, no dead weight, no cap πŸ¦‹


πŸ’– Members πŸ’–

  • cmd_valid_fields β€” an iwl_tof_responder_cmd_valid_field. this is the "which of my fields are actually valid rn" checklist. very much "are you showing up to the group chat or not" energy.
  • responder_cfg_flags β€” an iwl_tof_responder_cfg_flags. the config flags, the vibes, the settings. slay.
  • format_bw β€” an enum iwl_location_format_bw. format + bandwidth, all bundled up ✨
  • bss_color β€” the current AP bss_color. her signature color, if you will. 🎨
  • channel_num β€” the current AP Channel. where she's broadcasting from, periodt.
  • ctrl_ch_position β€” the coding of the control channel position relative to the center frequency. see iwl_mvm_get_ctrl_pos. iykyk πŸ“
  • sta_id β€” the index of the AP STA when in AP mode. (AP mode only, bestie β€” don't come for me.)
  • band β€” the current AP band. she contains multitudes.
  • toa_offset β€” artificial addition, in [pSec], for the ToA. and the tea here: it's to be used for debug purposes, simulating station movement by adding various values to this field. so it's a lil fake-out machine, but on purpose πŸ™ˆ
  • common_calib β€” XVT: common calibration value. the shared one.
  • specific_calib β€” XVT: specific calibration value. the special one, obviously. πŸ’…
  • bssid β€” the Current AP BSSID. her literal identity. no notes. u8 bssid[ETH_ALEN], six bytes of pure self. πŸ”₯
  • r2i_ndp_params β€” parameters for R2I NDP. here's the breakdown, don't skip it:
    • bits 0 – 2: max number of LTF repetitions
    • bits 3 – 5: max number of spatial streams (supported values are < 2)
    • bits 6 – 7: max number of total LTFs

see enum ieee80211_range_params_max_total_ltf. bit-packing queen πŸ‘‘

  • i2r_ndp_params β€” parameters for I2R NDP. same layout, and yes you have to read it again:
    • bits 0 – 2: max number of LTF repetitions
    • bits 3 – 5: max number of spatial streams
    • bits 6 – 7: max number of total LTFs

see enum ieee80211_range_params_max_total_ltf. (note: the < 2 bit was on the R2I one, not here β€” read carefully bestie 😭)

  • min_time_between_msr β€” for non trigger based NDP ranging, the minimum time between measurements, in milliseconds. the "don't text me back too fast" field ⏳
  • max_time_between_msr β€” for non trigger based NDP ranging, the maximum time between measurements, in milliseconds. the "okay but don't ghost me either" field βŒ›

πŸ¦‹ SEE ALSO πŸ¦‹

so many links, and every single one of them matters β€” go read them, i'm serious:

  • Kernel file ./drivers/net/wireless/intel/iwlwifi/fw/api/location.h
  • enum iwl_location_subcmd_ids(9)
  • enum iwl_location_frame_format(9)
  • enum iwl_location_bw(9)
  • enum iwl_location_format_bw(9)
  • struct iwl_tof_config_cmd(9)
  • enum iwl_tof_bandwidth(9)
  • enum iwl_tof_responder_cmd_valid_field(9)
  • enum iwl_tof_responder_cfg_flags(9)
  • struct iwl_tof_responder_config_cmd_v6(9)
  • struct iwl_tof_responder_config_cmd_v7(9)
  • struct iwl_tof_responder_config_cmd_v8(9)
  • struct iwl_tof_responder_config_cmd_v9(9)
  • struct iwl_tof_responder_dyn_config_cmd_v2(9)
  • enum iwl_responder_dyn_cfg_valid_flags(9)
  • struct iwl_tof_responder_dyn_config_cmd(9)
  • struct iwl_tof_range_req_ext_cmd(9)
  • enum iwl_tof_location_query(9)
  • enum iwl_initiator_ap_flags(9)
  • struct iwl_tof_range_req_ap_entry_v3(9)
  • struct iwl_tof_range_req_ap_entry_v4(9)
  • enum iwl_location_cipher(9)
  • struct iwl_tof_range_req_ap_entry_v6(9)
  • struct iwl_tof_range_req_ap_entry_v7(9)
  • struct iwl_tof_range_req_ap_entry_v8(9)
  • struct iwl_tof_range_req_ap_entry_v9(9)
  • struct iwl_tof_range_req_ap_entry(9)
  • enum iwl_tof_response_mode(9)
  • enum iwl_tof_initiator_flags(9)
  • struct iwl_tof_range_req_cmd_v5(9)
  • struct iwl_tof_range_req_cmd_v7(9)
  • struct iwl_tof_range_req_cmd_v8(9)
  • struct iwl_tof_range_req_cmd_v9(9)
  • struct iwl_tof_range_req_cmd_v11(9)
  • struct iwl_tof_range_req_cmd_v12(9)
  • struct iwl_tof_range_req_cmd_v13(9)
  • struct iwl_tof_range_req_cmd(9)
  • enum iwl_tof_entry_status(9)
  • struct iwl_tof_range_rsp_ap_entry_ntfy_v3(9)
  • struct iwl_tof_range_rsp_ap_entry_ntfy_v4(9)
  • struct iwl_tof_range_rsp_ap_entry_ntfy_v5(9)
  • struct iwl_tof_range_rsp_ap_entry_ntfy_v7(9)
  • struct iwl_tof_range_rsp_ap_entry_ntfy(9)
  • enum iwl_tof_response_status(9)
  • struct iwl_tof_range_rsp_ntfy_v5(9)
  • struct iwl_tof_range_rsp_ntfy_v6(9)
  • struct iwl_tof_range_rsp_ntfy_v7(9)
  • struct iwl_tof_range_rsp_ntfy_v9(9)
  • struct iwl_tof_range_rsp_ntfy(9)
  • struct iwl_tof_mcsi_notif(9)
  • struct iwl_tof_range_abort_cmd(9)
  • struct iwl_ftm_responder_stats(9)

fr fr that's the whole page β€” 52 references, 16 struct fields, zero skips. ate and left no crumbs πŸ’€πŸ“

and that's a wrap, bestie 🫢 this lil beauty lives at ./drivers/net/wireless/intel/i..., the version is stamped October 2026, and it's filed under struct iwl_...r_config_cmd(9) in the Kernel API Manual. go forth and range responsibly βœ¨πŸŒˆπŸ’œ

πŸ“¦ where this page comes from