STRUCT LIBETH_XDPSQ(9)
π NAME π
struct libeth_xdpsq β abstraction for an XDPSQ. okay bestie, this is the struct libeth_xdpsq(9) page from the Kernel API Manual, and it's literally the blueprint for an XDPSQ abstraction. periodt. π
β¨ SYNOPSIS β¨
here's the exact struct, no edits, no cap:
struct libeth_xdpsq {
struct xsk_buff_pool *pool;
struct libeth_sqe *sqes;
void *descs;
u32 *ntu;
u32 count;
u32 *pending;
u32 *xdp_tx;
struct libeth_xdpsq_lock *lock;
};
πΈ Members πΈ
poolβ XSk buffer pool for XSkXDP_TXand xmit. slay.sqesβ array of Tx buffers from the actual queue struct. πdescsβ opaque pointer to the HW descriptor array. iykyk.ntuβ pointer to the next free descriptor index. β¨countβ number of descriptors on that queue. πpendingβ pointer to the number of sent-not-completed descs on that queue. πxdp_txβ pointer to the above, but only for non-XSk-xmit frames. noted.lockβ corresponding XDPSQ lock. π
π Description π
this icon is the abstraction for driver-independent implementation of Tx. the driver places it on the stack and fills it in before the transmission, so the generic functions can access and modify driver-specific resources. it's giving driver-specific resources, but make it generic. no cap. π
π SEE ALSO π
Kernel file: ./include/net/libeth/xdp.h β and here's the whole related-reference squad, every single one, in order:
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_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_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)
bye bestie π«Ά this page's source/version is ./include/net/libeth, and the date is October 2026. stay iconic β¨π
π¦ 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