net/ice: track DCF state of PF
[dpdk.git] / drivers / net / sfc / sfc_dp_rx.h
index 3f6857b..246adbd 100644 (file)
@@ -14,6 +14,7 @@
 #include <ethdev_driver.h>
 
 #include "sfc_dp.h"
+#include "sfc_nic_dma_dp.h"
 
 #ifdef __cplusplus
 extern "C" {
@@ -92,6 +93,12 @@ struct sfc_dp_rx_qcreate_info {
        efsys_dma_addr_t        fcw_offset;
        /** VI window size shift */
        unsigned int            vi_window_shift;
+
+       /** Mask to extract user bits from Rx prefix mark field */
+       uint32_t                user_mark_mask;
+
+       /** NIC's DMA mapping information */
+       const struct sfc_nic_dma_info   *nic_dma_info;
 };
 
 /**
@@ -151,7 +158,7 @@ typedef int (sfc_dp_rx_qcreate_t)(uint16_t port_id, uint16_t queue_id,
                                  struct sfc_dp_rxq **dp_rxqp);
 
 /**
- * Free resources allocated for datapath recevie queue.
+ * Free resources allocated for datapath receive queue.
  */
 typedef void (sfc_dp_rx_qdestroy_t)(struct sfc_dp_rxq *dp_rxq);
 
@@ -184,7 +191,7 @@ typedef bool (sfc_dp_rx_qrx_ps_ev_t)(struct sfc_dp_rxq *dp_rxq,
 /**
  * Receive queue purge function called after queue flush.
  *
- * Should be used to free unused recevie buffers.
+ * Should be used to free unused receive buffers.
  */
 typedef void (sfc_dp_rx_qpurge_t)(struct sfc_dp_rxq *dp_rxq);
 
@@ -204,6 +211,9 @@ typedef int (sfc_dp_rx_intr_enable_t)(struct sfc_dp_rxq *dp_rxq);
 /** Disable Rx interrupts */
 typedef int (sfc_dp_rx_intr_disable_t)(struct sfc_dp_rxq *dp_rxq);
 
+/** Get number of pushed Rx buffers */
+typedef unsigned int (sfc_dp_rx_get_pushed_t)(struct sfc_dp_rxq *dp_rxq);
+
 /** Receive datapath definition */
 struct sfc_dp_rx {
        struct sfc_dp                           dp;
@@ -213,6 +223,7 @@ struct sfc_dp_rx {
 #define SFC_DP_RX_FEAT_FLOW_FLAG               0x2
 #define SFC_DP_RX_FEAT_FLOW_MARK               0x4
 #define SFC_DP_RX_FEAT_INTR                    0x8
+#define SFC_DP_RX_FEAT_STATS                   0x10
        /**
         * Rx offload capabilities supported by the datapath on device
         * level only if HW/FW supports it.
@@ -238,6 +249,7 @@ struct sfc_dp_rx {
        sfc_dp_rx_qdesc_status_t                *qdesc_status;
        sfc_dp_rx_intr_enable_t                 *intr_enable;
        sfc_dp_rx_intr_disable_t                *intr_disable;
+       sfc_dp_rx_get_pushed_t                  *get_pushed;
        eth_rx_burst_t                          pkt_burst;
 };