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