ENUM IWL_STA_FLAGS(9)
๐ธ enum iwl_sta_flags โ like, the whole manual, bestie ๐
okay so this page is from the Kernel API Manual, and it's literally all about enum iwl_sta_flags โ the flags for the ADD_STA host command. yes, the ADD_STA host command. we're doing driver-level wifi internals today and honestly? iconic. ๐
โจ NAME โจ
enum iwl_sta_flags โ the flags for the ADD_STA host command. that's it, that's the whole vibe. ๐ฆ
โจ SYNOPSIS โจ
enum iwl_sta_flags {
STA_FLG_REDUCED_TX_PWR_CTRL ,
STA_FLG_REDUCED_TX_PWR_DATA ,
STA_FLG_DISABLE_TX ,
STA_FLG_PS ,
STA_FLG_DRAIN_FLOW ,
STA_FLG_PAN ,
STA_FLG_CLASS_AUTH ,
STA_FLG_CLASS_ASSOC ,
STA_FLG_RTS_MIMO_PROT ,
STA_FLG_MAX_AGG_SIZE_SHIFT ,
STA_FLG_MAX_AGG_SIZE_8K ,
STA_FLG_MAX_AGG_SIZE_16K ,
STA_FLG_MAX_AGG_SIZE_32K ,
STA_FLG_MAX_AGG_SIZE_64K ,
STA_FLG_MAX_AGG_SIZE_128K ,
STA_FLG_MAX_AGG_SIZE_256K ,
STA_FLG_MAX_AGG_SIZE_512K ,
STA_FLG_MAX_AGG_SIZE_1024K ,
STA_FLG_MAX_AGG_SIZE_2M ,
STA_FLG_MAX_AGG_SIZE_4M ,
STA_FLG_MAX_AGG_SIZE_MSK ,
STA_FLG_AGG_MPDU_DENS_SHIFT ,
STA_FLG_AGG_MPDU_DENS_2US ,
STA_FLG_AGG_MPDU_DENS_4US ,
STA_FLG_AGG_MPDU_DENS_8US ,
STA_FLG_AGG_MPDU_DENS_16US ,
STA_FLG_AGG_MPDU_DENS_MSK ,
STA_FLG_FAT_EN_20MHZ ,
STA_FLG_FAT_EN_40MHZ ,
STA_FLG_FAT_EN_80MHZ ,
STA_FLG_FAT_EN_160MHZ ,
STA_FLG_FAT_EN_MSK ,
STA_FLG_MIMO_EN_SISO ,
STA_FLG_MIMO_EN_MIMO2 ,
STA_FLG_MIMO_EN_MIMO3 ,
STA_FLG_MIMO_EN_MSK
};
like, yes, that's 36 constants. we're listing all 36. no skips, no shortcuts, periodt. ๐ฅ
โจ Constants โจ
okay bestie, buckle in, this is the group chat roll call and nobody gets left on read ๐
๐ซถ the power / state girlies
STA_FLG_REDUCED_TX_PWR_CTRLโ reduced TX power, and it's for control frames specifically. ๐STA_FLG_REDUCED_TX_PWR_DATAโ reduced TX power, but this one's for data frames. same energy, different frames. ๐STA_FLG_DISABLE_TXโ set if TX should be disabled. like, just don't transmit. โSTA_FLG_PSโ set if the STA is in Power Save. nap mode activated ๐ดSTA_FLG_DRAIN_FLOWโ drain flow. that's the whole description. it's giving mysterious but okay ๐STA_FLG_PANโ the STA is for a PAN interface. ๐ฉท
๐ the connection-status cuties
STA_FLG_CLASS_AUTHโ the station is authenticated. โจSTA_FLG_CLASS_ASSOCโ the station is associated. we love a committed queen ๐STA_FLG_RTS_MIMO_PROTโ the station requires RTS MIMO protection (dynamic SMPS). fancy. ๐ก๏ธ
๐ฆ the A-MPDU max size saga (bit shift + every supported size + the mask)
STA_FLG_MAX_AGG_SIZE_SHIFTโ maximal size for A-MPDU, as a bit shift. ๐งฎSTA_FLG_MAX_AGG_SIZE_8Kโ maximal size for A-MPDU (8k supported). ๐STA_FLG_MAX_AGG_SIZE_16Kโ maximal size for A-MPDU (16k supported). ๐STA_FLG_MAX_AGG_SIZE_32Kโ maximal size for A-MPDU (32k supported). ๐STA_FLG_MAX_AGG_SIZE_64Kโ maximal size for A-MPDU (64k supported). ๐STA_FLG_MAX_AGG_SIZE_128Kโ maximal size for A-MPDU (128k supported). ๐STA_FLG_MAX_AGG_SIZE_256Kโ maximal size for A-MPDU (256k supported). ๐STA_FLG_MAX_AGG_SIZE_512Kโ maximal size for A-MPDU (512k supported). ๐STA_FLG_MAX_AGG_SIZE_1024Kโ maximal size for A-MPDU (1024k supported). ๐STA_FLG_MAX_AGG_SIZE_2Mโ maximal size for A-MPDU (2M supported). ๐STA_FLG_MAX_AGG_SIZE_4Mโ maximal size for A-MPDU (4M supported). ๐STA_FLG_MAX_AGG_SIZE_MSKโ maximal size for A-MPDU, as a mask. ๐ญ
โฑ๏ธ the A-MPDU density set (bit shift, four gaps, and the mask)
STA_FLG_AGG_MPDU_DENS_SHIFTโ A-MPDU density, as a bit shift. ๐งฎSTA_FLG_AGG_MPDU_DENS_2USโ A-MPDU density (2 usec gap). โณSTA_FLG_AGG_MPDU_DENS_4USโ A-MPDU density (4 usec gap). โณSTA_FLG_AGG_MPDU_DENS_8USโ A-MPDU density (8 usec gap). โณSTA_FLG_AGG_MPDU_DENS_16USโ A-MPDU density (16 usec gap). โณSTA_FLG_AGG_MPDU_DENS_MSKโ A-MPDU density, as a mask. ๐ญ
๐ the channel-width (FAT) besties
STA_FLG_FAT_EN_20MHZโ no wide channels are supported, only 20 MHz. tiny but mighty ๐ฃSTA_FLG_FAT_EN_40MHZโ wide channels up to 40 MHz supported. ๐ธSTA_FLG_FAT_EN_80MHZโ wide channels up to 80 MHz supported. ๐ธSTA_FLG_FAT_EN_160MHZโ wide channels up to 160 MHz supported. ๐ธSTA_FLG_FAT_EN_MSKโ support for channel width (for Tx). hear me out, this one's got lore: this flag is initialised by the driver and can be updated by fw upon reception of action frames that can change the channel width. and when it's cleared, the fw will send all the frames in 20MHz even when a FAT channel is requested. so yeah. clearing it is a whole choice. ๐
๐ the MIMO squad
STA_FLG_MIMO_EN_SISOโ no support for MIMO. flying solo, single stream energy ๐งSTA_FLG_MIMO_EN_MIMO2โ 2 streams supported. ๐๐STA_FLG_MIMO_EN_MIMO3โ 3 streams supported. ๐๐๐STA_FLG_MIMO_EN_MSKโ support for MIMO. also has lore: this flag is initialised by the driver and can be updated by fw upon reception of action frames. the firmware is lowkey a co-author here, ngl. ๐ซถ
โจ SEE ALSO โจ
if you're obsessed and want more (and you should be), go read the kernel file ./drivers/net/wireless/intel/iwlwifi/fw/api/sta.h, plus all of these besties:
enum iwl_sta_key_flag(9)enum iwl_sta_modify_flag(9)enum iwl_sta_mode(9)enum iwl_sta_sleep_flag(9)struct iwl_mvm_add_sta_cmd_v7(9)enum iwl_sta_type(9)struct iwl_mvm_add_sta_cmd(9)struct iwl_mvm_add_sta_key_common(9)struct iwl_mvm_add_sta_key_cmd_v1(9)struct iwl_mvm_add_sta_key_cmd(9)enum iwl_mvm_add_sta_rsp_status(9)struct iwl_mvm_rm_sta_cmd(9)struct iwl_mvm_mgmt_mcast_key_cmd_v1(9)struct iwl_mvm_mgmt_mcast_key_cmd(9)struct iwl_mvm_eosp_notification(9)
and that's the whole page, bestie, you ate that ๐ซถ๐ one last lil sign-off: this cutie lives at ./drivers/net/wireless/intel/i... (that's the source, truncated exactly like the original, not me being lazy fr fr), dated October 2026, and it's the enum iwl_sta_flags(9) page from the Kernel API Manual. mwah. ๐โจ๐
๐ฆ 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