ENUM IWL_STA_FLAGS(9)

๐Ÿ“ฆ version 7.3.1, in nixpkgs unstable

๐ŸŒธ 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