__libeth_xsk_run_pass(9)
π¦ __libeth_xsk_run_pass(9) β the Kernel API Manual, bestie edition
okay so this is a page from the <pink>Kernel API Manual</pink> and today's main character is __libeth_xsk_run_pass β say hi π
β¨ NAME β¨
__libeth_xsk_run_pass β the little helper that runs your XDP program and then deals with whatever chaotic result it hands back π
πΈ SYNOPSIS πΈ
bool __libeth_xsk_run_pass (struct libeth_xdp_buff *xdp , struct
libeth_xdp_tx_bulk *bq , struct napi_struct *napi , struct
libeth_rq_napi_stats *rs , const void *md , void (*prep)(struct
libeth_xdp_buff *xdp, const void *md) , u32 (*run)(struct
libeth_xdp_buff *xdp, struct libeth_xdp_tx_bulk *bq) , bool
(*populate)(struct sk_buff *skb, const struct libeth_xdp_buff *xdp,
struct libeth_rq_napi_stats *rs) );
like, look at that signature. it's giving "function pointer buffet" and honestly? we ate π
π ARGUMENTS π
xdpβ the XSk buffer we're processing. the star of the show, the one we're doing all this for πbqβ the XDP Tx bulk whereXDP_TXframes get queued up. think of it as the lil holding pen for frames that are like "yeah im going back out" π₯napiβ the NAPI we use to build an skb and send it up the stack. passing it up, respectfully π«Άrsβ onstack libeth RQ stats. living on the stack, keeping score βmdβ the metadata that should be filled into the XSk bufferprepβ the callback that actually fills that metadata inrunβ the driver wrapper that runs the XDP programpopulateβ the driver callback that populates an skb with the HW descriptor data
π§ DESCRIPTION π§
so basically this is an <purple>inline abstraction</purple> β it's the XSk's counterpart of __libeth_xdp_run_pass. if you wanna know the deep lore, go read its doc, because this one is literally just "see that one, yeah, same vibe" π
π RETURN π
falseβ the polling loop has to be exited because we ran out of free buffers π bad vibes, no buffers, we're outtrueβ otherwise! everything's fine, carry on, slay β¨
π SEE ALSO π
okay so the kernel file lives at ./include/net/libeth/xsk.h and here's the whole friend group, no one left behind π
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_tx_init_bulk(9)libeth_xsk_process_buff(9)__libeth_xsk_run_prog(9)libeth_xsk_run_prog(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 bestie, the whole squad is listed above β if you're hunting for a related function, it's probably in there. iykyk π
and that's a wrap! this page came to you from <mint>./include/net/libeth</mint>, dated <yellow>October 2026</yellow>, and it's literally titled __libeth_xsk_run_pass(9) in the Kernel API Manual. go forth and run those passes, queen ππ
π¦ 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