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 #ifdef __cplusplus 17 extern "C" { 18 #endif 19 20 enum rte_telemetry_stats_type { 21 PORT_STATS = 0, 22 GLOBAL_STATS = 1 23 }; 24 25 struct telemetry_encode_param { 26 enum rte_telemetry_stats_type type; 27 struct port_param { 28 int num_metric_ids; 29 uint32_t metric_ids[RTE_METRICS_MAX_METRICS]; 30 int num_port_ids; 31 uint32_t port_ids[RTE_MAX_ETHPORTS]; 32 } pp; 33 }; 34 35 struct telemetry_metrics_data { 36 int reg_index[RTE_MAX_ETHPORTS]; 37 int metrics_register_done; 38 }; 39 40 __rte_experimental 41 int32_t rte_metrics_tel_reg_all_ethdev(int *metrics_register_done, 42 int *reg_index_list); 43 44 __rte_experimental 45 int32_t 46 rte_metrics_tel_encode_json_format(struct telemetry_encode_param *ep, 47 char **json_buffer); 48 49 __rte_experimental 50 int32_t 51 rte_metrics_tel_get_global_stats(struct telemetry_encode_param *ep); 52 53 __rte_experimental 54 int32_t 55 rte_metrics_tel_get_port_stats_ids(struct telemetry_encode_param *ep); 56 57 __rte_experimental 58 int32_t 59 rte_metrics_tel_get_ports_stats_json(struct telemetry_encode_param *ep, 60 int *reg_index, char **json_buffer); 61 62 __rte_experimental 63 int32_t 64 rte_metrics_tel_extract_data(struct telemetry_encode_param *ep, json_t *data); 65 66 #ifdef __cplusplus 67 } 68 #endif 69 70 #endif 71