common/mlx5: move some getter functions from net driver
[dpdk.git] / drivers / net / ionic / ionic_lif.h
index 5e7d9ae..425762d 100644 (file)
 #define IONIC_ADMINQ_LENGTH    16      /* must be a power of two */
 #define IONIC_NOTIFYQ_LENGTH   64      /* must be a power of two */
 
+#define IONIC_RSS_OFFLOAD_ALL ( \
+       IONIC_RSS_TYPE_IPV4 | \
+       IONIC_RSS_TYPE_IPV4_TCP | \
+       IONIC_RSS_TYPE_IPV4_UDP | \
+       IONIC_RSS_TYPE_IPV6 | \
+       IONIC_RSS_TYPE_IPV6_TCP | \
+       IONIC_RSS_TYPE_IPV6_UDP)
+
 #define IONIC_GET_SG_CNTR_IDX(num_sg_elems)    (num_sg_elems)
 
 struct ionic_tx_stats {
@@ -24,6 +32,7 @@ struct ionic_tx_stats {
        uint64_t bytes;
        uint64_t drop;
        uint64_t stop;
+       uint64_t no_csum;
        uint64_t tso;
        uint64_t frags;
 };
@@ -96,10 +105,17 @@ struct ionic_lif {
        uint32_t rx_mode;
        char name[IONIC_LIF_NAME_MAX_SZ];
        uint8_t mac_addr[RTE_ETHER_ADDR_LEN];
+       uint16_t rss_types;
+       uint8_t rss_hash_key[IONIC_RSS_HASH_KEY_SIZE];
+       uint8_t *rss_ind_tbl;
+       rte_iova_t rss_ind_tbl_pa;
+       const struct rte_memzone *rss_ind_tbl_z;
        uint32_t info_sz;
        struct ionic_lif_info *info;
        rte_iova_t info_pa;
        const struct rte_memzone *info_z;
+       struct rte_eth_stats stats_base;
+       struct ionic_lif_stats lif_stats_base;
 };
 
 int ionic_lif_identify(struct ionic_adapter *adapter);
@@ -156,8 +172,19 @@ void ionic_lif_rxq_deinit(struct ionic_qcq *qcq);
 int ionic_lif_txq_init(struct ionic_qcq *qcq);
 void ionic_lif_txq_deinit(struct ionic_qcq *qcq);
 
+int ionic_lif_rss_config(struct ionic_lif *lif, const uint16_t types,
+       const uint8_t *key, const uint32_t *indir);
+
 int ionic_lif_set_features(struct ionic_lif *lif);
 
+void ionic_lif_get_stats(const struct ionic_lif *lif,
+       struct rte_eth_stats *stats);
+void ionic_lif_reset_stats(struct ionic_lif *lif);
+
+void ionic_lif_get_hw_stats(struct ionic_lif *lif,
+       struct ionic_lif_stats *stats);
+void ionic_lif_reset_hw_stats(struct ionic_lif *lif);
+
 int ionic_notifyq_handler(struct ionic_lif *lif, int budget);
 
 #endif /* _IONIC_LIF_H_ */