From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mogw0338.ocn.ad.jp (mogw0338.ocn.ad.jp [114.147.58.108]) by dpdk.org (Postfix) with ESMTP id 8CBD01AEF3 for ; Wed, 6 Dec 2017 09:20:00 +0100 (CET) Received: from mf-smf-ucb014.ocn.ad.jp (mf-smf-ucb014.ocn.ad.jp [153.149.227.2]) by mogw0338.ocn.ad.jp (Postfix) with ESMTP id 0081B330249; Wed, 6 Dec 2017 17:19:59 +0900 (JST) Received: from mf-smf-ucb014.ocn.ad.jp (mf-smf-ucb014 [153.149.227.2]) by mf-smf-ucb014.ocn.ad.jp (Postfix) with ESMTP id DDBE3C05DB; Wed, 6 Dec 2017 17:19:58 +0900 (JST) Received: from ntt.pod01.mv-mta-ucb029 (mv-mta-ucb029.ocn.ad.jp [153.149.230.163]) by mf-smf-ucb014.ocn.ad.jp (Switch-3.3.4/Switch-3.3.4) with ESMTP id vB68Jtka022945; Wed, 6 Dec 2017 17:19:58 +0900 Received: from smtp.ocn.ne.jp ([153.149.227.167]) by ntt.pod01.mv-mta-ucb029 with id iYKy1w0063dLKTM01YKypB; Wed, 06 Dec 2017 08:19:58 +0000 Received: from localhost.localdomain (sp49-98-150-93.msd.spmode.ne.jp [49.98.150.93]) by smtp.ocn.ne.jp (Postfix) with ESMTPA; Wed, 6 Dec 2017 17:19:58 +0900 (JST) From: ogawa.yasufumi@lab.ntt.co.jp To: spp@dpdk.org Cc: ferruh.yigit@intel.com, ogawa.yasufumi@lab.ntt.co.jp, gerald.rogers@intel.com, sy.jong.choi@intel.com Date: Wed, 6 Dec 2017 17:18:26 +0900 Message-Id: <20171206081826.67688-7-ogawa.yasufumi@lab.ntt.co.jp> X-Mailer: git-send-email 2.13.1 In-Reply-To: <20171206081826.67688-1-ogawa.yasufumi@lab.ntt.co.jp> References: <20171206081826.67688-1-ogawa.yasufumi@lab.ntt.co.jp> Subject: [spp] [PATCH 7/7] spp/shared: refactor printing port status 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: , X-List-Received-Date: Wed, 06 Dec 2017 08:20:01 -0000 From: Yasufumi Ogawa Port status of each of clients is printed with print_active_ports(). It is defined in both of spp_nfv and spp_vm. It is redundant and should be changed to be a common library function. This update is to move print_active_ports() in shared/common.c as common library. This update also following changes. * client_id, ports_fwd_array and port_map are added as arguments of this function to be enable them referred. * Print 'none' instead of port_id if port is unassigned. Signed-off-by: Yasufumi Ogawa --- src/nfv/nfv.c | 53 +------------------------------------------- src/shared/common.c | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++ src/shared/common.h | 4 ++++ src/vm/main.c | 52 +------------------------------------------ 4 files changed, 69 insertions(+), 103 deletions(-) diff --git a/src/nfv/nfv.c b/src/nfv/nfv.c index 9edf06d..5972657 100644 --- a/src/nfv/nfv.c +++ b/src/nfv/nfv.c @@ -232,57 +232,6 @@ forward_array_reset(void) } } -/* print forward array active port*/ -static void -print_active_ports(char *str) -{ - unsigned int i; - - sprintf(str, "%d\n", client_id); - - /* every elements value*/ - for (i = 0; i < RTE_MAX_ETHPORTS; i++) { - if (ports_fwd_array[i].in_port_id == PORT_RESET) - continue; - - RTE_LOG(INFO, APP, "Port ID %d\n", i); - RTE_LOG(INFO, APP, "Status %d\n", - ports_fwd_array[i].in_port_id); - - sprintf(str + strlen(str), "port id: %d,", i); - if (ports_fwd_array[i].in_port_id != PORT_RESET) - sprintf(str + strlen(str), "on,"); - else - sprintf(str + strlen(str), "off,"); - - switch (port_map[i].port_type) { - case PHY: - RTE_LOG(INFO, APP, "Type: PHY\n"); - sprintf(str + strlen(str), "PHY,"); - break; - case RING: - RTE_LOG(INFO, APP, "Type: RING\n"); - sprintf(str + strlen(str), "RING(%u),", - port_map[i].id); - break; - case VHOST: - RTE_LOG(INFO, APP, "Type: VHOST\n"); - sprintf(str + strlen(str), "VHOST(%u),", - port_map[i].id); - break; - case UNDEF: - RTE_LOG(INFO, APP, "Type: UDF\n"); - sprintf(str + strlen(str), "UDF,"); - break; - } - - RTE_LOG(INFO, APP, "Out Port ID %d\n", - ports_fwd_array[i].out_port_id); - sprintf(str + strlen(str), "outport: %d\n", - ports_fwd_array[i].out_port_id); - } -} - static int do_send(int *connected, int *sock, char *str) { @@ -560,7 +509,7 @@ parse_command(char *str) i = sprintf(str, "Client ID %d Running\n", client_id); else i = sprintf(str, "Client ID %d Idling\n", client_id); - print_active_ports(str + i); + print_active_ports(str + i, client_id, ports_fwd_array, port_map); } else if (!strcmp(token_list[0], "_get_client_id")) { memset(str, '\0', MSG_SIZE); diff --git a/src/shared/common.c b/src/shared/common.c index dd1f88c..5b87385 100644 --- a/src/shared/common.c +++ b/src/shared/common.c @@ -250,3 +250,66 @@ spp_atoi(const char *str, int *val) return 0; } + +/* + * Print port status in forward array + * + * Each of port status is formatted as + * "port_id:[PORT_ID],[IN_PORT_STAT],[TYPE],output:[OUTPORT_STAT]" + */ +void +print_active_ports(char *str, uint16_t client_id, + struct port *ports_fwd_array, + struct port_map *port_map) +{ + unsigned int i; + + sprintf(str, "clinet_id:%d\n", client_id); + + /* Every elements value */ + for (i = 0; i < RTE_MAX_ETHPORTS; i++) { + if (ports_fwd_array[i].in_port_id == PORT_RESET) + continue; + + RTE_LOG(INFO, APP, "Port ID %d\n", i); + RTE_LOG(INFO, APP, "Status %d\n", + ports_fwd_array[i].in_port_id); + + sprintf(str + strlen(str), "port_id:%d,", i); + /* in_port_id is same value as port_id */ + if (ports_fwd_array[i].in_port_id != PORT_RESET) + sprintf(str + strlen(str), "on,"); + else + sprintf(str + strlen(str), "off,"); + + switch (port_map[i].port_type) { + case PHY: + RTE_LOG(INFO, APP, "Type: PHY\n"); + sprintf(str + strlen(str), "PHY,"); + break; + case RING: + RTE_LOG(INFO, APP, "Type: RING\n"); + sprintf(str + strlen(str), "RING(%u),", + port_map[i].id); + break; + case VHOST: + RTE_LOG(INFO, APP, "Type: VHOST\n"); + sprintf(str + strlen(str), "VHOST(%u),", + port_map[i].id); + break; + case UNDEF: + RTE_LOG(INFO, APP, "Type: UDF\n"); + sprintf(str + strlen(str), "UDF,"); + break; + } + + RTE_LOG(INFO, APP, "Out Port ID %d\n", + ports_fwd_array[i].out_port_id); + if (ports_fwd_array[i].out_port_id == PORT_RESET) { + sprintf(str + strlen(str), "outport:%s\n", "none"); + } else { + sprintf(str + strlen(str), "outport:%d\n", + ports_fwd_array[i].out_port_id); + } + } +} diff --git a/src/shared/common.h b/src/shared/common.h index e29c7b9..5defbb0 100644 --- a/src/shared/common.h +++ b/src/shared/common.h @@ -196,6 +196,10 @@ int parse_portmask(struct port_info *ports, uint16_t max_ports, int parse_num_clients(uint16_t *num_clients, const char *clients); int parse_server(char **server_ip, int *server_port, char *server_addr); +void print_active_ports(char *str, uint16_t client_id, + struct port *ports_fwd_array, + struct port_map *port_map); + int spp_atoi(const char *str, int *val); #define RTE_LOGTYPE_APP RTE_LOGTYPE_USER1 diff --git a/src/vm/main.c b/src/vm/main.c index 7095446..c9f1571 100644 --- a/src/vm/main.c +++ b/src/vm/main.c @@ -191,56 +191,6 @@ forward_array_reset(void) } } -/* print forward array active port */ -static void -print_active_ports(char *str) -{ - unsigned int i; - - sprintf(str, "%d\n", client_id); - /* every elements value */ - for (i = 0; i < RTE_MAX_ETHPORTS; i++) { - if (ports_fwd_array[i].in_port_id == PORT_RESET) - continue; - - RTE_LOG(INFO, APP, "Port ID %d\n", i); - RTE_LOG(INFO, APP, "Status %d\n", - ports_fwd_array[i].in_port_id); - - sprintf(str + strlen(str), "port id: %d,", i); - if (ports_fwd_array[i].in_port_id != PORT_RESET) - sprintf(str + strlen(str), "on,"); - else - sprintf(str + strlen(str), "off,"); - - switch (port_map[i].port_type) { - case PHY: - RTE_LOG(INFO, APP, "Type: PHY\n"); - sprintf(str + strlen(str), "PHY,"); - break; - case RING: - RTE_LOG(INFO, APP, "Type: RING\n"); - sprintf(str + strlen(str), "RING(%u),", - port_map[i].id); - break; - case VHOST: - RTE_LOG(INFO, APP, "Type: VHOST\n"); - sprintf(str + strlen(str), "VHOST(%u),", - port_map[i].id); - break; - case UNDEF: - RTE_LOG(INFO, APP, "Type: UDF\n"); - sprintf(str + strlen(str), "UDF,"); - break; - } - - RTE_LOG(INFO, APP, "Out Port ID %d\n", - ports_fwd_array[i].out_port_id); - sprintf(str + strlen(str), "outport: %d\n", - ports_fwd_array[i].out_port_id); - } -} - static void forward_array_remove(int port_id) { @@ -456,7 +406,7 @@ parse_command(char *str) i = sprintf(str, "Client ID %d Running\n", client_id); else i = sprintf(str, "Client ID %d Idling\n", client_id); - print_active_ports(str + i); + print_active_ports(str + i, client_id, ports_fwd_array, port_map); } else if (!strcmp(token_list[0], "_get_client_id")) { memset(str, '\0', MSG_SIZE); -- 2.13.1