inline_tx_skb(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– inline_tx_skb(9) β€” the kernel API manual, bestie edition πŸ’–

okay so bestie, you opened a section 9 man page (that's the kernel API manual, iykyk) and it's called inline_tx_skb β€” get comfy, this one's a little technical but we're gonna slay it together 🫢


✨ NAME ✨

inline_tx_skb β€” literally just inlining a packet's data straight into the TX descriptors πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

void inline_tx_skb (const struct sk_buff *skb , const struct sge_txq *tq
, void *pos );

πŸŽ€ ARGUMENTS πŸŽ€

  • skb β€” the packet, periodt. this is the actual data we're about to shove into the ring 🌸
  • tq β€” the TX queue where the packet will be inlined πŸ‘‘
  • pos β€” the starting position in the TX queue to inline the packet. that's the starting point, your home base, the place where it all begins ✨

πŸ’œ DESCRIPTION πŸ’œ

so here's the vibe: inline_tx_skb inlines a packet's contents directly into the TX descriptors, starting at the given position within the TX DMA ring β€” no middleman, no extra hop, just straight in πŸ”₯

and like... most of the complexity of this whole operation? it's dealing with wrap arounds that can happen in the middle of the packet we want to inline 😭 that's the main character energy of this function honestly. the ring wraps, the packet doesn't care, and somebody's gotta handle it 🧚


🌈 SEE ALSO 🌈

kernel file ./drivers/net/ethernet/chelsio/cxgb4vf/sge.c β€” like, the whole friend group lives there:

get_buf_addr(9), is_buf_mapped(9), need_skb_unmap(9), txq_avail(9), fl_cap(9), fl_starving(9), map_skb(9), free_tx_desc(9), reclaim_completed_tx(9), get_buf_size(9), free_rx_bufs(9), unmap_rx_buf(9), ring_fl_db(9), set_rx_sw_desc(9), refill_fl(9), alloc_ring(9), sgl_len(9), flits_to_desc(9), is_eth_imm(9), calc_tx_flits(9), write_sgl(9), ring_tx_db(9), t4vf_eth_xmit(9), copy_frags(9), t4vf_pktgl_to_skb(9), t4vf_pktgl_free(9), do_gro(9), t4vf_ethrx_handler(9), is_new_response(9), restore_rx_bufs(9), rspq_next(9), process_responses(9), napi_rx_handler(9), t4vf_intr_handler(9), sge_rx_timer_cb(9), sge_tx_timer_cb(9), bar2_address(9), t4vf_sge_alloc_rxq(9), t4vf_sge_alloc_eth_txq(9), t4vf_free_sge_resources(9), t4vf_sge_start(9), t4vf_sge_stop(9), t4vf_sge_init(9)

like, obsessed with how long that list is ngl πŸ’€ every single one of them, no skips, we read the whole group chat 😀


πŸ’‘ quick reminder bestie: this page comes from the source path ./drivers/net/ethernet/chelsio... and the date on it is October 2026 β€” so yeah, it's giving future energy ⭐

and that's a wrap on inline_tx_skb(9)! go forth and inline responsibly, bestie β€” the wrap arounds are watching πŸ‘€πŸ’–

πŸ“¦ where this page comes from