net/sfc: support SW stats groups
[dpdk.git] / drivers / net / sfc / sfc.h
index 58b8c2c..3067901 100644 (file)
@@ -30,6 +30,7 @@
 #include "sfc_sriov.h"
 #include "sfc_mae.h"
 #include "sfc_dp.h"
+#include "sfc_sw_stats.h"
 
 #ifdef __cplusplus
 extern "C" {
@@ -217,6 +218,30 @@ struct sfc_counter_rxq {
        struct rte_mempool              *mp;
 };
 
+struct sfc_sw_stat_data {
+       const struct sfc_sw_stat_descr *descr;
+       /* Cache fragment */
+       uint64_t                        *cache;
+};
+
+struct sfc_sw_stats {
+       /* Number extended statistics provided by SW stats */
+       unsigned int                    xstats_count;
+       /* Supported SW statistics */
+       struct sfc_sw_stat_data         *supp;
+       unsigned int                    supp_count;
+
+       /* Cache for all supported SW statistics */
+       uint64_t                        *cache;
+       unsigned int                    cache_count;
+
+       uint64_t                        *reset_vals;
+
+       rte_spinlock_t                  queues_bitmap_lock;
+       void                            *queues_bitmap_mem;
+       struct rte_bitmap               *queues_bitmap;
+};
+
 /* Adapter private data */
 struct sfc_adapter {
        /*
@@ -249,6 +274,7 @@ struct sfc_adapter {
        struct sfc_sriov                sriov;
        struct sfc_intr                 intr;
        struct sfc_port                 port;
+       struct sfc_sw_stats             sw_stats;
        struct sfc_filter               filter;
        struct sfc_mae                  mae;