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_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 __rte_experimental 38 int32_t rte_metrics_tel_reg_all_ethdev(int *metrics_register_done, 39 int *reg_index_list); 40 41 __rte_experimental 42 int32_t 43 rte_metrics_tel_encode_json_format(struct telemetry_encode_param *ep, 44 char **json_buffer); 45 46 __rte_experimental 47 int32_t 48 rte_metrics_tel_get_global_stats(struct telemetry_encode_param *ep); 49 50 __rte_experimental 51 int32_t 52 rte_metrics_tel_get_port_stats_ids(struct telemetry_encode_param *ep); 53 54 __rte_experimental 55 int32_t 56 rte_metrics_tel_get_ports_stats_json(struct telemetry_encode_param *ep, 57 int *reg_index, char **json_buffer); 58 59 __rte_experimental 60 int32_t 61 rte_metrics_tel_extract_data(struct telemetry_encode_param *ep, json_t *data); 62 63 #endif 64