STRUCT EF4_TX_BUFFER(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct ef4_tx_buffer(9) β€” buffer state for a TX descriptor

okay so bestie, welcome to the Kernel API Manual entry for struct ef4_tx_buffer, aka the little bookkeeping buddy that holds the state for one single TX descriptor. it's giving "quietly doing the most important job in the room" and honestly? iconic. ✨


✨ SYNOPSIS ✨

struct ef4_tx_buffer {
    const struct sk_buff *skb;
    union {
      ef4_qword_t option;
      dma_addr_t dma_addr;
    };
    unsigned short flags;
    unsigned short len;
    unsigned short unmap_len;
    unsigned short dma_offset;
 };

like, look at her. so structured. so demure. πŸŽ€


🌸 Members 🌸

  • skb β€” when flags & EF4_TX_BUF_SKB is a thing, this is the socket buffer that's along for the ride, and it gets freed once the descriptor completes. she served her purpose, we let her go 🫢
  • {unnamed_union} β€” anonymous. no name, no problem, we don't ask questions πŸ’…
  • option β€” when flags & EF4_TX_BUF_OPTION is set, this is a NIC-specific option descriptor. every card has its own little language, iykyk.
  • dma_addr β€” the DMA address of the fragment. that's where the data actually lives, bestie. πŸ“
  • flags β€” the flags that control allocation and the DMA mapping type. lowkey the main character of this struct honestly πŸ‘‘
  • len β€” length of this fragment. heads up: this field is zero when the queue slot is empty. empty slot, empty len, we love a consistent vibe check.
  • unmap_len β€” length of this fragment to unmap. don't forget to clean up, it's giving self-care 🌸
  • dma_offset β€” offset of dma_addr from the address of the backing DMA mapping. ⚠️ it's only valid if unmap_len != 0, so like… don't come for her when unmap_len is zero, she literally said she's not available rn πŸ™ˆ

πŸ”₯ SEE ALSO πŸ”₯

these are the friends in her group chat, all from the kernel file ./drivers/net/ethernet/sfc/falcon/net_driver.h:

  • struct ef4_buffer(9)
  • struct ef4_special_buffer(9)
  • struct ef4_tx_queue(9)
  • struct ef4_rx_buffer(9)
  • struct ef4_rx_page_state(9)
  • struct ef4_rx_queue(9)
  • struct ef4_channel(9)
  • struct ef4_msi_context(9)
  • struct ef4_channel_type(9)
  • struct ef4_link_state(9)
  • struct ef4_phy_operations(9)
  • enum ef4_phy_mode(9)
  • struct ef4_hw_stat_desc(9)
  • struct ef4_nic(9)
  • struct ef4_nic_type(9)

and that's the whole page, no cap. πŸ¦‹ this one came from ./drivers/net/ethernet/sfc/falcon, dated October 2026, and it's filed under struct ef4_tx_buffer(9). go read the source bestie, she's literally right there πŸ’œ

πŸ“¦ where this page comes from