libeth_xdp_finalize_rx(9)
π libeth_xdp_finalize_rx(9) π
okay so this is a page from the Kernel API Manual and honestly? it's a little guy with a big job. bestie, meet libeth_xdp_finalize_rx β the function that wraps up your XDPSQ after a NAPI polling loop (non-XSk flavor, iykyk). β¨
πΈ NAME πΈ
libeth_xdp_finalize_rx β finalize XDPSQ after a NAPI polling loop (non-XSk)
like it literally says it on the tin, no cap. you poll, and then you finalize. that's the whole vibe. π
β SYNOPSIS β
libeth_xdp_finalize_rx (bq , flush , finalize );
three args, one call, zero drama. periodt. π
π¦ ARGUMENTS π¦
bqβ theXDP_TXframe bulk. yes bestie, this is the bulk β the pile of frames you're holding onto. she's the main character here. πflushβ driver callback that flushes the bulk. your escape hatch when there's still stuff to push out. πfinalizeβ driver callback that starts sending the frames and runs the timer. the finishing move, the slay-at-the-end moment. β°
π DESCRIPTION π
so here's the tea, and it's a short one:
Flush the bulk if there are frames left to send, kick the queue, and flush the XDP maps.
that's it. that's the function. three little moves: leftover frames β flush them, queue β kick it, XDP maps β flush those too. literally the cleanup crew of the XDP world and we love her for it. π§Ήβ¨
ngl it's giving "last one out, turn off the lights" energy but make it kernel. π«Ά
π SEE ALSO π
all the siblings and cousins and extended family live in the kernel file ./include/net/libeth/xdp.h β go say hi to them, fr fr:
struct libeth_xdp_buff(9)__LIBETH_XDP_ONSTACK_BUFF(9)LIBETH_XDP_ONSTACK_BUFF(9)libeth_xdpsq_num(9)libeth_xdpsq_shared(9)libeth_xdpsq_id(9)libeth_xdpsq_get(9)libeth_xdpsq_put(9)libeth_xdpsq_lock(9)libeth_xdpsq_unlock(9)libeth_xdpsq_deinit_timer(9)libeth_xdpsq_queue_timer(9)libeth_xdpsq_run_timer(9)enum (anonymous)(9)enum (anonymous)(9)struct libeth_xdp_tx_frame(9)struct libeth_xdp_tx_bulk(9)LIBETH_XDP_ONSTACK_BULK(9)struct libeth_xdpsq(9)struct libeth_xdp_tx_desc(9)libeth_xdp_ptr_to_priv(9)libeth_xdp_priv_to_ptr(9)libeth_xdp_tx_xmit_bulk(9)libeth_xdp_tx_queue_head(9)libeth_xdp_tx_queue_frag(9)libeth_xdp_tx_queue_bulk(9)libeth_xdp_tx_fill_stats(9)libeth_xdp_tx_fill_buf(9)__libeth_xdp_tx_flush_bulk(9)libeth_xdp_tx_flush_bulk(9)libeth_xdp_xmit_init_bulk(9)libeth_xdp_xmit_frame_dma(9)libeth_xdp_xmit_queue_head(9)libeth_xdp_xmit_queue_frag(9)libeth_xdp_xmit_queue_bulk(9)libeth_xdp_xmit_fill_buf(9)libeth_xdp_xmit_flush_bulk(9)__libeth_xdp_xmit_do_bulk(9)libeth_xdp_xmit_do_bulk(9)libeth_xdp_tx_init_bulk(9)libeth_xdp_init_buff(9)libeth_xdp_save_buff(9)libeth_xdp_return_stash(9)libeth_xdp_return_buff(9)libeth_xdp_prepare_buff(9)libeth_xdp_process_buff(9)libeth_xdp_buff_stats_frags(9)__libeth_xdp_run_prog(9)__libeth_xdp_run_flush(9)libeth_xdp_run_prog(9)__libeth_xdp_run_pass(9)libeth_xdp_run_pass(9)LIBETH_XDP_DEFINE_TIMER(9)LIBETH_XDP_DEFINE_FLUSH_TX(9)LIBETH_XDP_DEFINE_FLUSH_XMIT(9)LIBETH_XDP_DEFINE_RUN_PROG(9)LIBETH_XDP_DEFINE_RUN_PASS(9)LIBETH_XDP_DEFINE_RUN(9)LIBETH_XDP_DEFINE_FINALIZE(9)libeth_xdp_buff_to_rq(9)libeth_xdpmo_rx_hash(9)__libeth_xdp_complete_tx(9)libeth_xdp_set_features(9)libeth_xdp_set_features_noredir(9)
okay that's the whole page bestie, you ate that π β¨
cute little sign-off: this one comes from the source ./include/net/libeth, dated October 2026. go forth and finalize responsibly. ππ§π
π¦ 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