STRUCT IWL_CHANNEL_ESTIMATION_CFG(9)
๐ struct iwl_channel_estimation_cfg(9) ๐
okay bestie, welcome to the Kernel API Manual โ this is the glow-up guide to struct iwl_channel_estimation_cfg(9), aka the channel estimation reporting config. yes it's a struct. yes it's important. let's get into it ๐ซถ
โจ NAME โจ
struct iwl_channel_estimation_cfg โ channel estimation reporting config. that's the whole vibe. it's the config struct that tells the firmware how you want channel estimation matrices reported back to you ๐ก
๐ธ SYNOPSIS ๐ธ
struct iwl_channel_estimation_cfg {
__le32 flags;
__le32 timer;
__le32 count;
__le32 rate_n_flags_mask;
__le32 rate_n_flags_val;
__le32 reserved;
__le64 frame_types;
};
look at her. seven fields, all little-endian, all doing their job. iconic behavior honestly ๐
๐ Members ๐
flagsโ the flags field, bestie. and like, which flags? seeenum iwl_channel_estimation_flagsโ that's where the actual flag meanings live, this is just the container ๐timerโ if it's enabled viaflags(big if, note it), it automatically disables after this many microseconds. cute little self-destruct timer โณcountโ again, if enabled viaflags, it automatically disables after this many frames with a channel estimation matrix were captured. so you get N frames and then it's done, no cap ๐ธrate_n_flags_maskโ this one's the picky one. it only tries to record the channel estimation matrix if therate_n_flagsvalue for the received frame (the original calls it rx_rnf, we love a nickname) matches the mask/value given here, exactly like this:
(rx_rnf & rate_n_flags_mask) == rate_n_flags_val
read it like a little equation, because it literally is one ๐งฎ
rate_n_flags_valโ seerate_n_flags_maskabove. they're a matching set, they come as a pair, do not separate them ๐ซถreservedโ reserved (for alignment). she's just here to keep things lined up. we respect her ๐frame_typesโ a bitmap of frame types to capture. here's the deal: the received frame's subtype|type takes 6 bits in the frame, and the corresponding bit in this field must be set to1to capture channel estimation for that frame type. want all the frame types? set it to all-ones and go off ๐โจ
๐ฆ SEE ALSO ๐ฆ
all the neighbors in the header file, gathered here so you can go snoop on them too. the kernel file is ./drivers/net/wireless/intel/iwlwifi/fw/api/datapath.h, and from there we've got:
- enum
iwl_data_path_subcmd_ids(9) - struct
iwl_mu_group_mgmt_cmd(9) - struct
iwl_mu_group_mgmt_notif(9) - struct
iwl_time_sync_cfg_cmd(9) - enum
iwl_synced_time_operation(9) - struct
iwl_synced_time_cmd(9) - struct
iwl_synced_time_rsp(9) - struct
iwl_time_msmt_ptp_ctx(9) - struct
iwl_time_msmt_notify(9) - struct
iwl_time_msmt_cfm_notify(9) - enum
iwl_thermal_dual_chain_req_events(9) - struct
iwl_thermal_dual_chain_request(9) - struct
iwl_rlc_properties(9) - struct
iwl_sad_properties(9) - struct
iwl_rlc_config_cmd(9) - enum
iwl_rx_baid_action(9) - struct
iwl_rx_baid_cfg_cmd_alloc(9) - struct
iwl_rx_baid_cfg_cmd_modify(9) - struct
iwl_rx_baid_cfg_cmd_remove_v1(9) - struct
iwl_rx_baid_cfg_cmd_remove(9) - struct
iwl_rx_baid_cfg_cmd(9) - struct
iwl_rx_baid_cfg_resp(9) - enum
iwl_scd_queue_cfg_operation(9) - struct
iwl_scd_queue_cfg_cmd(9) - enum
iwl_sec_key_flags(9) - struct
iwl_sec_key_cmd(9)
that's the whole page, bestie, go forth and capture some channel estimation matrices responsibly ๐
source: ./drivers/net/wireless/intel/i... ยท date: October 2026 โ mwah, thanks for reading, ily, bye ๐๐โจ
๐ฆ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms