ENUM TXDONE_ENTRY_DESC_FLAGS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… enum txdone_entry_desc_flags(9) β€” no cap, the tea on TX done flags 🫢

okay so bestie, welcome to the Kernel API Manual entry for enum txdone_entry_desc_flags β€” this is the literal glow-up doc for the flags you stick in a &struct txdone_entry_desc, and honestly? it's giving "small enum, big responsibilities". let's get into it ✨


🌸 NAME 🌸

enum txdone_entry_desc_flags β€” the flags for &struct txdone_entry_desc, periodt πŸ’–


✨ SYNOPSIS ✨

like, here's the whole enum in all its iconic glory, verbatim, don't touch:

enum txdone_entry_desc_flags {
    TXDONE_UNKNOWN ,
    TXDONE_SUCCESS ,
    TXDONE_FALLBACK ,
    TXDONE_FAILURE ,
    TXDONE_EXCESSIVE_RETRY ,
    TXDONE_AMPDU ,
    TXDONE_NO_ACK_REQ

};

πŸŽ€ Constants πŸŽ€

bestie these are the main characters, one by one:

  • TXDONE_UNKNOWN β€” the hardware literally could not figure out if the transmission succeeded. it's giving "no thoughts, head empty" 😭 the vibe check came back inconclusive.
  • TXDONE_SUCCESS β€” the frame was successfully send. yes, that's the doc's own wording, we're keeping it exactly πŸ’– slay.
  • TXDONE_FALLBACK β€” the hardware used fallback rates for retries. lowkey clutch, ngl ✨
  • TXDONE_FAILURE β€” the frame was not successfully send. rough. 🫠
  • TXDONE_EXCESSIVE_RETRY β€” in addition to TXDONE_FAILURE, the frame transmission failed due to excessive retries. like it tried so hard and still didn't eat πŸ’€
  • TXDONE_AMPDU β€” -- undescribed -- πŸ™ˆ the docs literally left this one on read, we're not out here inventing lore for it.
  • TXDONE_NO_ACK_REQ β€” -- undescribed -- 🫢 same situation, no description, no cap, we keep it real.

πŸ¦‹ Description πŸ¦‹

okay so here's how it works, and this part actually matters so pay attention bestie πŸ‘‘

Every txdone report has to contain the basic result of the transmission β€” and that's either TXDONE_UNKNOWN, TXDONE_SUCCESS or TXDONE_FAILURE. those three are the mandatory base, the main character energy of the report 🌈

The flag TXDONE_FALLBACK can be used in conjunction with all of these flags β€” yes, all of them, it's a team player β€” but it should only be set if retires > 0. (that's retires, exactly as written, we do not edit the source, that's not our job πŸ’…)

The flag TXDONE_EXCESSIVE_RETRY can only be used in conjunction with TXDONE_FAILURE. that's the rule, no exceptions, don't try it 🚫


πŸ”₯ SEE ALSO πŸ”₯

Kernel file ./drivers/net/wireless/ralink/rt2x00/rt2x00queue.h, plus the whole friend group:


πŸ’€ reminder bestie: TXDONE_EXCESSIVE_RETRY only rides with TXDONE_FAILURE, and TXDONE_FALLBACK only shows up when retires > 0. don't be out here flag-combining like you're mixing random sodas at the fountain machine πŸ₯€

and that's the whole page, mwah πŸ’‹ source & version: ./drivers/net/wireless/ralink/..., dated October 2026, still filed under enum txdone_...y_desc_flags(9) β€” go forth and read your descriptors responsibly, ily πŸŽ€πŸ§šπŸ’œ

πŸ“¦ where this page comes from