1 /* SPDX-License-Identifier: BSD-3-Clause 2 * Copyright(c) 2020 Intel Corporation 3 */ 4 5 #ifdef RTE_HAS_JANSSON 6 #include <jansson.h> 7 #else 8 #define json_t void * 9 #endif 10 11 #include <rte_compat.h> 12 #include "rte_metrics.h" 13 14 #ifndef _RTE_METRICS_TELEMETRY_H_ 15 #define _RTE_METRICS_TELEMETRY_H_ 16 17 #ifdef __cplusplus 18 extern "C" { 19 #endif 20 21 enum rte_telemetry_stats_type { 22 PORT_STATS = 0, 23 GLOBAL_STATS = 1 24 }; 25 26 struct telemetry_encode_param { 27 enum rte_telemetry_stats_type type; 28 struct port_param { 29 int num_metric_ids; 30 uint32_t metric_ids[RTE_METRICS_MAX_METRICS]; 31 int num_port_ids; 32 uint32_t port_ids[RTE_MAX_ETHPORTS]; 33 } pp; 34 }; 35 36 struct telemetry_metrics_data { 37 int reg_index[RTE_MAX_ETHPORTS]; 38 int metrics_register_done; 39 }; 40 41 __rte_experimental 42 int32_t rte_metrics_tel_reg_all_ethdev(int *metrics_register_done, 43 int *reg_index_list); 44 45 __rte_experimental 46 int32_t 47 rte_metrics_tel_encode_json_format(struct telemetry_encode_param *ep, 48 char **json_buffer); 49 50 __rte_experimental 51 int32_t 52 rte_metrics_tel_get_global_stats(struct telemetry_encode_param *ep); 53 54 __rte_experimental 55 int32_t 56 rte_metrics_tel_get_port_stats_ids(struct telemetry_encode_param *ep); 57 58 __rte_experimental 59 int32_t 60 rte_metrics_tel_get_ports_stats_json(struct telemetry_encode_param *ep, 61 int *reg_index, char **json_buffer); 62 63 __rte_experimental 64 int32_t 65 rte_metrics_tel_extract_data(struct telemetry_encode_param *ep, json_t *data); 66 67 #ifdef __cplusplus 68 } 69 #endif 70 71 #endif 72