libeth_xdp_tx_fill_buf(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– NAME πŸ’–

okay bestie, this is libeth_xdp_tx_fill_buf(9) from the Kernel API Manual, and it's the internal helper that fills exactly one XDP_TX &libeth_sqe. It's giving tiny function with main character energy, fr fr ✨.

✨ SYNOPSIS ✨

Here's the exact signature, no cap:

struct libeth_xdp_tx_desc libeth_xdp_tx_fill_buf (struct libeth_xdp_tx_frame frm , u32 i , const struct libeth_xdpsq *sq , u64 priv );

πŸŽ€ ARGUMENTS πŸŽ€

  • frm β€” the XDP Tx frame from the bulk πŸ¦‹
  • i β€” the index on the HW queue ⭐
  • sq β€” the XDPSQ abstraction for the queue πŸ’…
  • priv β€” private data πŸ”’

🌸 RETURN 🌸

You get back an XDP Tx descriptor with the synced DMA and the other info to pass to the driver callback. That's the whole point β€” hand it to the driver callback and keep it moving 🫢.

πŸ‘‘ SEE ALSO πŸ‘‘

Kernel file ./include/net/libeth/xdp.h is part of the vibe, and then the whole linked crew is: 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_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).

okay that's literally the whole page, bestie β€” libeth_xdp_tx_fill_buf(9) lives in ./include/net/libeth, dated October 2026. mwah πŸ’‹βœ¨

πŸ“¦ where this page comes from