1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(c) 2018 Intel Corporation
7 #include <rte_metrics.h>
8 #include <rte_metrics_telemetry.h>
10 #ifndef _RTE_TELEMETRY_INTERNAL_H_
11 #define _RTE_TELEMETRY_INTERNAL_H_
14 extern int telemetry_log_level;
16 #define TELEMETRY_LOG(level, fmt, args...) \
17 rte_log(RTE_LOG_ ##level, telemetry_log_level, "%s(): "fmt "\n", \
20 #define TELEMETRY_LOG_ERR(fmt, args...) \
21 TELEMETRY_LOG(ERR, fmt, ## args)
23 #define TELEMETRY_LOG_WARN(fmt, args...) \
24 TELEMETRY_LOG(WARNING, fmt, ## args)
26 #define TELEMETRY_LOG_INFO(fmt, args...) \
27 TELEMETRY_LOG(INFO, fmt, ## args)
29 #define MAX_METRICS 256
31 typedef struct telemetry_client {
34 TAILQ_ENTRY(telemetry_client) client_list;
37 typedef struct telemetry_impl {
43 int reg_index[RTE_MAX_ETHPORTS];
44 int metrics_register_done;
45 TAILQ_HEAD(, telemetry_client) client_list_head;
46 struct telemetry_client *request_client;
47 int register_fail_count;
50 enum rte_telemetry_parser_actions {
56 rte_telemetry_parse_client_message(struct telemetry_impl *telemetry, char *buf);
59 rte_telemetry_send_error_response(struct telemetry_impl *telemetry,
63 rte_telemetry_register_client(struct telemetry_impl *telemetry,
64 const char *client_path);
67 rte_telemetry_unregister_client(struct telemetry_impl *telemetry,
68 const char *client_path);
71 rte_telemetry_send_ports_stats_values(struct telemetry_encode_param *ep,
72 struct telemetry_impl *telemetry);
75 rte_telemetry_socket_messaging_testing(int index, int socket);
78 rte_telemetry_send_global_stats_values(struct telemetry_encode_param *ep,
79 struct telemetry_impl *telemetry);
82 rte_telemetry_parser_test(struct telemetry_impl *telemetry);