STRUCT IWL_TOF_RESPONDER_CONFIG_CMD_V9(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– struct iwl_tof_responder_config_cmd_v9(9) β€” Kernel API Manual πŸ’–

okay bestie, buckle up, because we're digging into the struct iwl_tof_responder_config_cmd_v9 from the Kernel API Manual. yes, the whole manual. no, it's not that deep, but also it kind of is. this is the ToF AP mode struct β€” and the manpage literally says "(for debug)", so like… it's giving "we made this for testing and now it lives here forever" energy 🫢


✨ NAME ✨

struct iwl_tof_responder_config_cmd_v9 β€” ToF AP mode (for debug). that's it, that's the name, periodt πŸ’…


🌸 SYNOPSIS 🌸

here's the whole vibe, character for character, don't touch anything:

struct iwl_tof_responder_config_cmd_v9 {
    __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 reserved1;
    __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, look at that little guy. so many fields. so many u8s. we love a compact struct πŸ¦‹


πŸŽ€ Members πŸŽ€

okay so now the main character energy: every single member, explained, no skips, no "you get the idea" πŸ’€

  • cmd_valid_fields β€” an iwl_tof_responder_cmd_valid_field moment. that's the type, that's the whole note, slay.
  • responder_cfg_flags β€” iwl_tof_responder_cfg_flags. flags for the responder config, iykyk.
  • format_bw β€” enum iwl_location_format_bw. the format/bandwidth situation ✨
  • bss_color β€” the current AP bss_color. (yes it's a real field name, we're not kidding.)
  • channel_num β€” the current AP Channel. hi channel, love your work πŸ’–
  • ctrl_ch_position β€” the coding of the control channel position relative to the center frequency. see iwl_mvm_get_ctrl_pos. it's giving "please consult the other function" energy.
  • sta_id β€” index of the AP STA when in AP mode. very "you know who you are" of it.
  • reserved1 β€” reserved. that's literally it. it's reserved. leave it alone πŸ™ˆ
  • toa_offset β€” Artificial addition [pSec] for the ToA β€” to be used for debug purposes, simulating station movement by adding various values to this field. ngl this is the fun one: you're faking movement by sprinkling numbers into a field 😭 iconic debug behaviour.
  • common_calib β€” XVT: common calibration value.
  • specific_calib β€” XVT: specific calibration value. (yes, they're a matching set, we Stan a duo πŸŽ€)
  • bssid β€” Current AP BSSID. u8 bssid[ETH_ALEN], of course.
  • r2i_ndp_params β€” parameters for R2I NDP.
    • 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. heads up: supported values for spatial streams are < 2, so don't go wild.

  • i2r_ndp_params β€” parameters for I2R NDP.
    • 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 this one does not repeat the < 2 note β€” keeping it exactly as written, bestie, no edits πŸ’…

  • min_time_between_msr β€” for non trigger based NDP ranging, minimum time between measurements in milliseconds. lowkey the responsible one of the pair.
  • max_time_between_msr β€” for non trigger based NDP ranging, maximum time between measurements in milliseconds. the chaotic counterpart πŸ”₯

πŸ¦‹ SEE ALSO πŸ¦‹

the whole friend group, everyone invited, no one left out:

  • 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(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)

like, that's a lot of cross-references, but every single one of them matters and I would never do you dirty by trimming the list 🫢


source check: this one comes from ./drivers/net/wireless/intel/i... and it's dated October 2026. go read the header file if you want the full lore πŸ“–

and that's the whole page, bestie β€” you ate that, no cap πŸ’…βœ¨πŸŽ€ go forth and configure your responders, mwah πŸ¦‹πŸ’œ

πŸ“¦ where this page comes from