ENUM MAC80211_TX_CONTROL_FLAGS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸŽ€ NAME πŸŽ€

enum mac80211_tx_control_flags β€” flags to describe transmit control. This is the Kernel API Manual page, bestie, and it’s giving part 1 πŸ’– β€” the flags are literally the main character here, no cap.


✨ SYNOPSIS ✨

okay so the enum is exactly this, and yes we are keeping every comma and space, periodt:

enum mac80211_tx_control_flags {
    IEEE80211_TX_CTRL_PORT_CTRL_PROTO ,
    IEEE80211_TX_CTRL_PS_RESPONSE ,
    IEEE80211_TX_CTRL_RATE_INJECT ,
    IEEE80211_TX_CTRL_AMSDU ,
    IEEE80211_TX_CTRL_FAST_XMIT ,
    IEEE80211_TX_CTRL_SKIP_MPATH_LOOKUP ,
    IEEE80211_TX_INTCFL_NEED_TXPROCESSING ,
    IEEE80211_TX_CTRL_NO_SEQNO ,
    IEEE80211_TX_CTRL_DONT_REORDER ,
    IEEE80211_TX_CTRL_MCAST_MLO_FIRST_TX ,
    IEEE80211_TX_CTRL_DONT_USE_RATE_MASK ,
    IEEE80211_TX_CTRL_MLO_LINK

};

πŸ’… Constants πŸ’…

  • IEEE80211_TX_CTRL_PORT_CTRL_PROTO β€” this frame is a port control protocol frame, like EAP πŸ’Œ
  • IEEE80211_TX_CTRL_PS_RESPONSE β€” this frame is a response to a poll frame (PS-Poll or uAPSD). iconic behavior honestly ✨
  • IEEE80211_TX_CTRL_RATE_INJECT β€” this frame is injected with rate information πŸŽ€
  • IEEE80211_TX_CTRL_AMSDU β€” this frame is an A-MSDU frame πŸ¦‹
  • IEEE80211_TX_CTRL_FAST_XMIT β€” this frame is going through the fast_xmit path, zoom zoom πŸ’…
  • IEEE80211_TX_CTRL_SKIP_MPATH_LOOKUP β€” this frame skips mesh path lookup, lowkey efficient 🌸
  • IEEE80211_TX_INTCFL_NEED_TXPROCESSING β€” completely internal to mac80211, used to indicate that a pending frame requires TX processing before it can be sent out. iykyk 🫢
  • IEEE80211_TX_CTRL_NO_SEQNO β€” do not overwrite the sequence number that has already been assigned to this frame. bestie, do not touch it 😭
  • IEEE80211_TX_CTRL_DONT_REORDER β€” this frame should not be reordered relative to other frames that have this flag set, independent of their QoS TID or other priority field values. respect the order fr fr πŸ”₯
  • IEEE80211_TX_CTRL_MCAST_MLO_FIRST_TX β€” first MLO TX, used mostly internally for sequence number assignment πŸ‘‘
  • IEEE80211_TX_CTRL_DONT_USE_RATE_MASK β€” don’t use rate mask for this frame which is transmitted due to scanning or offchannel TX, not in normal operation on the interface. noted, no cap 🌈
  • IEEE80211_TX_CTRL_MLO_LINK β€” if not IEEE80211_LINK_UNSPECIFIED, this frame should be transmitted on the specific link. this really is only relevant for frames that do not have data present, and is also not used for 802.3 format frames. note that even if the frame is on a specific link, address translation might still apply if it’s intended for an MLD. okay that’s the whole situation ⭐

πŸ¦‹ Description πŸ¦‹

okay so these flags are used in tx_info->control.flags β€” that’s the vibe check, and that’s where they live πŸ’œ

πŸ’… SEE ALSO πŸ’…

okay so this is legit the biggest friend group in the whole mac80211 cinematic universe β€” like every single one of these is linked from ./include/net/mac80211.h and honestly? iconic. if enum mac80211_tx_control_flags was your first stop, here's the entire rest of the lore, in order, no skips πŸ’–

  • ./include/net/mac80211.h β€” the kernel file where all the magic lives ✨

and now, the squad, in the exact order the manpage lists them (yes i'm serious, all of them 🫢):


ngl bestie that was A LOT of links and i did not skip a single one πŸ’€ go drink some water, you earned it πŸ“

and that's the whole page!! you officially know everything this manpage has to say. so proud of you, fr fr πŸŽ€

okay so this one came out of ./include/net with the date October 2026, and it's filed under the very cursed-looking version string enum mac8021...ontrol_flags(9) β€” like yes the truncation is real and yes it's still slaying πŸ’…βœ¨ see you in the next one, mwah πŸ«ΆπŸ’–

πŸ“¦ where this page comes from