t3_offload_tx(9)
πΈ 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
- 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