ENUM TXDONE_ENTRY_DESC_FLAGS(9)
π 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 toTXDONE_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:
- Entry frame size(9)
- enum data_queue_qid(9)
- enum skb_frame_desc_flags(9)
- struct skb_frame_desc(9)
- get_skb_frame_desc(9)
- enum rxdone_entry_desc_flags(9)
- RXDONE_SIGNAL_MASK(9)
- struct rxdone_entry_desc(9)
- struct txdone_entry_desc(9)
- enum txentry_desc_flags(9)
- struct txentry_desc(9)
- enum queue_entry_flags(9)
- struct queue_entry(9)
- enum queue_index(9)
- enum data_queue_flags(9)
- struct data_queue(9)
- queue_end(9)
- tx_queue_end(9)
- queue_next(9)
- queue_loop(9)
- queue_for_each(9)
- tx_queue_for_each(9)
- txall_queue_for_each(9)
- rt2x00queue_for_each_entry(9)
- rt2x00queue_empty(9)
- rt2x00queue_full(9)
- rt2x00queue_threshold(9)
- rt2x00queue_dma_timeout(9)
- _rt2x00_desc_read(9)
- rt2x00_desc_read(9)
- rt2x00_desc_write(9)
π reminder bestie:TXDONE_EXCESSIVE_RETRYonly rides withTXDONE_FAILURE, andTXDONE_FALLBACKonly shows up whenretires > 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
- 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