doc: announce behavior change in bus probing
[dpdk.git] / drivers / net / sfc / sfc_dp_rx.h
index 3aba396..760540b 100644 (file)
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: BSD-3-Clause
  *
- * Copyright(c) 2019-2020 Xilinx, Inc.
+ * Copyright(c) 2019-2021 Xilinx, Inc.
  * Copyright(c) 2017-2019 Solarflare Communications Inc.
  *
  * This software was jointly developed between OKTET Labs (under contract
 #define _SFC_DP_RX_H
 
 #include <rte_mempool.h>
-#include <rte_ethdev_driver.h>
+#include <ethdev_driver.h>
 
 #include "sfc_dp.h"
+#include "sfc_nic_dma_dp.h"
 
 #ifdef __cplusplus
 extern "C" {
@@ -88,8 +89,16 @@ struct sfc_dp_rx_qcreate_info {
         * doorbell
         */
        volatile void           *mem_bar;
+       /** Function control window offset */
+       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;
 };
 
 /**
@@ -159,7 +168,8 @@ typedef void (sfc_dp_rx_qdestroy_t)(struct sfc_dp_rxq *dp_rxq);
  * It handovers EvQ to the datapath.
  */
 typedef int (sfc_dp_rx_qstart_t)(struct sfc_dp_rxq *dp_rxq,
-                                unsigned int evq_read_ptr);
+                                unsigned int evq_read_ptr,
+                                const efx_rx_prefix_layout_t *pinfo);
 
 /**
  * Receive queue stop function called before flush.
@@ -201,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;
@@ -210,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.
@@ -235,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;
 };