libeth_xsk_process_buff(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– libeth_xsk_process_buff(9) πŸ’–

okay bestie, welcome to the Kernel API Manual β€” today's main character is libeth_xsk_process_buff(9), and she's literally here to help attach an XSk Rx buffer to &libeth_xdp_buff. no cap. 🫢

🌸 NAME 🌸

libeth_xsk_process_buff β€” attach XSk Rx buffer to &libeth_xdp_buff.

✨ SYNOPSIS ✨

struct libeth_xdp_buff * libeth_xsk_process_buff (struct libeth_xdp_buff
       *head , struct libeth_xdp_buff *xdp , u32 len );

πŸŽ€ ARGUMENTS πŸŽ€

  • head β€” the head XSk buffer to attach the XSk buffer to (or NULL).
  • xdp β€” the XSk buffer to process.
  • len β€” received data length from the descriptor.

πŸ¦‹ DESCRIPTION πŸ¦‹

so here's the vibe check: if head == NULL, it treats the XSk buffer as the head and initializes the required fields. otherwise, it attaches the buffer as a frag.

it already performs the DMA sync-for-CPU and the frame start prefetch β€” and yes, that parenthetical is important: for head buffers only. πŸ™ˆ

πŸ”₯ RETURN πŸ”₯

it gives you back the head XSk buffer on success, or if the descriptor must be skipped (empty). it returns NULL if there is no space for a new frag. periodt. πŸ’…

🌈 SEE ALSO 🌈

go peek at the kernel file ./include/net/libeth/xsk.h, bestie. the whole squad is: libeth_xsk_tx_queue_head(9), libeth_xsk_tx_queue_frag(9), libeth_xsk_tx_queue_bulk(9), libeth_xsk_tx_fill_buf(9), libeth_xsk_tx_flush_bulk(9), libeth_xsktmo_req_csum(9), __libeth_xsk_xmit_fill_buf_md(9), __libeth_xsk_xmit_fill_buf(9), libeth_xsk_xmit_fill_buf(9), libeth_xsk_xmit_do_bulk(9), libeth_xsk_tx_init_bulk(9), __libeth_xsk_run_prog(9), libeth_xsk_run_prog(9), __libeth_xsk_run_pass(9), libeth_xsk_run_pass(9), libeth_xsk_finalize_rx(9), LIBETH_XSK_DEFINE_FLUSH_TX(9), LIBETH_XSK_DEFINE_RUN_PROG(9), LIBETH_XSK_DEFINE_RUN_PASS(9), LIBETH_XSK_DEFINE_RUN(9), LIBETH_XSK_DEFINE_FINALIZE(9), struct libeth_xskfq(9), libeth_xsk_buff_xdp_get_dma(9), libeth_xskfqe_alloc(9).


xoxo, bestie β€” from libeth_xsk_process_buff(9), source/version: ./include/net/libeth, dated October 2026 πŸ’–πŸ«Ά

πŸ“¦ where this page comes from