examples/multi_process: fix build on Ubuntu 20.04
[dpdk.git] / examples / multi_process / client_server_mp / mp_server / main.c
index 280dab8..b18e12d 100644 (file)
@@ -59,12 +59,17 @@ 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)];
+       static const struct rte_ether_addr null_mac; /* static defaults to 0 */
+       static char err_address[32];
+       static char addresses[RTE_MAX_ETHPORTS][32];
        int ret;
 
-       if (unlikely(port >= RTE_MAX_ETHPORTS))
+       if (unlikely(port >= RTE_MAX_ETHPORTS)) {
+               if (err_address[0] == '\0')
+                       rte_ether_format_addr(err_address,
+                                       sizeof(err_address), &null_mac);
                return err_address;
+       }
        if (unlikely(addresses[port][0]=='\0')){
                struct rte_ether_addr mac;
                ret = rte_eth_macaddr_get(port, &mac);
@@ -73,10 +78,8 @@ get_printable_mac_addr(uint16_t port)
                               port, rte_strerror(-ret));
                        return err_address;
                }
-               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]);
+               rte_ether_format_addr(addresses[port],
+                               sizeof(addresses[port]), &mac);
        }
        return addresses[port];
 }
@@ -84,7 +87,7 @@ get_printable_mac_addr(uint16_t port)
 /*
  * This function displays the recorded statistics for each port
  * and for each client. It uses ANSI terminal codes to clear
- * screen when called. It is called from a single non-master
+ * screen when called. It is called from a single worker
  * thread in the server process, when the process is run with more
  * than one lcore enabled.
  */
@@ -146,7 +149,7 @@ do_stats_display(void)
 }
 
 /*
- * The function called from each non-master lcore used by the process.
+ * The function called from each worker lcore used by the process.
  * The test_and_set function is used to randomly pick a single lcore on which
  * the code to display the statistics will run. Otherwise, the code just
  * repeatedly sleeps.
@@ -244,7 +247,7 @@ process_packets(uint32_t port_num __rte_unused,
 }
 
 /*
- * Function called by the master lcore of the DPDK process.
+ * Function called by the main lcore of the DPDK process.
  */
 static void
 do_packet_forwarding(void)
@@ -297,8 +300,8 @@ main(int argc, char *argv[])
        /* clear statistics */
        clear_stats();
 
-       /* put all other cores to sleep bar master */
-       rte_eal_mp_remote_launch(sleep_lcore, NULL, SKIP_MASTER);
+       /* put all other cores to sleep except main */
+       rte_eal_mp_remote_launch(sleep_lcore, NULL, SKIP_MAIN);
 
        do_packet_forwarding();
        return 0;