DPDK  21.02.0
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 
15 #define TELEMETRY_MAX_CALLBACKS 64
16 
17 #define RTE_TEL_MAX_STRING_LEN 64
18 
19 #define RTE_TEL_MAX_SINGLE_STRING_LEN 8192
20 
21 #define RTE_TEL_MAX_DICT_ENTRIES 256
22 
23 #define RTE_TEL_MAX_ARRAY_ENTRIES 512
24 
40 struct rte_tel_data;
41 
49  RTE_TEL_STRING_VAL,
53 };
54 
65 __rte_experimental
66 int
67 rte_tel_data_start_array(struct rte_tel_data *d, enum rte_tel_value_type type);
68 
77 __rte_experimental
78 int
79 rte_tel_data_start_dict(struct rte_tel_data *d);
80 
91 __rte_experimental
92 int
93 rte_tel_data_string(struct rte_tel_data *d, const char *str);
94 
107 __rte_experimental
108 int
109 rte_tel_data_add_array_string(struct rte_tel_data *d, const char *str);
110 
123 __rte_experimental
124 int
125 rte_tel_data_add_array_int(struct rte_tel_data *d, int x);
126 
139 __rte_experimental
140 int
141 rte_tel_data_add_array_u64(struct rte_tel_data *d, uint64_t x);
142 
160 __rte_experimental
161 int
162 rte_tel_data_add_array_container(struct rte_tel_data *d,
163  struct rte_tel_data *val, int keep);
164 
179 __rte_experimental
180 int
181 rte_tel_data_add_dict_string(struct rte_tel_data *d, const char *name,
182  const char *val);
183 
197 __rte_experimental
198 int
199 rte_tel_data_add_dict_int(struct rte_tel_data *d, const char *name, int val);
200 
214 __rte_experimental
215 int
216 rte_tel_data_add_dict_u64(struct rte_tel_data *d,
217  const char *name, uint64_t val);
218 
238 __rte_experimental
239 int
240 rte_tel_data_add_dict_container(struct rte_tel_data *d, const char *name,
241  struct rte_tel_data *val, int keep);
242 
260 typedef int (*telemetry_cb)(const char *cmd, const char *params,
261  struct rte_tel_data *info);
262 
272 typedef void * (*handler)(void *sock_id);
273 
291 __rte_experimental
292 int
293 rte_telemetry_register_cmd(const char *cmd, telemetry_cb fn, const char *help);
294 
312 __rte_internal
313 int
314 rte_telemetry_init(const char *runtime_dir, rte_cpuset_t *cpuset,
315  const char **err_str);
316 
324 __rte_experimental
325 struct rte_tel_data *
326 rte_tel_data_alloc(void);
327 
336 __rte_experimental
337 void
338 rte_tel_data_free(struct rte_tel_data *data);
339 
340 #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:48
__rte_experimental int rte_tel_data_add_array_container(struct rte_tel_data *d, struct rte_tel_data *val, int keep)