STRUCT EF4_RX_QUEUE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– NAME πŸ’–

okay bestie, welcome to the struct ef4_rx_queue(9) page from the Kernel API Manual β€” this is all about struct ef4_rx_queue, aka An Efx RX queue. ✨

✨ SYNOPSIS ✨

       struct ef4_rx_queue {
           struct ef4_nic *efx;
           int core_index;
           struct ef4_rx_buffer *buffer;
           struct ef4_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;
        };

πŸŽ€ Members πŸŽ€

here's the member-by-member tea β˜• β€” every field from the struct, no skips:

  • efx β€” the associated Efx NIC πŸ’–
  • core_index β€” index of the network core RX queue. It’s >= 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 the fill level is low
  • flush_pending β€” set when a RX flush is pending. It 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 ef4_nic_generate_fill_event.

πŸ”₯ SEE ALSO πŸ”₯

so the SEE ALSO squad is: the kernel file ./drivers/net/ethernet/sfc/falcon/net_driver.h, plus these manual pages:

  • struct ef4_buffer(9)
  • struct ef4_special_buffer(9)
  • struct ef4_tx_buffer(9)
  • struct ef4_tx_queue(9)
  • struct ef4_rx_buffer(9)
  • struct ef4_rx_page_state(9)
  • struct ef4_channel(9)
  • struct ef4_msi_context(9)
  • struct ef4_channel_type(9)
  • struct ef4_link_state(9)
  • struct ef4_phy_operations(9)
  • enum ef4_phy_mode(9)
  • struct ef4_hw_stat_desc(9)
  • struct ef4_nic(9)
  • struct ef4_nic_type(9)

that's the whole page, bestie πŸ’… β€” source/version is ./drivers/net/ethernet/sfc/falcon, dated October 2026, and it's literally the struct ef4_rx_queue(9) page. 🫢

πŸ“¦ where this page comes from