From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by dpdk.space (Postfix) with ESMTP id 9D859A046B for ; Mon, 24 Jun 2019 06:36:54 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 957761BF40; Mon, 24 Jun 2019 06:36:54 +0200 (CEST) Received: from mail-pl1-f194.google.com (mail-pl1-f194.google.com [209.85.214.194]) by dpdk.org (Postfix) with ESMTP id E10C01BF5D for ; Mon, 24 Jun 2019 06:36:52 +0200 (CEST) Received: by mail-pl1-f194.google.com with SMTP id p1so6162440plo.2 for ; Sun, 23 Jun 2019 21:36:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references; bh=3kCALQLYcpnbh2suAjCHS5GKel31+5XxabKrDESIEK4=; b=pXdB2bgIb1MHiS3sc3LPozh/qck4Vz5PaTF0oxTTYq8hF9qVIM9X3Xo7iqF31Kf/6s jYq34Pw0IOGG6oox7DVuz774FtA8QKoJ99g0L9jCR3nTQQcByqRi67ECayZaavqW4Zup WpFpyZgc7FjoOH7aNM+qRbVKLYp+hNpuu1t41Y132zHRsWZEA/5IXeVweiyKaLuV5cKG En028C/YmZptf33XXr0GnsTtgAKlV6W06HWtKHQZPFXcz1txomc6LkgPMCaR0eNib+mz 7gkgFSNDe+WhWizjVllnkB7Bzmu6RDzuKPNy3gkN64Pvg9ewSQsyY+0/ZfKoBmaiDDGz icQg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references; bh=3kCALQLYcpnbh2suAjCHS5GKel31+5XxabKrDESIEK4=; b=BrngZf1vfQNfeHC+mPH2QKwXhTZ6aqbz4IM9vi4EOoFp25FpUarMjISyU0664S6drm OZoFHvGsM/kV14AhF2lGB72j8ATTwbhCMs0bu5Kp/O38upu2ljts9AI5bw7cnB/fd8q7 dvv2O5PQj2ibdwmapukX95PQcpXM4/IyBkiohIXZgG1ZZPTyoslR1JDB/udYR5wy7NSC ycJhRf/ZtxBAIrYIp4ZGG6FN7KesQb6K5TmN22BE+S9mdmWVTR6Lx95dtQYl+ZjTDmBK z6xSgIvv7E5CCBR+p/A4t5e0IfpyorxZIC4HS5MSp2+jBoZzU6EZ/Hdu8ZovGA7Qol4o hSWw== X-Gm-Message-State: APjAAAXw+GOU2ijowOjsZe4EGX4+dbDNCpazfS3Rfa391sfEhZwv/ndU EvSKgY0mupZha/qgGoOrAXxRb1Lj X-Google-Smtp-Source: APXvYqwW2RV6aOTal1uDbfHIU3Z/z3OXiOKFv6iLYP+mq5uwXBI58MSQnitaUMkSDSbUWqhoYmucfQ== X-Received: by 2002:a17:902:968c:: with SMTP id n12mr53003267plp.59.1561351012038; Sun, 23 Jun 2019 21:36:52 -0700 (PDT) Received: from localhost.localdomain ([192.47.164.146]) by smtp.gmail.com with ESMTPSA id c10sm9005178pjq.14.2019.06.23.21.36.50 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 23 Jun 2019 21:36:51 -0700 (PDT) From: yasufum.o@gmail.com To: spp@dpdk.org, ferruh.yigit@intel.com, yasufum.o@gmail.com Date: Mon, 24 Jun 2019 13:36:09 +0900 Message-Id: <20190624043613.19271-10-yasufum.o@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190624043613.19271-1-yasufum.o@gmail.com> References: <20190624043613.19271-1-yasufum.o@gmail.com> Subject: [spp] [PATCH 09/13] shared/sec: move lcore funcs in response_info_list X-BeenThere: spp@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Soft Patch Panel List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: spp-bounces@dpdk.org Sender: "spp" From: Yasufumi Ogawa This update is to move operation functions for making command response which is defined in `cmd_runner.c` to `cmd_res_formatter.c`. Operation functions are defined as following, and this update moves `add_master_lcore` and `add_core`. The rest of operation functions are moved in next patches. struct cmd_response response_info_list[] = { { "client-id", add_client_id }, { "phy", add_interface }, { "vhost", add_interface }, { "ring", add_interface }, { "master-lcore", add_master_lcore}, { "core", add_core}, #ifdef SPP_VF_MODULE { "classifier_table", add_classifier_table}, #endif /* SPP_VF_MODULE */ { "", NULL } }; Signed-off-by: Yasufumi Ogawa --- .../spp_worker_th/cmd_res_formatter.c | 104 ++++++++++++++++++ .../spp_worker_th/cmd_res_formatter.h | 6 + .../secondary/spp_worker_th/cmd_runner.c | 100 ----------------- 3 files changed, 110 insertions(+), 100 deletions(-) diff --git a/src/shared/secondary/spp_worker_th/cmd_res_formatter.c b/src/shared/secondary/spp_worker_th/cmd_res_formatter.c index b94cb29..d838a18 100644 --- a/src/shared/secondary/spp_worker_th/cmd_res_formatter.c +++ b/src/shared/secondary/spp_worker_th/cmd_res_formatter.c @@ -4,6 +4,8 @@ #include "cmd_res_formatter.h" #include "cmd_utils.h" +#include "vf_deps.h" +#include "mirror_deps.h" #include "shared/secondary/json_helper.h" #define RTE_LOGTYPE_WK_CMD_RES_FMT RTE_LOGTYPE_USER1 @@ -533,3 +535,105 @@ append_command_results_value(const char *name, char **output, return ret; } +/* Iterate core information to create response to status command */ +static int +spp_iterate_core_info(struct spp_iterate_core_params *params) +{ + int ret; + int lcore_id, cnt; + struct core_info *core = NULL; + struct sppwk_comp_info *comp_info_base = NULL; + struct sppwk_comp_info *comp_info = NULL; + + RTE_LCORE_FOREACH_SLAVE(lcore_id) { + if (spp_get_core_status(lcore_id) == SPP_CORE_UNUSE) + continue; + + core = get_core_info(lcore_id); + if (core->num == 0) { + ret = (*params->element_proc)( + params, lcore_id, + "", SPPWK_TYPE_NONE_STR, + 0, NULL, 0, NULL); + if (unlikely(ret != 0)) { + RTE_LOG(ERR, WK_CMD_RES_FMT, + "Cannot iterate core " + "information. " + "(core = %d, type = %d)\n", + lcore_id, SPPWK_TYPE_NONE); + return SPP_RET_NG; + } + continue; + } + + for (cnt = 0; cnt < core->num; cnt++) { + sppwk_get_mng_data(NULL, NULL, &comp_info_base, + NULL, NULL, NULL, NULL); + comp_info = (comp_info_base + core->id[cnt]); +#ifdef SPP_VF_MODULE + if (comp_info->wk_type == SPPWK_TYPE_CLS) { + ret = get_classifier_status(lcore_id, + core->id[cnt], params); + } else { + ret = get_forwarder_status(lcore_id, + core->id[cnt], params); + } +#endif /* SPP_VF_MODULE */ +#ifdef SPP_MIRROR_MODULE + ret = get_mirror_status(lcore_id, core->id[cnt], + params); +#endif /* SPP_MIRROR_MODULE */ + if (unlikely(ret != 0)) { + RTE_LOG(ERR, WK_CMD_RES_FMT, + "Cannot iterate core " + "information. " + "(core = %d, type = %d)\n", + lcore_id, comp_info->wk_type); + return SPP_RET_NG; + } + } + } + + return SPP_RET_OK; +} + +/* Add entry of master lcore to a response in JSON. */ +int +add_master_lcore(const char *name, char **output, + void *tmp __attribute__ ((unused))) +{ + int ret = SPP_RET_NG; + ret = append_json_int_value(output, name, rte_get_master_lcore()); + return ret; +} + +/* Add entry of core info of worker to a response in JSON such as "core:0". */ +int +add_core(const char *name, char **output, + void *tmp __attribute__ ((unused))) +{ + int ret = SPP_RET_NG; + struct spp_iterate_core_params itr_params; + char *tmp_buff = spp_strbuf_allocate(CMD_RES_BUF_INIT_SIZE); + if (unlikely(tmp_buff == NULL)) { + RTE_LOG(ERR, WK_CMD_RES_FMT, + /* TODO(yasufum) refactor no meaning err msg */ + "allocate error. (name = %s)\n", + name); + return SPP_RET_NG; + } + + itr_params.output = tmp_buff; + itr_params.element_proc = append_core_element_value; + + ret = spp_iterate_core_info(&itr_params); + if (unlikely(ret != SPP_RET_OK)) { + spp_strbuf_free(itr_params.output); + return SPP_RET_NG; + } + + ret = append_json_array_brackets(output, name, itr_params.output); + spp_strbuf_free(itr_params.output); + return ret; +} + diff --git a/src/shared/secondary/spp_worker_th/cmd_res_formatter.h b/src/shared/secondary/spp_worker_th/cmd_res_formatter.h index f3e9879..9c77763 100644 --- a/src/shared/secondary/spp_worker_th/cmd_res_formatter.h +++ b/src/shared/secondary/spp_worker_th/cmd_res_formatter.h @@ -72,4 +72,10 @@ int append_response_list_value(char **output, struct cmd_response *responses, int append_command_results_value(const char *name, char **output, int num, struct cmd_result *results); +int add_master_lcore(const char *name, char **output, + void *tmp __attribute__ ((unused))); + +int add_core(const char *name, char **output, + void *tmp __attribute__ ((unused))); + #endif diff --git a/src/shared/secondary/spp_worker_th/cmd_runner.c b/src/shared/secondary/spp_worker_th/cmd_runner.c index 5644aec..a6894fc 100644 --- a/src/shared/secondary/spp_worker_th/cmd_runner.c +++ b/src/shared/secondary/spp_worker_th/cmd_runner.c @@ -418,66 +418,6 @@ flush_cmd(void) return ret; } -/* Iterate core information to create response to status command */ -static int -spp_iterate_core_info(struct spp_iterate_core_params *params) -{ - int ret; - int lcore_id, cnt; - struct core_info *core = NULL; - struct sppwk_comp_info *comp_info_base = NULL; - struct sppwk_comp_info *comp_info = NULL; - - RTE_LCORE_FOREACH_SLAVE(lcore_id) { - if (spp_get_core_status(lcore_id) == SPP_CORE_UNUSE) - continue; - - core = get_core_info(lcore_id); - if (core->num == 0) { - ret = (*params->element_proc)( - params, lcore_id, - "", SPPWK_TYPE_NONE_STR, - 0, NULL, 0, NULL); - if (unlikely(ret != 0)) { - RTE_LOG(ERR, WK_CMD_RUNNER, "Cannot iterate core " - "information. " - "(core = %d, type = %d)\n", - lcore_id, SPPWK_TYPE_NONE); - return SPP_RET_NG; - } - continue; - } - - for (cnt = 0; cnt < core->num; cnt++) { - sppwk_get_mng_data(NULL, NULL, &comp_info_base, - NULL, NULL, NULL, NULL); - comp_info = (comp_info_base + core->id[cnt]); -#ifdef SPP_VF_MODULE - if (comp_info->wk_type == SPPWK_TYPE_CLS) { - ret = get_classifier_status(lcore_id, - core->id[cnt], params); - } else { - ret = get_forwarder_status(lcore_id, - core->id[cnt], params); - } -#endif /* SPP_VF_MODULE */ -#ifdef SPP_MIRROR_MODULE - ret = get_mirror_status(lcore_id, core->id[cnt], - params); -#endif /* SPP_MIRROR_MODULE */ - if (unlikely(ret != 0)) { - RTE_LOG(ERR, WK_CMD_RUNNER, "Cannot iterate core " - "information. " - "(core = %d, type = %d)\n", - lcore_id, comp_info->wk_type); - return SPP_RET_NG; - } - } - } - - return SPP_RET_OK; -} - /* Iterate classifier_table to create response to status command */ #ifdef SPP_VF_MODULE static int @@ -684,46 +624,6 @@ add_interface(const char *name, char **output, return ret; } -/* Add entry of master lcore to a response in JSON. */ -static int -add_master_lcore(const char *name, char **output, - void *tmp __attribute__ ((unused))) -{ - int ret = SPP_RET_NG; - ret = append_json_int_value(output, name, rte_get_master_lcore()); - return ret; -} - -/* Add entry of core info of worker to a response in JSON such as "core:0". */ -static int -add_core(const char *name, char **output, - void *tmp __attribute__ ((unused))) -{ - int ret = SPP_RET_NG; - struct spp_iterate_core_params itr_params; - char *tmp_buff = spp_strbuf_allocate(CMD_RES_BUF_INIT_SIZE); - if (unlikely(tmp_buff == NULL)) { - RTE_LOG(ERR, WK_CMD_RUNNER, - /* TODO(yasufum) refactor no meaning err msg */ - "allocate error. (name = %s)\n", - name); - return SPP_RET_NG; - } - - itr_params.output = tmp_buff; - itr_params.element_proc = append_core_element_value; - - ret = spp_iterate_core_info(&itr_params); - if (unlikely(ret != SPP_RET_OK)) { - spp_strbuf_free(itr_params.output); - return SPP_RET_NG; - } - - ret = append_json_array_brackets(output, name, itr_params.output); - spp_strbuf_free(itr_params.output); - return ret; -} - #ifdef SPP_VF_MODULE /** * Add entries of classifier table in JSON. Before iterating the entries, -- 2.17.1