ice_xmit_xdp_tx_zc(9)
π ice_xmit_xdp_tx_zc(9) π
okay so bestie, welcome to the Kernel API Manual page for ice_xmit_xdp_tx_zc β yes that's a mouthful, yes it's iconic, no you don't have to say it out loud. sit down, hydrate, and let's get into it π«Ά
β¨ NAME β¨
ice_xmit_xdp_tx_zc β the AF_XDP ZC handler for XDP_TX, and honestly? she's kind of a big deal π₯
πΈ SYNOPSIS πΈ
int ice_xmit_xdp_tx_zc (struct xdp_buff *xdp , struct ice_tx_ring
*xdp_ring , struct xsk_buff_pool *xsk_pool );
three pointers in, one int out. that's the whole vibe check β¨
π¦ ARGUMENTS π¦
xdpβ the XDP buffer you're gonna xmit. she's the star of the show, no cap πxdp_ringβ the XDP ring you're producing a descriptor onto. this is where the magic gets written down πxsk_poolβ the AF_XDP buffer pool pointer. the supply closet, basically π
π DESCRIPTION π
okay so literally the first thing to know: this function works directly on xdp_buff, and there's no need to convert it to xdp_frame. zero conversion arc, we skip the whole plotline, it's giving efficiency π
the xdp_buff pointer gets stored into ice_tx_buf so that the cleaning side will be able to xsk_buff_free it later. yes, that's the plan, that's the setup, that's the whole foreshadowing situation π§
as for what she returns β it's a little choose-your-own-adventure:
ICE_XDP_TXβ slay, a desc was successfully produced βICE_XDP_CONSUMEDβ there was not enough space on the XDP ring π no room, no desc, we move on
bestie please clock this: those two return values are the only two outcomes described here. don't go inventing a third one, i'm begging π
π SEE ALSO π
the kernel file herself lives at ./drivers/net/ethernet/intel/ice/ice_xsk.c β go say hi π«Ά
and the whole friend group, in order, no cap:
ice_qvec_toggle_napi(9)ice_qvec_dis_irq(9)ice_qvec_cfg_msix(9)ice_qvec_ena_irq(9)ice_xsk_pool_disable(9)ice_xsk_pool_enable(9)ice_realloc_rx_xdp_bufs(9)ice_xsk_pool_setup(9)ice_fill_rx_descs(9)__ice_alloc_rx_bufs_zc(9)ice_alloc_rx_bufs_zc(9)ice_clean_xdp_irq_zc(9)ice_run_xdp_zc(9)ice_clean_rx_irq_zc(9)ice_xmit_pkt(9)ice_xmit_pkt_batch(9)ice_fill_tx_hw_ring(9)ice_xmit_zc(9)ice_xsk_wakeup(9)ice_xsk_any_rx_ring_ena(9)ice_xsk_clean_rx_ring(9)ice_xsk_clean_xdp_ring(9)
and that's the page!! π this lil masterpiece comes to you straight from ./drivers/net/ethernet/intel/ice, dated October 2026 β yes, from the future, we stay ahead of schedule β¨ mwah, go read the other pages, ily, bye ππ
π¦ 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