libeth_xdp_run_pass(9)
β¨ NAME β¨
libeth_xdp_run_pass(9) β from the Kernel API Manual, section 9, bestie β is the helper to run XDP program and handle the result. itβs giving βsmall wrapper, big responsibilitiesβ π
β¨
πΈ SYNOPSIS πΈ
okay so the call shape is literally this, no cap:
libeth_xdp_run_pass (xdp , bq , napi , ss , desc , run , populate );
π ARGUMENTS π
hereβs the cast of characters, fr fr:
xdpβ XDP buffer to process. main character energy π«Άbqβ XDP Tx bulk to queueXDP_TXframes. slay a little πnapiβ NAPI to build an skb and pass it up the stack. iconic βssβ onstack libeth RQ stats. the stats bestie πdescβ pointer to the HW descriptor for that frame. hold onto it π₯runβ driver wrapper to run XDP program. go off πpopulateβ driver callback to populate an skb with the HW descriptor data. doing the detail work πΈ
π¦ DESCRIPTION π¦
This is the wrapper around the underscored version for the case where βfill the descriptor metadataβ means just writing the pointer to the HW descriptor as xdp->desc. thatβs it, thatβs the whole little pass β¨
π SEE ALSO π
the required reading / whole friend group, in order, no cap:
- Kernel file
./include/net/libeth/xdp.h 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_finalize_rx(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)
made with π from ./include/net/libeth Β· October 2026 Β· libeth_xdp_run_pass(9) β byeee, go run that pass π«Άβ¨
π¦ 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