libeth_xdp_prog_exception(9)
β¨ libeth_xdp_prog_exception β the kernel API manual, bestie edition β¨
okay so we're in the <purple>libeth_xdp_prog_exception(9)</purple> page, which is genuinely one of those "you're not supposed to be here" situations and I am obsessed with the drama of it. π
this is a <cyan>u32</cyan>-returning, <cyan>__cold</cyan>-marked helper living in the kernel's driver world, and it handles XDP prog exceptions. like, the messy part. the part where the verdict was weird and somebody has to clean up. main character energy honestly. π
πΈ SYNOPSIS πΈ
u32 __cold libeth_xdp_prog_exception (const struct libeth_xdp_tx_bulk
*bq , struct libeth_xdp_buff *xdp , enum xdp_action act , int ret );
like, copy-paste it exactly, don't get cute with the spacing, i'm begging π«Ά
π ARGUMENTS π
bqβ the XDP Tx bulk. it's the batch thing. you give it the batch. slay. β¨xdpβ the buffer to process. this is the actual packet situation we're dealing with. πactβ the original XDP prog verdict. the plot twist that got us here in the first place. πretβ the error code, in case the redirect straight-up failed. π yeah. that kind of day.
π¦ DESCRIPTION π¦
so this is an <yellow>external helper</yellow> β used by __libeth_xdp_run_prog and __libeth_xsk_run_prog_slow. it exists for them. it does not exist for you.
π¨ do not call directly. fr fr. not a vibe check you want to fail. this is an internal joint and it's marked<cyan>__cold</cyan>for a reason, like the compiler is literally telling you it's the rare-path sad path.
what does it actually do when it's called? three things, iconic behavior honestly:
- it reports an
<hotpink>invalidact``</hotpink>β the verdict was nonsense and it's saying so out loud. - it fires off the
<pink>XDP exception trace event</pink>β receipts. always receipts. π§Ύβ¨ - it
<red>frees the buffer</red>. bye bestie, memory's reclaimed, no leak. π«Ά
β RETURN β
returns the <rainbow>libeth_xdp XDP prog verdict</rainbow>. yes that's the whole sentence. yes it's still your answer. π
π SEE ALSO π
kernel file: ./drivers/net/ethernet/intel/libeth/xdp.c
and the rest of the crew, go say hi (iykyk):
libeth_xdpsq_init_timer(9)libeth_xdp_tx_exception(9)libeth_xdp_load_stash(9)libeth_xdp_save_stash(9)libeth_xdp_return_buff_slow(9)libeth_xdp_buff_add_frag(9)libeth_xdp_return_buff_bulk(9)libeth_xdp_queue_threshold(9)__libeth_xdp_set_features(9)libeth_xdp_set_redirect(9)
that's the whole page, bestie, no cap. π source/version situash: the footer goes ./drivers/net/ethernet/intel/l... and the date is <lavender>October 2026</lavender>, and the page is libeth_xdp_prog_exception(9) β mwah, 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