ice_tx_map(9)
π¦ ice_tx_map(9) β the Kernel API Manual, bestie edition π¦
okay so this is a page from the Kernel API Manual (section 9, kernel-space functions, iykyk) and it's literally about building a Tx descriptor. it's giving "small function, big job" energy and i'm obsessed π
β¨ SYNOPSIS β¨
void ice_tx_map (struct ice_tx_ring *tx_ring , struct ice_tx_buf *first
, struct ice_tx_offload_params *off );
no cap, that's the whole signature β it returns void, so it's not gonna hand you back a value, it just does the thing π
π ARGUMENTS π
tx_ringβ the ring you're sending the buffer on. like, the destination, the vibe, the place it all goes down β¨firstβ the first buffer info buffer to use. it's the entry point, the main character of the buffer situation πoffβ a pointer to the struct that holds the offload parameters. all the offload-y details live in there π«Ά
πΈ DESCRIPTION πΈ
so here's the tea, bestie π β this function loops over the skb data that *first points to. for each memory location it grabs a physical address, then it programs that physical address and the length straight into the transmit descriptor. that's it, that's the whole job, and it does it slayfully πβ¨
like, it's literally turning your scattered memory locations into nice tidy descriptor entries. no notes, ate π
π SEE ALSO π
first up, the source file itself, right here in the kernel tree:
- Kernel file
./drivers/net/ethernet/intel/ice/ice_txrx.c
and then a whole friend group of related functions β every single one of them, in order, no skipping π:
ice_prgm_fdir_fltr(9)ice_unmap_and_free_tx_buf(9)ice_clean_tstamp_ring(9)ice_free_tstamp_ring(9)ice_free_tx_tstamp_ring(9)ice_clean_tx_ring(9)ice_free_tx_ring(9)ice_clean_tx_irq(9)ice_alloc_tstamp_ring(9)ice_setup_tstamp_ring(9)ice_alloc_setup_tstamp_ring(9)ice_setup_tx_ring(9)ice_clean_rx_ring(9)ice_free_rx_ring(9)ice_setup_rx_ring(9)ice_run_xdp(9)ice_xmit_xdp_ring(9)ice_xdp_xmit(9)ice_init_ctrl_rx_descs(9)ice_alloc_rx_bufs(9)ice_clean_ctrl_rx_irq(9)ice_clean_rx_irq(9)ice_net_dim(9)ice_buildreg_itr(9)ice_enable_interrupt(9)ice_set_wb_on_itr(9)ice_napi_poll(9)__ice_maybe_stop_tx(9)ice_maybe_stop_tx(9)ice_tx_csum(9)ice_tx_prepare_vlan_flags(9)ice_tso(9)ice_txd_use_count(9)ice_xmit_desc_count(9)__ice_chk_linearize(9)ice_chk_linearize(9)ice_tstamp(9)ice_xmit_frame_ring(9)ice_start_xmit(9)ice_get_dscp_up(9)ice_clean_ctrl_tx_irq(9)
seriously, if you're poking at Tx descriptor stuff, this list is your group chat. go say hi π«Ά
π the cute sign-off π
this lil masterpiece lives over in ./drivers/net/ethernet/intel/ice and it's dated October 2026 β so yeah, we're reading from the future, ngl πβ anyway bestie, go build those descriptors, you're gonna slay π₯ππ
π¦ 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