DPDK  25.11.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 #ifndef _RTE_TELEMETRY_H_
6 #define _RTE_TELEMETRY_H_
7 
8 #include <stdint.h>
9 #include <rte_compat.h>
10 #include <rte_common.h>
11 
12 #ifdef __cplusplus
13 extern "C" {
14 #endif
15 
17 #define RTE_TEL_MAX_STRING_LEN 128
19 #define RTE_TEL_MAX_SINGLE_STRING_LEN 8192
21 #define RTE_TEL_MAX_DICT_ENTRIES 256
23 #define RTE_TEL_MAX_ARRAY_ENTRIES 512
24 
36 struct rte_tel_data;
37 
45  RTE_TEL_STRING_VAL,
49 };
50 
51 #define RTE_TEL_U64_VAL RTE_TEL_UINT_VAL
52 
63 int
64 rte_tel_data_start_array(struct rte_tel_data *d, enum rte_tel_value_type type);
65 
78 int
79 rte_tel_data_start_dict(struct rte_tel_data *d);
80 
91 int
92 rte_tel_data_string(struct rte_tel_data *d, const char *str);
93 
106 int
107 rte_tel_data_add_array_string(struct rte_tel_data *d, const char *str);
108 
121 int
122 rte_tel_data_add_array_int(struct rte_tel_data *d, int64_t x);
123 
136 int
137 rte_tel_data_add_array_uint(struct rte_tel_data *d, uint64_t x);
138 
156 int
157 rte_tel_data_add_array_container(struct rte_tel_data *d,
158  struct rte_tel_data *val, int keep);
159 
177 __rte_experimental
178 int
179 rte_tel_data_add_array_uint_hex(struct rte_tel_data *d, uint64_t val,
180  uint8_t display_bitwidth);
181 
197 int
198 rte_tel_data_add_dict_string(struct rte_tel_data *d, const char *name,
199  const char *val);
200 
215 int
216 rte_tel_data_add_dict_int(struct rte_tel_data *d, const char *name, int64_t val);
217 
232 int
233 rte_tel_data_add_dict_uint(struct rte_tel_data *d,
234  const char *name, uint64_t val);
235 
256 int
257 rte_tel_data_add_dict_container(struct rte_tel_data *d, const char *name,
258  struct rte_tel_data *val, int keep);
259 
279 __rte_experimental
280 int
281 rte_tel_data_add_dict_uint_hex(struct rte_tel_data *d, const char *name,
282  uint64_t val, uint8_t display_bitwidth);
283 
301 typedef int (*telemetry_cb)(const char *cmd, const char *params,
302  struct rte_tel_data *info);
303 
325 typedef int (*telemetry_arg_cb)(const char *cmd, const char *params, void *arg,
326  struct rte_tel_data *info);
327 
345 int
346 rte_telemetry_register_cmd(const char *cmd, telemetry_cb fn, const char *help);
347 
367 __rte_experimental
368 int
369 rte_telemetry_register_cmd_arg(const char *cmd, telemetry_arg_cb fn, void *arg, const char *help);
370 
379 void
380 rte_tel_data_free(struct rte_tel_data *data);
381 
389 struct rte_tel_data *
391  __rte_malloc __rte_dealloc(rte_tel_data_free, 1);
392 
393 #ifdef __cplusplus
394 }
395 #endif
396 
397 #endif
#define __rte_dealloc(dealloc, argno)
Definition: rte_common.h:339
#define __rte_malloc
Definition: rte_common.h:328
int rte_tel_data_add_array_uint(struct rte_tel_data *d, uint64_t x)
int rte_tel_data_add_dict_string(struct rte_tel_data *d, const char *name, const char *val)
struct rte_tel_data * rte_tel_data_alloc(void) __rte_malloc __rte_dealloc(rte_tel_data_free
int rte_tel_data_start_array(struct rte_tel_data *d, enum rte_tel_value_type type)
int rte_tel_data_add_array_int(struct rte_tel_data *d, int64_t x)
int rte_tel_data_string(struct rte_tel_data *d, const char *str)
int rte_telemetry_register_cmd(const char *cmd, telemetry_cb fn, const char *help)
int(* telemetry_cb)(const char *cmd, const char *params, struct rte_tel_data *info)
int rte_tel_data_add_dict_container(struct rte_tel_data *d, const char *name, struct rte_tel_data *val, int keep)
int rte_tel_data_add_dict_uint(struct rte_tel_data *d, const char *name, uint64_t val)
int rte_tel_data_add_array_container(struct rte_tel_data *d, struct rte_tel_data *val, int keep)
int rte_tel_data_start_dict(struct rte_tel_data *d)
int rte_tel_data_add_array_string(struct rte_tel_data *d, const char *str)
__rte_experimental int rte_tel_data_add_array_uint_hex(struct rte_tel_data *d, uint64_t val, uint8_t display_bitwidth)
__rte_experimental int rte_telemetry_register_cmd_arg(const char *cmd, telemetry_arg_cb fn, void *arg, const char *help)
int rte_tel_data_add_dict_int(struct rte_tel_data *d, const char *name, int64_t val)
rte_tel_value_type
Definition: rte_telemetry.h:44
@ RTE_TEL_INT_VAL
Definition: rte_telemetry.h:46
@ RTE_TEL_CONTAINER
Definition: rte_telemetry.h:48
@ RTE_TEL_UINT_VAL
Definition: rte_telemetry.h:47
__rte_experimental int rte_tel_data_add_dict_uint_hex(struct rte_tel_data *d, const char *name, uint64_t val, uint8_t display_bitwidth)
int(* telemetry_arg_cb)(const char *cmd, const char *params, void *arg, struct rte_tel_data *info)