telemetry: move some functions to metrics library
[dpdk.git] / lib / librte_telemetry / rte_telemetry_internal.h
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2018 Intel Corporation
3  */
4
5 #include <rte_log.h>
6 #include <rte_tailq.h>
7 #include <rte_metrics.h>
8 #include <rte_metrics_telemetry.h>
9
10 #ifndef _RTE_TELEMETRY_INTERNAL_H_
11 #define _RTE_TELEMETRY_INTERNAL_H_
12
13 /* Logging Macros */
14 extern int telemetry_log_level;
15
16 #define TELEMETRY_LOG(level, fmt, args...) \
17         rte_log(RTE_LOG_ ##level, telemetry_log_level, "%s(): "fmt "\n", \
18                 __func__, ##args)
19
20 #define TELEMETRY_LOG_ERR(fmt, args...) \
21         TELEMETRY_LOG(ERR, fmt, ## args)
22
23 #define TELEMETRY_LOG_WARN(fmt, args...) \
24         TELEMETRY_LOG(WARNING, fmt, ## args)
25
26 #define TELEMETRY_LOG_INFO(fmt, args...) \
27         TELEMETRY_LOG(INFO, fmt, ## args)
28
29 #define MAX_METRICS 256
30
31 typedef struct telemetry_client {
32         char *file_path;
33         int fd;
34         TAILQ_ENTRY(telemetry_client) client_list;
35 } telemetry_client;
36
37 typedef struct telemetry_impl {
38         int accept_fd;
39         int server_fd;
40         pthread_t thread_id;
41         int thread_status;
42         uint32_t socket_id;
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;
48 } telemetry_impl;
49
50 enum rte_telemetry_parser_actions {
51         ACTION_GET = 0,
52         ACTION_DELETE = 2
53 };
54
55 int32_t
56 rte_telemetry_parse_client_message(struct telemetry_impl *telemetry, char *buf);
57
58 int32_t
59 rte_telemetry_send_error_response(struct telemetry_impl *telemetry,
60         int error_type);
61
62 int32_t
63 rte_telemetry_register_client(struct telemetry_impl *telemetry,
64         const char *client_path);
65
66 int32_t
67 rte_telemetry_unregister_client(struct telemetry_impl *telemetry,
68         const char *client_path);
69
70 int32_t
71 rte_telemetry_send_ports_stats_values(struct telemetry_encode_param *ep,
72         struct telemetry_impl *telemetry);
73
74 int32_t
75 rte_telemetry_socket_messaging_testing(int index, int socket);
76
77 int32_t
78 rte_telemetry_send_global_stats_values(struct telemetry_encode_param *ep,
79         struct telemetry_impl *telemetry);
80
81 int32_t
82 rte_telemetry_parser_test(struct telemetry_impl *telemetry);
83
84 #endif