STRUCT IL_RX_QUEUE(9)
π struct il_rx_queue(9) π
okay so bestie, welcome to the Kernel API Manual β yes, that's the manual name, we're fancy now β and today's main character is struct il_rx_queue, aka the Rx queue. Receive queue. Incoming packets. The whole vibe. π¦
β¨ SYNOPSIS β¨
struct il_rx_queue {
__le32 *bd;
dma_addr_t bd_dma;
struct il_rx_buf pool[RX_QUEUE_SIZE + RX_FREE_BUFFERS];
struct il_rx_buf *queue[RX_QUEUE_SIZE];
u32 read;
u32 write;
u32 free_count;
u32 write_actual;
struct list_head rx_free;
struct list_head rx_used;
int need_update;
struct il_rb_status *rb_stts;
dma_addr_t rb_stts_dma;
spinlock_t lock;
};
like, that's the whole struct, no crumbs left. π
πΈ Members πΈ
bdβ the driver's pointer to the buffer of receive buffer descriptors (rbd). yes, "rbd" is the abbreviation, iykyk.bd_dmaβ the bus address of that same buffer of receive buffer descriptors (rbd). pointer's DMA twin, basically.readβ shared idx pointing at the newest available Rx buffer.writeβ shared idx pointing at the oldest written Rx packet.free_countβ how many pre-allocated buffers are sitting inrx_free.rx_freeβ a list of free SKBs for use. free as in available, not free as in no money. πrx_usedβ the list of Rx buffers with no SKB. sad little empty ones.need_updateβ flag that says "we need to update the read/write idx". it's giving main character flag energy.rb_sttsβ the driver's pointer to receive buffer status.rb_stts_dmaβ the bus address of the receive buffer status. yep, the DMA twin again, slay.
nglpool,queue,write_actualandlocklive in the struct too, but the page itself stays quiet on them β so I'm not gonna invent lore. π
π§ NOTE π§
rx_free and rx_used are used as a FIFO for il_rx_bufs. periodt. first in, first out, no cutting the line bestie. π₯
π«Ά SEE ALSO π«Ά
Kernel file ./drivers/net/wireless/intel/iwlegacy/common.h
struct il_device_cmd(9), struct il_device_cmd_huge(9), struct il_ht_agg(9), struct il_vif_priv(9), struct il_hw_params(9), struct il_cfg(9), il_clear_driver_stations(9), il_sta_id_or_broadcast(9), il_queue_inc_wrap(9), il_queue_dec_wrap(9), il_beacon_time_mask_low(9), il_beacon_time_mask_high(9), struct il_rb_status(9), struct il_tfd_tb(9), struct il_tfd(9), struct il_rate_scale_data(9), struct il_scale_tbl_info(9), struct il_lq_sta(9), il3945_rate_scale_init(9)
like go read them all, I'll wait. π
and that's the page!! mwah π β brought to you by the fine folks at ./drivers/net/wireless/intel/i..., October 2026. hope this helped bestie, go forth and queue responsibly π
π¦ 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