mempool: fix slow allocation of large mempools
[dpdk.git] / lib / librte_telemetry / rte_telemetry_internal.h
index 86a5ba1..3f8dbc2 100644 (file)
@@ -24,6 +24,8 @@ extern int telemetry_log_level;
 #define TELEMETRY_LOG_INFO(fmt, args...) \
        TELEMETRY_LOG(INFO, fmt, ## args)
 
+#define MAX_METRICS 256
+
 typedef struct telemetry_client {
        char *file_path;
        int fd;
@@ -36,7 +38,7 @@ typedef struct telemetry_impl {
        pthread_t thread_id;
        int thread_status;
        uint32_t socket_id;
-       int reg_index;
+       int reg_index[RTE_MAX_ETHPORTS];
        int metrics_register_done;
        TAILQ_HEAD(, telemetry_client) client_list_head;
        struct telemetry_client *request_client;
@@ -48,6 +50,28 @@ enum rte_telemetry_parser_actions {
        ACTION_DELETE = 2
 };
 
+enum rte_telemetry_stats_type {
+       PORT_STATS = 0,
+       GLOBAL_STATS = 1
+};
+
+/* @internal */
+struct telemetry_encode_param {
+       enum rte_telemetry_stats_type type;
+       union {
+               struct port_param {
+                       int num_metric_ids;
+                       uint32_t metric_ids[MAX_METRICS];
+                       int num_port_ids;
+                       uint32_t port_ids[RTE_MAX_ETHPORTS];
+               } pp;
+               struct global_param {
+                       int num_metric_ids;
+                       uint32_t metric_ids[MAX_METRICS];
+               } gp;
+       };
+};
+
 int32_t
 rte_telemetry_parse_client_message(struct telemetry_impl *telemetry, char *buf);
 
@@ -71,4 +95,18 @@ rte_telemetry_unregister_client(struct telemetry_impl *telemetry,
 int32_t
 rte_telemetry_is_port_active(int port_id);
 
+int32_t
+rte_telemetry_send_ports_stats_values(struct telemetry_encode_param *ep,
+       struct telemetry_impl *telemetry);
+
+int32_t
+rte_telemetry_socket_messaging_testing(int index, int socket);
+
+int32_t
+rte_telemetry_send_global_stats_values(struct telemetry_encode_param *ep,
+       struct telemetry_impl *telemetry);
+
+int32_t
+rte_telemetry_parser_test(struct telemetry_impl *telemetry);
+
 #endif