+struct sfc_evq;
+
+/**
+ * Software Rx descriptor information associated with hardware Rx
+ * descriptor.
+ */
+struct sfc_rx_sw_desc {
+ struct rte_mbuf *mbuf;
+ unsigned int flags;
+ unsigned int size;
+};
+
+/** Receive queue state bits */
+enum sfc_rxq_state_bit {
+ SFC_RXQ_INITIALIZED_BIT = 0,
+#define SFC_RXQ_INITIALIZED (1 << SFC_RXQ_INITIALIZED_BIT)
+};
+
+/**
+ * Receive queue information used on data path.
+ * Allocated on the socket specified on the queue setup.
+ */
+struct sfc_rxq {
+ /* Used on data path */
+ struct sfc_evq *evq;
+ struct sfc_rx_sw_desc *sw_desc;
+ unsigned int state;
+ unsigned int ptr_mask;
+
+ /* Used on refill */
+ struct rte_mempool *refill_mb_pool;
+ efx_rxq_t *common;
+ efsys_mem_t mem;
+
+ /* Not used on data path */
+ unsigned int hw_index;
+};
+
+static inline unsigned int
+sfc_rxq_sw_index_by_hw_index(unsigned int hw_index)
+{
+ return hw_index;
+}
+
+static inline unsigned int
+sfc_rxq_sw_index(const struct sfc_rxq *rxq)
+{
+ return sfc_rxq_sw_index_by_hw_index(rxq->hw_index);
+}