STRUCT EFX_RX_QUEUE(9)
πΈ struct efx_rx_queue(9) β Kernel API Manual πΈ
π NAME
struct efx_rx_queue β literally An Efx RX queue, bestie. Thatβs the whole vibe. π¦
β¨ SYNOPSIS β¨
Okay so hereβs the struct in all its main-character glory β field names are iconic, do not touch:
struct efx_rx_queue {
struct efx_nic *efx;
int core_index;
struct efx_rx_buffer *buffer;
struct efx_special_buffer rxd;
unsigned int ptr_mask;
bool refill_enabled;
bool flush_pending;
unsigned int added_count;
unsigned int notified_count;
unsigned int removed_count;
unsigned int scatter_n;
unsigned int scatter_len;
struct page **page_ring;
unsigned int page_add;
unsigned int page_remove;
unsigned int page_recycle_count;
unsigned int page_recycle_failed;
unsigned int page_recycle_full;
unsigned int page_ptr_mask;
unsigned int max_fill;
unsigned int fast_fill_trigger;
unsigned int min_fill;
unsigned int min_overfill;
unsigned int recycle_count;
struct timer_list slow_fill;
unsigned int slow_fill_count;
unsigned long rx_packets;
struct xdp_rxq_info xdp_rxq_info;
};
π Members π
efxβ The associated Efx NIC. Your fave NIC linkage. πcore_indexβ Index of network core RX queue. Will be>= 0iff this is associated with a real RX queue.bufferβ The software buffer ring.rxdβ The hardware descriptor ring.ptr_maskβ The size of the ring minus 1.refill_enabledβ Enable refill whenever fill level is low.flush_pendingβ Set when a RX flush is pending. Has the same lifetime asrxq_flush_pending.added_countβ Number of buffers added to the receive queue.notified_countβ Number of buffers given to NIC (<= added_count).removed_countβ Number of buffers removed from the receive queue.scatter_nβ Used by NIC specific receive code.scatter_lenβ Used by NIC specific receive code.page_ringβ The ring to store DMA mapped pages for reuse.page_addβ Counter to calculate the write pointer for the recycle ring.page_removeβ Counter to calculate the read pointer for the recycle ring.page_recycle_countβ The number of pages that have been recycled.page_recycle_failedβ The number of pages that couldnβt be recycled because the kernel still held a reference to them.page_recycle_fullβ The number of pages that were released because the recycle ring was full.page_ptr_maskβ The number of pages in the RX recycle ring minus 1.max_fillβ RX descriptor maximum fill level (<= ring size).fast_fill_triggerβ RX descriptor fill level that will trigger a fast fill (<= max_fill).min_fillβ RX descriptor minimum non-zero fill level. This records the minimum fill level observed when a ring refill was triggered.recycle_countβ RX buffer recycle counter.slow_fillβ Timer used to deferefx_nic_generate_fill_event.xdp_rxq_infoβ XDP specific RX queue information.
Tiny honesty note, bestie: the struct up top also has min_overfill, slow_fill_count, and rx_packets β the source pageβs Members list doesnβt give them blurbs, so Iβm not making up lore. ππ
π SEE ALSO π
The source points at the kernel file ./drivers/net/ethernet/sfc/siena/net_driver.h, and then the whole squad:
struct efx_buffer(9)struct efx_special_buffer(9)struct efx_tx_buffer(9)struct efx_tx_queue(9)struct efx_rx_buffer(9)struct efx_rx_page_state(9)struct efx_channel(9)struct efx_msi_context(9)struct efx_channel_type(9)struct efx_link_state(9)enum efx_phy_mode(9)struct efx_hw_stat_desc(9)struct efx_rss_context(9)struct efx_arfs_rule(9)struct efx_async_filter_insertion(9)struct efx_nic(9)struct efx_nic_type(9)
Source/version: ./drivers/net/ethernet/sfc/siena Β· Date: October 2026 Β· page: struct efx_rx_queue(9) β byeee bestie ππ§β¨
π¦ 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