DPDK  20.11.10
rte_telemetry.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2018 Intel Corporation
3  */
4 
5 #include <stdint.h>
6 #include <sched.h>
7 
8 #include <rte_compat.h>
9 #include <rte_os.h>
10 
11 #ifndef _RTE_TELEMETRY_H_
12 #define _RTE_TELEMETRY_H_
13 
14 #ifdef __cplusplus
15 extern "C" {
16 #endif
17 
19 #define TELEMETRY_MAX_CALLBACKS 64
20 
22 #define RTE_TEL_MAX_STRING_LEN 64
23 
24 #define RTE_TEL_MAX_SINGLE_STRING_LEN 8192
25 
26 #define RTE_TEL_MAX_DICT_ENTRIES 256
27 
28 #define RTE_TEL_MAX_ARRAY_ENTRIES 512
29 
45 struct rte_tel_data;
46 
54  RTE_TEL_STRING_VAL,
58 };
59 
70 __rte_experimental
71 int
72 rte_tel_data_start_array(struct rte_tel_data *d, enum rte_tel_value_type type);
73 
82 __rte_experimental
83 int
84 rte_tel_data_start_dict(struct rte_tel_data *d);
85 
96 __rte_experimental
97 int
98 rte_tel_data_string(struct rte_tel_data *d, const char *str);
99 
112 __rte_experimental
113 int
114 rte_tel_data_add_array_string(struct rte_tel_data *d, const char *str);
115 
128 __rte_experimental
129 int
130 rte_tel_data_add_array_int(struct rte_tel_data *d, int x);
131 
144 __rte_experimental
145 int
146 rte_tel_data_add_array_u64(struct rte_tel_data *d, uint64_t x);
147 
165 __rte_experimental
166 int
167 rte_tel_data_add_array_container(struct rte_tel_data *d,
168  struct rte_tel_data *val, int keep);
169 
184 __rte_experimental
185 int
186 rte_tel_data_add_dict_string(struct rte_tel_data *d, const char *name,
187  const char *val);
188 
202 __rte_experimental
203 int
204 rte_tel_data_add_dict_int(struct rte_tel_data *d, const char *name, int val);
205 
219 __rte_experimental
220 int
221 rte_tel_data_add_dict_u64(struct rte_tel_data *d,
222  const char *name, uint64_t val);
223 
243 __rte_experimental
244 int
245 rte_tel_data_add_dict_container(struct rte_tel_data *d, const char *name,
246  struct rte_tel_data *val, int keep);
247 
265 typedef int (*telemetry_cb)(const char *cmd, const char *params,
266  struct rte_tel_data *info);
267 
277 typedef void * (*handler)(void *sock_id);
278 
296 __rte_experimental
297 int
298 rte_telemetry_register_cmd(const char *cmd, telemetry_cb fn, const char *help);
299 
300 #ifdef RTE_HAS_CPUSET
301 
319 __rte_experimental
320 int
321 rte_telemetry_init(const char *runtime_dir, rte_cpuset_t *cpuset,
322  const char **err_str);
323 
324 #endif /* RTE_HAS_CPUSET */
325 
333 __rte_experimental
334 struct rte_tel_data *
335 rte_tel_data_alloc(void);
336 
345 __rte_experimental
346 void
347 rte_tel_data_free(struct rte_tel_data *data);
348 
349 #ifdef __cplusplus
350 }
351 #endif
352 
353 #endif
__rte_experimental int rte_tel_data_add_array_u64(struct rte_tel_data *d, uint64_t x)
__rte_experimental int rte_tel_data_string(struct rte_tel_data *d, const char *str)
__rte_experimental int rte_tel_data_add_dict_string(struct rte_tel_data *d, const char *name, const char *val)
__rte_experimental struct rte_tel_data * rte_tel_data_alloc(void)
__rte_experimental int rte_tel_data_start_dict(struct rte_tel_data *d)
__rte_experimental int rte_tel_data_start_array(struct rte_tel_data *d, enum rte_tel_value_type type)
__rte_experimental int rte_tel_data_add_dict_u64(struct rte_tel_data *d, const char *name, uint64_t val)
__rte_experimental int rte_tel_data_add_array_int(struct rte_tel_data *d, int x)
__rte_experimental int rte_tel_data_add_dict_int(struct rte_tel_data *d, const char *name, int val)
__rte_experimental int rte_tel_data_add_dict_container(struct rte_tel_data *d, const char *name, struct rte_tel_data *val, int keep)
__rte_experimental int rte_telemetry_register_cmd(const char *cmd, telemetry_cb fn, const char *help)
__rte_experimental int rte_tel_data_add_array_string(struct rte_tel_data *d, const char *str)
int(* telemetry_cb)(const char *cmd, const char *params, struct rte_tel_data *info)
rte_tel_value_type
Definition: rte_telemetry.h:53
__rte_experimental int rte_tel_data_add_array_container(struct rte_tel_data *d, struct rte_tel_data *val, int keep)