t3_offload_tx(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌸 t3_offload_tx(9) β€” the Kernel API Manual glow-up 🌸

okay so bestie, welcome to the t3_offload_tx(9) page from the Kernel API Manual β€” yes, we're literally reading kernel docs together, this is our bonding arc πŸ’–


✨ NAME ✨

t3_offload_tx β€” send an offload packet πŸš€


✨ SYNOPSIS ✨

int t3_offload_tx (struct t3cdev *tdev , struct sk_buff *skb );

like, that's the whole signature, no cap πŸ’…


✨ ARGUMENTS ✨

  • tdev β€” the offload device to send to 🫢 (this is the one getting the packet, she's the destination bestie)
  • skb β€” the packet πŸ“¦ (yes. the actual packet. the whole point.)

✨ DESCRIPTION ✨

so what does it do?? it sends an offload packet πŸ’« that's it, that's the vibe.

but here's the iconic part β€” we use the packet priority to pick the appropriate Tx queue, and it goes like this:

  • bit 0 tells you whether the packet should be sent as regular or control πŸ”€
  • bits 1-3 select the queue set πŸŽ€

literally reading bits like it's a group chat and every bit has its own personality, iykyk 😭


✨ SEE ALSO ✨

okay this is the part where I need you to breathe, because the list is long and every single one of these is coming with us πŸ‘‘ β€” all of them live in the kernel file ./drivers/net/ethernet/chelsio/cxgb3/sge.c:

refill_rspq(9), need_skb_unmap(9), unmap_skb(9), free_tx_desc(9), reclaim_completed_tx(9), should_restart_tx(9), free_rx_bufs(9), add_one_rx_buf(9), refill_fl(9), recycle_rx_buf(9), alloc_ring(9), t3_reset_qset(9), t3_free_qset(9), init_qset_cntxt(9), sgl_len(9), flits_to_desc(9), get_packet(9), get_packet_pg(9), get_imm_packet(9), calc_tx_descs(9), write_sgl(9), check_ring_tx_db(9), write_wr_hdr_sgl(9), write_tx_pkt_wr(9), t3_eth_xmit(9), write_imm(9), check_desc_avail(9), reclaim_completed_tx_imm(9), ctrl_xmit(9), restart_ctrlq(9), deferred_unmap_destructor(9), write_ofld_wr(9), calc_tx_descs_ofld(9), ofld_xmit(9), restart_offloadq(9), queue_set(9), is_ctrl_pkt(9), offload_enqueue(9), deliver_partial_bundle(9), ofld_poll(9), rx_offload(9), restart_tx(9), cxgb3_arp_process(9), rx_eth(9), lro_add_page(9), handle_rsp_cntrl_info(9), check_ring_db(9), is_new_response(9), process_responses(9), napi_rx_handler(9), process_pure_responses(9), handle_responses(9), t3_intr_handler(9), t3_sge_err_intr_handler(9), sge_timer_tx(9), sge_timer_rx(9), t3_update_qset_coalesce(9), t3_sge_alloc_qset(9), t3_start_sge_timers(9), t3_stop_sge_timers(9), t3_free_sge_resources(9), t3_sge_start(9), t3_sge_stop_dma(9), t3_sge_stop(9), t3_sge_init(9), t3_sge_prep(9)

not me listing all of them and still making it look cute β€” every single reference is there, fr fr, we do not skip entries in this house 🏠✨

aaand that's the page!! πŸ¦‹ mwah πŸ’‹ this one's brought to you from ./drivers/net/ethernet/chelsio... and it's dated October 2026 β€” yes, the future, we're ahead of schedule πŸ•°οΈβ­ slay, go read t3_offload_tx(9) again, periodt πŸ’œπŸŽ€

πŸ“¦ where this page comes from