net/sfc: support regioned NIC DMA memory mapping type
[dpdk.git] / drivers / net / sfc / sfc.h
index 34e4772..3337cb5 100644 (file)
@@ -27,6 +27,7 @@
 #include "sfc_debug.h"
 #include "sfc_log.h"
 #include "sfc_filter.h"
+#include "sfc_flow_tunnel.h"
 #include "sfc_sriov.h"
 #include "sfc_mae.h"
 #include "sfc_dp.h"
@@ -34,6 +35,7 @@
 #include "sfc_repr_proxy.h"
 #include "sfc_service.h"
 #include "sfc_ethdev_state.h"
+#include "sfc_nic_dma_dp.h"
 
 #ifdef __cplusplus
 extern "C" {
@@ -144,6 +146,8 @@ struct sfc_adapter_shared {
        bool                            counters_rxq_allocated;
        unsigned int                    nb_repr_rxq;
        unsigned int                    nb_repr_txq;
+
+       struct sfc_nic_dma_info         nic_dma_info;
 };
 
 /* Adapter process private data */
@@ -234,6 +238,8 @@ struct sfc_adapter {
        struct sfc_intr                 intr;
        struct sfc_port                 port;
        struct sfc_sw_stats             sw_stats;
+       /* Registry of tunnel offload contexts */
+       struct sfc_flow_tunnel          flow_tunnels[SFC_FT_MAX_NTUNNELS];
        struct sfc_filter               filter;
        struct sfc_mae                  mae;
        struct sfc_repr_proxy           repr_proxy;
@@ -289,6 +295,8 @@ struct sfc_adapter {
        boolean_t                       tso;
        boolean_t                       tso_encap;
 
+       uint64_t                        negotiated_rx_metadata;
+
        uint32_t                        rxd_wait_timeout_ns;
 
        bool                            switchdev;
@@ -387,8 +395,9 @@ sfc_get_system_msecs(void)
        return rte_get_timer_cycles() * MS_PER_S / rte_get_timer_hz();
 }
 
-int sfc_dma_alloc(const struct sfc_adapter *sa, const char *name, uint16_t id,
-                 size_t len, int socket_id, efsys_mem_t *esmp);
+int sfc_dma_alloc(struct sfc_adapter *sa, const char *name, uint16_t id,
+                 efx_nic_dma_addr_type_t addr_type, size_t len, int socket_id,
+                 efsys_mem_t *esmp);
 void sfc_dma_free(const struct sfc_adapter *sa, efsys_mem_t *esmp);
 
 uint32_t sfc_register_logtype(const struct rte_pci_addr *pci_addr,
@@ -398,6 +407,7 @@ uint32_t sfc_register_logtype(const struct rte_pci_addr *pci_addr,
 int sfc_probe(struct sfc_adapter *sa);
 void sfc_unprobe(struct sfc_adapter *sa);
 int sfc_attach(struct sfc_adapter *sa);
+void sfc_pre_detach(struct sfc_adapter *sa);
 void sfc_detach(struct sfc_adapter *sa);
 int sfc_start(struct sfc_adapter *sa);
 void sfc_stop(struct sfc_adapter *sa);