STRUCT EFX_RX_QUEUE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌸 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 >= 0 iff 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 as rxq_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 defer efx_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