STRUCT IWL_TOF_RANGE_REQ_AP_ENTRY_V7(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… NAME πŸ’…

struct iwl_tof_range_req_ap_entry_v7 β€” the AP configuration parameters struct, from the Kernel API Manual (section 9 of the kernel docs, bestie, you're in the right place 🫢).


✨ SYNOPSIS ✨

struct iwl_tof_range_req_ap_entry_v7 {
    __le32 initiator_ap_flags;
    u8 channel_num;
    u8 format_bw;
    u8 ctrl_ch_position;
    u8 ftmr_max_retries;
    u8 bssid[ETH_ALEN];
    __le16 burst_period;
    u8 samples_per_burst;
    u8 num_of_bursts;
    u8 sta_id;
    u8 cipher;
    u8 hltk[HLTK_11AZ_LEN];
    u8 tk[TK_11AZ_LEN];
    __le16 calib[IWL_TOF_BW_NUM];
    __le16 beacon_interval;
    u8 rx_pn[IEEE80211_CCMP_PN_LEN];
    u8 tx_pn[IEEE80211_CCMP_PN_LEN];
 };

Look at that field list. It's giving organized. It's giving I know exactly what my AP needs. πŸ’…


🌸 Members 🌸

Okay so each of these fields is a whole little personality, let's go one by one:

  • initiator_ap_flags β€” the flags field, and it's literally just see enum iwl_initiator_ap_flags. That's the whole note. Go read the enum, she's the main character here. πŸ‘‘
  • channel_num β€” the AP Channel number. Simple. Iconic. No notes. ✨
  • format_bw β€” this one's an enum iwl_location_format_bw. That's it, that's the description.
  • ctrl_ch_position β€” the coding of the control channel position relative to the center frequency. Wanna know the deets? See iwl_mvm_get_ctrl_pos. iykyk 🧚
  • ftmr_max_retries β€” max number of retries to send the FTMR in case of no reply from the AP. So like, how many times you're willing to text back before you accept they left you on read 😭 β€” except it's protocol frames and the AP is legally obligated to respond eventually.
  • bssid β€” the AP's BSSID. ETH_ALEN bytes of pure identity. πŸŽ€
  • burst_period β€” recommended value to be sent to the AP, measurement periodicity in units of 100ms. And watch out: ignored if num_of_bursts_exp = 0. (Yes, it says num_of_bursts_exp, we're just relaying what the manpage says, no cap, don't come for me πŸ™ˆ)
  • samples_per_burst β€” the number of FTMs pairs in single Burst, range (1-31). Keep it in range, bestie, it's a whole byte out there. πŸ¦‹
  • num_of_bursts β€” recommended value to be sent to the AP. It's the 2s Exponent of the number of measurement iterations: min 2^0 = 1, max 2^14. So it scales fast. Exponential growth energy only. πŸ”₯
  • sta_id β€” the station id of the AP. Only relevant when you're associated to the AP β€” otherwise it should be set to IWL_INVALID_STA. Don't leave it unset, that's not the vibe. πŸ’€
  • cipher β€” the pairwise cipher suite for secured measurement, an enum iwl_location_cipher. Security queen. πŸ”’
  • hltk β€” the HLTK to be used for secured 11az measurement. HLTK_11AZ_LEN bytes of extremely serious cryptographic business. 🫢
  • tk β€” the TK to be used for secured 11az measurement. TK_11AZ_LEN bytes. Same energy, different key. πŸ’œ
  • calib β€” an array of calibration values per FTM rx bandwidth. So here's the tea: if IWL_INITIATOR_AP_FLAGS_USE_CALIB is set, the fw will use the calibration value that corresponds to the rx bandwidth of the FTM frame. It's a whole lookup situation. ⭐
  • beacon_interval β€” the beacon interval of the AP in TUs. Only required if IWL_INITIATOR_AP_FLAGS_TB is set. Conditional queen, shows up only when she's needed. πŸ‘‘
  • rx_pn β€” the next expected PN for protected management frames Rx, LE byte order. Only valid if IWL_INITIATOR_AP_FLAGS_SECURED is set and sta_id is set to IWL_INVALID_STA. Both conditions, bestie, it's an AND not an OR. 😀
  • tx_pn β€” the next PN to use for protected management frames Tx, LE byte order. Same rules, same two conditions: only valid if IWL_INITIATOR_AP_FLAGS_SECURED is set and sta_id is set to IWL_INVALID_STA. 🌈
Fr fr, those last two have the exact same validity clause β€” if you're thinking "wait didn't I just read that," you did, that's just how the page is. πŸ™ˆ

πŸ¦‹ SEE ALSO πŸ¦‹

The friend group, in full, no cuts:

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

That's a lot of friends and every single one of them matters. πŸ«ΆπŸ’–


And that's the page, bestie! πŸŽ€ Source: ./drivers/net/wireless/intel/i... β€” version vibe dated October 2026, signed struct iwl_t..._ap_entry_v7(9). Go forth and configure APs, you absolute icon. πŸ’…βœ¨

πŸ“¦ where this page comes from