No need to use snprintf to print ethernet address. Signed-off-by: Stephen Hemminger <step...@networkplumber.org> --- .../client_server_mp/mp_server/main.c | 32 ++++++------------- 1 file changed, 9 insertions(+), 23 deletions(-)
diff --git a/examples/multi_process/client_server_mp/mp_server/main.c b/examples/multi_process/client_server_mp/mp_server/main.c index bfec0bef3a71..d1339d4be64c 100644 --- a/examples/multi_process/client_server_mp/mp_server/main.c +++ b/examples/multi_process/client_server_mp/mp_server/main.c @@ -56,26 +56,6 @@ struct client_rx_buf { /* One buffer per client rx queue - dynamically allocate array */ static struct client_rx_buf *cl_rx_buf; -static const char * -get_printable_mac_addr(uint16_t port) -{ - static const char err_address[] = "00:00:00:00:00:00"; - static char addresses[RTE_MAX_ETHPORTS][sizeof(err_address)]; - - if (unlikely(port >= RTE_MAX_ETHPORTS)) - return err_address; - if (unlikely(addresses[port][0] == '\0')) { - struct rte_ether_addr mac; - - rte_eth_macaddr_get(port, &mac); - snprintf(addresses[port], sizeof(addresses[port]), - "%02x:%02x:%02x:%02x:%02x:%02x\n", - mac.addr_bytes[0], mac.addr_bytes[1], mac.addr_bytes[2], - mac.addr_bytes[3], mac.addr_bytes[4], mac.addr_bytes[5]); - } - return addresses[port]; -} - /* * This function displays the recorded statistics for each port * and for each client. It uses ANSI terminal codes to clear @@ -118,9 +98,15 @@ do_stats_display(void) printf("PORTS\n"); printf("-----\n"); - for (i = 0; i < ports->num_ports; i++) - printf("Port %u: '%s'\t", ports->id[i], - get_printable_mac_addr(ports->id[i])); + for (i = 0; i < ports->num_ports; i++) { + struct rte_ether_addr mac = { }; + char buf[32]; + + rte_eth_macaddr_get(ports->id[i], &mac); + rte_ether_format_addr(buf, sizeof(buf), &mac); + printf("Port %u: '%s'\t", ports->id[i], buf); + } + printf("\n\n"); for (i = 0; i < ports->num_ports; i++) { printf("Port %u - rx: %9"PRIu64"\ttx: %9"PRIu64"\n", -- 2.20.1