Telemetry didn't compile under Windows. Empty stubs implementation was added for Windows.
Signed-off-by: Fady Bader <f...@mellanox.com> --- lib/librte_telemetry/rte_telemetry.h | 4 +++ lib/librte_telemetry/telemetry.c | 50 +++++++++++++++++++++++++++++++++ lib/librte_telemetry/telemetry_legacy.c | 25 +++++++++++++++++ 3 files changed, 79 insertions(+) diff --git a/lib/librte_telemetry/rte_telemetry.h b/lib/librte_telemetry/rte_telemetry.h index d13010b8fb..c3c0e44599 100644 --- a/lib/librte_telemetry/rte_telemetry.h +++ b/lib/librte_telemetry/rte_telemetry.h @@ -5,6 +5,10 @@ #include <stdint.h> #include <rte_compat.h> +#ifdef RTE_EXEC_ENV_WINDOWS +#include <sched.h> +#endif + #ifndef _RTE_TELEMETRY_H_ #define _RTE_TELEMETRY_H_ diff --git a/lib/librte_telemetry/telemetry.c b/lib/librte_telemetry/telemetry.c index 0252282735..59ad9cc7ec 100644 --- a/lib/librte_telemetry/telemetry.c +++ b/lib/librte_telemetry/telemetry.c @@ -2,6 +2,7 @@ * Copyright(c) 2020 Intel Corporation */ +#ifndef RTE_EXEC_ENV_WINDOWS #include <unistd.h> #include <pthread.h> #include <sys/socket.h> @@ -20,6 +21,20 @@ #include "telemetry_data.h" #include "rte_telemetry_legacy.h" +#else /* RTE_EXEC_ENV_WINDOWS */ + +/* includes for Windows */ +#include <rte_common.h> +#include <rte_log.h> + +#include "rte_telemetry.h" +#include "telemetry_json.h" +#include "telemetry_data.h" +#include "rte_telemetry_legacy.h" + +#endif + +#ifndef RTE_EXEC_ENV_WINDOWS #define MAX_CMD_LEN 56 #define MAX_HELP_LEN 64 #define MAX_OUTPUT_LEN (1024 * 16) @@ -42,17 +57,24 @@ struct socket { }; static struct socket v2_socket; /* socket for v2 telemetry */ static struct socket v1_socket; /* socket for v1 telemetry */ +#endif + static char telemetry_log_error[1024]; /* Will contain error on init failure */ + +#ifndef RTE_EXEC_ENV_WINDOWS /* list of command callbacks, with one command registered by default */ static struct cmd_callback callbacks[TELEMETRY_MAX_CALLBACKS]; static int num_callbacks; /* How many commands are registered */ /* Used when accessing or modifying list of command callbacks */ static rte_spinlock_t callback_sl = RTE_SPINLOCK_INITIALIZER; static uint16_t v2_clients; +#endif int rte_telemetry_register_cmd(const char *cmd, telemetry_cb fn, const char *help) { +#ifndef RTE_EXEC_ENV_WINDOWS + int i = 0; if (strlen(cmd) >= MAX_CMD_LEN || fn == NULL || cmd[0] != '/' @@ -76,8 +98,19 @@ rte_telemetry_register_cmd(const char *cmd, telemetry_cb fn, const char *help) rte_spinlock_unlock(&callback_sl); return 0; + +#else /* RTE_EXEC_ENV_WINDOWS */ + + RTE_SET_USED(cmd); + RTE_SET_USED(fn); + RTE_SET_USED(help); + + return 0; + +#endif } +#ifndef RTE_EXEC_ENV_WINDOWS static int list_commands(const char *cmd __rte_unused, const char *params __rte_unused, struct rte_tel_data *d) @@ -411,11 +444,14 @@ telemetry_v2_init(const char *runtime_dir, rte_cpuset_t *cpuset) return 0; } +#endif int32_t rte_telemetry_init(const char *runtime_dir, rte_cpuset_t *cpuset, const char **err_str) { +#ifndef RTE_EXEC_ENV_WINDOWS + if (telemetry_v2_init(runtime_dir, cpuset) != 0) { *err_str = telemetry_log_error; return -1; @@ -424,4 +460,18 @@ rte_telemetry_init(const char *runtime_dir, rte_cpuset_t *cpuset, *err_str = telemetry_log_error; } return 0; + +#else /* RTE_EXEC_ENV_WINDOWS */ + + RTE_SET_USED(runtime_dir); + RTE_SET_USED(cpuset); + RTE_SET_USED(err_str); + + snprintf(telemetry_log_error, sizeof(telemetry_log_error), + "Telemetry is not supported on Windows."); + + return 0; + +#endif } + diff --git a/lib/librte_telemetry/telemetry_legacy.c b/lib/librte_telemetry/telemetry_legacy.c index a341fe4ebd..40e7bbe2f8 100644 --- a/lib/librte_telemetry/telemetry_legacy.c +++ b/lib/librte_telemetry/telemetry_legacy.c @@ -2,6 +2,7 @@ * Copyright(c) 2020 Intel Corporation */ +#ifndef RTE_EXEC_ENV_WINDOWS #include <unistd.h> #include <sys/socket.h> #include <sys/un.h> @@ -15,6 +16,15 @@ #include "rte_telemetry_legacy.h" +#else /* RTE_EXEC_ENV_WINDOWS */ + +#include <rte_common.h> + +#include "rte_telemetry_legacy.h" + +#endif +#ifndef RTE_EXEC_ENV_WINDOWS + #define MAX_LEN 128 #define BUF_SIZE 1024 #define CLIENTS_UNREG_ACTION "\"action\":2" @@ -48,12 +58,15 @@ struct json_command callbacks[TELEMETRY_LEGACY_MAX_CALLBACKS] = { }; int num_legacy_callbacks = 1; static rte_spinlock_t callback_sl = RTE_SPINLOCK_INITIALIZER; +#endif int rte_telemetry_legacy_register(const char *cmd, enum rte_telemetry_legacy_data_req data_req, telemetry_legacy_cb fn) { +#ifndef RTE_EXEC_ENV_WINDOWS + if (fn == NULL) return -EINVAL; if (num_legacy_callbacks >= (int) RTE_DIM(callbacks)) @@ -71,8 +84,19 @@ rte_telemetry_legacy_register(const char *cmd, rte_spinlock_unlock(&callback_sl); return 0; + +#else /* RTE_EXEC_ENV_WINDOWS */ + + RTE_SET_USED(cmd); + RTE_SET_USED(data_req); + RTE_SET_USED(fn); + + return 0; + +#endif } +#ifndef RTE_EXEC_ENV_WINDOWS static int register_client(const char *cmd __rte_unused, const char *params, char *buffer __rte_unused, int buf_len __rte_unused) @@ -239,3 +263,4 @@ legacy_client_handler(void *sock_id) close(s); return NULL; } +#endif -- 2.16.1.windows.4