net/sfc: query RSS key and hash types config
[dpdk.git] / drivers / net / sfc / sfc_rx.h
index 69318ab..45b1d77 100644 (file)
@@ -83,6 +83,10 @@ struct sfc_rxq {
        unsigned int            completed;
        uint16_t                batch_max;
        uint16_t                prefix_size;
+#if EFSYS_OPT_RX_SCALE
+       unsigned int            flags;
+#define SFC_RXQ_RSS_HASH       0x1
+#endif
 
        /* Used on refill */
        unsigned int            added;
@@ -119,6 +123,8 @@ struct sfc_rxq_info {
        unsigned int            entries;
        efx_rxq_type_t          type;
        struct sfc_rxq          *rxq;
+       boolean_t               deferred_start;
+       boolean_t               deferred_started;
 };
 
 int sfc_rx_init(struct sfc_adapter *sa);
@@ -140,6 +146,15 @@ void sfc_rx_qflush_failed(struct sfc_rxq *rxq);
 uint16_t sfc_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts,
                       uint16_t nb_pkts);
 
+unsigned int sfc_rx_qdesc_npending(struct sfc_adapter *sa,
+                                  unsigned int sw_index);
+int sfc_rx_qdesc_done(struct sfc_rxq *rxq, unsigned int offset);
+
+#if EFSYS_OPT_RX_SCALE
+efx_rx_hash_type_t sfc_rte_to_efx_hash_type(uint64_t rss_hf);
+uint64_t sfc_efx_to_rte_hash_type(efx_rx_hash_type_t efx_hash_types);
+#endif
+
 #ifdef __cplusplus
 }
 #endif