libeth_xsk_tx_init_bulk(9)
π libeth_xsk_tx_init_bulk(9) π
okay bestie, welcome to the Kernel API Manual β yes that's the manual name, we're fancy here β¨ this is the page for libeth_xsk_tx_init_bulk, and it's literally the glow-up your XDP Tx bulk needs before the party starts π
πΈ NAME πΈ
libeth_xsk_tx_init_bulk β get an XDP Tx bulk all set up and ready for an XSk Rx NAPI poll π¦
β¨ SYNOPSIS β¨
libeth_xsk_tx_init_bulk (bq , prog , dev , xdpsqs , num );
no cap, that's the whole call signature, use it exactly like that π«Ά
π ARGUMENTS π
bqβ the bulk you're initializing, bestie. this is the main character.progβ an RCU pointer to the XDP program. and heads up: it's never NULL πdevβ the targetnet_device, aka where all this is headed.xdpsqsβ an array of driver XDPSQ structs πnumβ how many XDPSQs are actually active, i.e. the length of that array above.
π₯ DESCRIPTION π₯
call this on an onstack XDP Tx bulk, right before the XSk NAPI polling loop β that's the vibe check it's built for β it initializes all the fields you need so the libeth_xdp functions can actually run, and it does the whole setup for you π
one thing it will not do: it never checks if prog is NULL or if num == 0, because XDP must always be enabled when you're hitting this path. so don't come at it with a NULL prog, fr fr π that's on you.
π¦ SEE ALSO π¦
kernel file ./include/net/libeth/xsk.h π and all these iconic siblings:
libeth_xsk_tx_queue_head(9)libeth_xsk_tx_queue_frag(9)libeth_xsk_tx_queue_bulk(9)libeth_xsk_tx_fill_buf(9)libeth_xsk_tx_flush_bulk(9)libeth_xsktmo_req_csum(9)__libeth_xsk_xmit_fill_buf_md(9)__libeth_xsk_xmit_fill_buf(9)libeth_xsk_xmit_fill_buf(9)libeth_xsk_xmit_do_bulk(9)libeth_xsk_process_buff(9)__libeth_xsk_run_prog(9)libeth_xsk_run_prog(9)__libeth_xsk_run_pass(9)libeth_xsk_run_pass(9)libeth_xsk_finalize_rx(9)LIBETH_XSK_DEFINE_FLUSH_TX(9)LIBETH_XSK_DEFINE_RUN_PROG(9)LIBETH_XSK_DEFINE_RUN_PASS(9)LIBETH_XSK_DEFINE_RUN(9)LIBETH_XSK_DEFINE_FINALIZE(9)struct libeth_xskfq(9)libeth_xsk_buff_xdp_get_dma(9)libeth_xskfqe_alloc(9)
ngl that's a whole friend group of functions, but they're all worth knowing π
and that's a wrap, bestie π«Ά this page lives in ./include/net/libeth, dated October 2026, and it's filed under libeth_xsk_tx_init_bulk(9). 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