STRUCT IWL_SEC_KEY_CMD(9)
π struct iwl_sec_key_cmd β security key command π
okay bestie so this is a page straight out of the Kernel API Manual (yes, the kernel has lore) and today's main character is struct iwl_sec_key_cmd, the security key command. it's giving "i hold your keys and i'm not sorry." πβ¨
πΈ NAME πΈ
struct iwl_sec_key_cmd β security key command. that's it, that's the vibe. she's a struct, she carries key commands, she slays.
β¨ SYNOPSIS β¨
okay look at her. look at the anatomy. the way she's built π«Ά
struct iwl_sec_key_cmd {
__le32 action;
union {
struct {
__le32 sta_mask;
__le32 key_id;
__le32 key_flags;
u8 key[32];
u8 tkip_mic_rx_key[8];
u8 tkip_mic_tx_key[8];
__le64 rx_seq;
__le64 tx_seq;
} add;
struct {
__le32 old_sta_mask;
__le32 new_sta_mask;
__le32 key_id;
__le32 key_flags;
} modify;
struct {
__le32 sta_mask;
__le32 key_id;
__le32 key_flags;
} remove;
} u;
};
so there's action, and then there's u β the union that switches up its whole personality depending on which command type you're running. add, modify, remove. three little eras, one union. iconic. π
π Members π
actionβ the action, pulled fromenum iwl_ctxt_action. she decides which member of the union gets to shine. β¨uβ the union itself, and which face she's wearing totally depends on the command type. union depending on command type, periodt.u.add.sta_maskβ station mask for the new key π«u.add.key_idβ key ID (0-7) for the new key. yes,0-7, no cap, that's the range π’u.add.key_flagsβ key flags, perenum iwl_sec_key_flagsu.add.keyβ the actual key material. β οΈ heads up: WEP keys should start fromIWL_SEC_WEP_KEY_OFFSET. don't forget the offset, bestie, you'll have a bad time πu.add.tkip_mic_rx_keyβ TKIP MIC RX keyu.add.tkip_mic_tx_keyβ TKIP MIC TX keyu.add.rx_seqβ RX sequence counter valueu.add.tx_seqβ TX sequence counter value
like, the add era is the full glam: keys, mics, sequences, she has everything. π
u.modify.old_sta_maskβ old station mask (the before picture πΈ)u.modify.new_sta_maskβ new station mask (the glow-up β¨)u.modify.key_idβ key IDu.modify.key_flagsβ new key flagsu.remove.sta_maskβ station masku.remove.key_idβ key IDu.remove.key_flagsβ key flags
and remove is the minimalist era: mask, key ID, flags, bye π the way she's so much shorter than add... it's giving "we don't do extra here."
π¦ SEE ALSO π¦
the whole friend group π«Ά β go say hi, iykyk:
- Kernel file
./drivers/net/wireless/intel/iwlwifi/fw/api/datapath.hβ that's where she lives 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)struct iwl_channel_estimation_cfg(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)
ngl theu.add.keyWEP offset thing is the one you'll actually trip over.IWL_SEC_WEP_KEY_OFFSET. write it on your hand. fr fr. π
okay that's the whole page!! sourced from ./drivers/net/wireless/intel/i... (she's got a long address, don't make her type it out) and dated October 2026 β future queen behavior honestly ππ that's your struct iwl_sec_key_cmd(9), periodt, love u 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