examples: fix port mask parsing failure handling
[dpdk.git] / examples / vmdq_dcb / main.c
index 3890003..83a6843 100644 (file)
@@ -202,7 +202,14 @@ port_init(uint16_t port, struct rte_mempool *mbuf_pool)
         * The max pool number from dev_info will be used to validate the pool
         * number specified in cmd line
         */
-       rte_eth_dev_info_get(port, &dev_info);
+       retval = rte_eth_dev_info_get(port, &dev_info);
+       if (retval != 0) {
+               printf("Error during getting device (port %u) info: %s\n",
+                               port, strerror(-retval));
+
+               return retval;
+       }
+
        max_nb_pools = (uint32_t)dev_info.max_vmdq_pools;
        /*
         * We allow to process part of VMDQ pools specified by num_pools in
@@ -253,7 +260,14 @@ port_init(uint16_t port, struct rte_mempool *mbuf_pool)
        if (retval < 0)
                return retval;
 
-       rte_eth_dev_info_get(port, &dev_info);
+       retval = rte_eth_dev_info_get(port, &dev_info);
+       if (retval != 0) {
+               printf("Error during getting device (port %u) info: %s\n",
+                               port, strerror(-retval));
+
+               return retval;
+       }
+
        if (dev_info.tx_offload_capa & DEV_TX_OFFLOAD_MBUF_FAST_FREE)
                port_conf.txmode.offloads |=
                        DEV_TX_OFFLOAD_MBUF_FAST_FREE;
@@ -319,7 +333,12 @@ port_init(uint16_t port, struct rte_mempool *mbuf_pool)
                return retval;
        }
 
-       rte_eth_macaddr_get(port, &vmdq_ports_eth_addr[port]);
+       retval = rte_eth_macaddr_get(port, &vmdq_ports_eth_addr[port]);
+       if (retval < 0) {
+               printf("port %d MAC address get failed: %s\n", port,
+                      rte_strerror(-retval));
+               return retval;
+       }
        printf("Port %u MAC: %02"PRIx8" %02"PRIx8" %02"PRIx8
                        " %02"PRIx8" %02"PRIx8" %02"PRIx8"\n",
                        (unsigned)port,
@@ -405,10 +424,7 @@ parse_portmask(const char *portmask)
        /* parse hexadecimal string */
        pm = strtoul(portmask, &end, 16);
        if ((portmask[0] == '\0') || (end == NULL) || (*end != '\0'))
-               return -1;
-
-       if (pm == 0)
-               return -1;
+               return 0;
 
        return pm;
 }
@@ -563,7 +579,7 @@ lcore_main(void *arg)
 
        for (;;) {
                struct rte_mbuf *buf[MAX_PKT_BURST];
-               const uint16_t buf_size = sizeof(buf) / sizeof(buf[0]);
+               const uint16_t buf_size = RTE_DIM(buf);
                for (p = 0; p < num_ports; p++) {
                        const uint8_t src = ports[p];
                        const uint8_t dst = ports[p ^ 1]; /* 0 <-> 1, 2 <-> 3 etc */