libeth_xdp_set_features(9)
π libeth_xdp_set_features(9) β Kernel API Manual π
okay bestie, so we're in the Kernel API Manual today and the main character is libeth_xdp_set_features. she's a one-trick pony but the trick is iconic. let's get into it β¨
πΈ NAME πΈ
libeth_xdp_set_features β set XDP features for netdev π
π¦ SYNOPSIS π¦
libeth_xdp_set_features (dev , ... );
β¨ ARGUMENTS β¨
devβ thenet_deviceto configure, aka the girl you're doing all this for π«Ά...β optional params, see__libeth_xdp_set_features. yes queen, the variadic life, iykyk π
π₯ DESCRIPTION π₯
so what she does is set all the features libeth_xdp supports β and yes, that includes .ndo_xdp_xmit. full package, no crumbs. π
but (and this is the important part, don't skip it π) she should be used only when XDPSQs are always available regardless of whether an XDP prog is attached to dev. like, always always. if they're conditional, this is not your girl. periodt.
π§ SEE ALSO π§
Kernel file ./include/net/libeth/xdp.h, plus the whole extended universe, no cap:
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_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_noredir(9)
like, that's the whole friend group. go say hi. ππ
mwah π that's the page! this lil beauty lives at ./include/net/libeth, dated October 2026, and she's filed under libeth_xdp_set_features(9) β slay, go touch some grass (or some netdev), ily bye ππ§ββοΈβ
π¦ 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