+/** Counter collection entry */
+struct sfc_mae_counter {
+ bool inuse;
+ uint32_t generation_count;
+ union sfc_pkts_bytes value;
+ union sfc_pkts_bytes reset;
+};
+
+struct sfc_mae_counters_xstats {
+ uint64_t not_inuse_update;
+ uint64_t realloc_update;
+};
+
+struct sfc_mae_counters {
+ /** An array of all MAE counters */
+ struct sfc_mae_counter *mae_counters;
+ /** Extra statistics for counters */
+ struct sfc_mae_counters_xstats xstats;
+ /** Count of all MAE counters */
+ unsigned int n_mae_counters;
+};
+
+struct sfc_mae_counter_registry {
+ /* Common counter information */
+ /** Counters collection */
+ struct sfc_mae_counters counters;
+
+ /* Information used by counter update service */
+ /** Callback to get packets from RxQ */
+ eth_rx_burst_t rx_pkt_burst;
+ /** Data for the callback to get packets */
+ struct sfc_dp_rxq *rx_dp;
+ /** Number of buffers pushed to the RxQ */
+ unsigned int pushed_n_buffers;
+ /** Are credits used by counter stream */
+ bool use_credits;
+
+ /* Information used by configuration routines */
+ /** Counter service core ID */
+ uint32_t service_core_id;
+ /** Counter service ID */
+ uint32_t service_id;
+};
+