STRUCT IWL_TOF_RANGE_REQ_CMD_V8(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct iwl_tof_range_req_cmd_v8(9) β€” Kernel API Manual πŸŽ€

okay so bestie, welcome to the Kernel API Manual page for struct iwl_tof_range_req_cmd_v8(9) β€” this is the start measurement cmd and honestly it's kind of a whole vibe. it's giving "I orchestrate the FTM ranging session" main character energy ✨


🌸 NAME 🌸

struct iwl_tof_range_req_cmd_v8 β€” start measurement cmd. that's it, that's the tweet πŸ’–


πŸ¦‹ SYNOPSIS πŸ¦‹

like, here's the whole shape of it, no cap:

struct iwl_tof_range_req_cmd_v8 {
    __le32 initiator_flags;
    u8 request_id;
    u8 num_of_ap;
    u8 range_req_bssid[ETH_ALEN];
    u8 macaddr_mask[ETH_ALEN];
    u8 macaddr_template[ETH_ALEN];
    __le32 req_timeout_ms;
    __le32 tsf_mac_id;
    __le16 common_calib;
    __le16 specific_calib;
    struct iwl_tof_range_req_ap_entry_v4 ap[IWL_TOF_MAX_APS];
};

✨ Members ✨

okay so here's the field-by-field tea β˜• every single one matters, don't skip:

  • initiator_flags β€” see flags in iwl_tof_initiator_flags πŸ‘€
  • request_id β€” a Token incremented per request. the same Token gets sent back to you in the range response, so you can match them up like matching friendship bracelets 🫢
  • num_of_ap β€” how many APs to measure. heads up: it's an error if it's > IWL_TOF_MAX_APS 😭 so like, don't do that
  • range_req_bssid β€” the ranging request BSSID πŸ’«
  • macaddr_mask β€” the rules for the MAC address bits: bits set to 0 shall be copied from the MAC address template, and bits set to 1 shall be randomized by the UMAC 🎲 (yes, literally, that's the deal)
  • macaddr_template β€” the MAC address template to use for the non-randomized bits πŸŽ€
  • req_timeout_ms β€” requested timeout of the response, in units of milliseconds. this is the session time for completing the measurement ⏱️ so lowkey it's the whole deadline
  • tsf_mac_id β€” report the measurement start time for each ap in terms of the TSF of this mac id. set it to 0xff to disable TSF reporting 🚫
  • common_calib β€” the common calib value to inject to this measurement calc πŸ§ͺ
  • specific_calib β€” the specific calib value to inject to this measurement calc πŸ§ͺ (yes it's a different one, don't mix them up bestie)
  • ap β€” per-AP request data, see struct iwl_tof_range_req_ap_entry_v2 πŸ‘‘ (that's the array of IWL_TOF_MAX_APS entries up there in the synopsis, iykyk)

πŸ¦‹ SEE ALSO πŸ¦‹

the full squad, linked and iconic, every single one of them πŸ’œ starting with the source of truth itself:

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

and that's the whole page bestie, you ate that πŸ’…βœ¨

cute little sign-off: this one's straight out of ./drivers/net/wireless/intel/i... and it's dated October 2026 β€” so yeah, filed under struct iwl_...e_req_cmd_v8(9) like the little legend it is. slay, go read some more manpages πŸŽ€πŸ¦‹πŸ’–
πŸ“¦ where this page comes from