examples/vhost_blk: refactor to increase readability
[dpdk.git] / examples / ipv4_multicast / main.c
index 15f2b4b..1fb2851 100644 (file)
@@ -138,27 +138,23 @@ struct mcast_group_params {
 };
 
 static struct mcast_group_params mcast_group_table[] = {
-               {RTE_IPv4(224,0,0,101), 0x1},
-               {RTE_IPv4(224,0,0,102), 0x2},
-               {RTE_IPv4(224,0,0,103), 0x3},
-               {RTE_IPv4(224,0,0,104), 0x4},
-               {RTE_IPv4(224,0,0,105), 0x5},
-               {RTE_IPv4(224,0,0,106), 0x6},
-               {RTE_IPv4(224,0,0,107), 0x7},
-               {RTE_IPv4(224,0,0,108), 0x8},
-               {RTE_IPv4(224,0,0,109), 0x9},
-               {RTE_IPv4(224,0,0,110), 0xA},
-               {RTE_IPv4(224,0,0,111), 0xB},
-               {RTE_IPv4(224,0,0,112), 0xC},
-               {RTE_IPv4(224,0,0,113), 0xD},
-               {RTE_IPv4(224,0,0,114), 0xE},
-               {RTE_IPv4(224,0,0,115), 0xF},
+               {RTE_IPV4(224,0,0,101), 0x1},
+               {RTE_IPV4(224,0,0,102), 0x2},
+               {RTE_IPV4(224,0,0,103), 0x3},
+               {RTE_IPV4(224,0,0,104), 0x4},
+               {RTE_IPV4(224,0,0,105), 0x5},
+               {RTE_IPV4(224,0,0,106), 0x6},
+               {RTE_IPV4(224,0,0,107), 0x7},
+               {RTE_IPV4(224,0,0,108), 0x8},
+               {RTE_IPV4(224,0,0,109), 0x9},
+               {RTE_IPV4(224,0,0,110), 0xA},
+               {RTE_IPV4(224,0,0,111), 0xB},
+               {RTE_IPV4(224,0,0,112), 0xC},
+               {RTE_IPV4(224,0,0,113), 0xD},
+               {RTE_IPV4(224,0,0,114), 0xE},
+               {RTE_IPV4(224,0,0,115), 0xF},
 };
 
-#define N_MCAST_GROUPS \
-       (sizeof (mcast_group_table) / sizeof (mcast_group_table[0]))
-
-
 /* Send burst of packets on an output interface */
 static void
 send_burst(struct lcore_queue_conf *qconf, uint16_t port)
@@ -280,7 +276,7 @@ mcast_send_pkt(struct rte_mbuf *pkt, struct rte_ether_addr *dest_addr,
 
        rte_ether_addr_copy(dest_addr, &ethdr->d_addr);
        rte_ether_addr_copy(&ports_eth_addr[port], &ethdr->s_addr);
-       ethdr->ether_type = rte_be_to_cpu_16(RTE_ETHER_TYPE_IPv4);
+       ethdr->ether_type = rte_be_to_cpu_16(RTE_ETHER_TYPE_IPV4);
 
        /* Put new packet into the output queue */
        len = qconf->tx_mbufs[port].len;
@@ -555,7 +551,7 @@ init_mcast_hash(void)
                return -1;
        }
 
-       for (i = 0; i < N_MCAST_GROUPS; i ++){
+       for (i = 0; i < RTE_DIM(mcast_group_table); i++) {
                if (rte_fbk_hash_add_key(mcast_hash,
                        mcast_group_table[i].ip,
                        mcast_group_table[i].port_mask) < 0) {
@@ -575,6 +571,7 @@ check_all_ports_link_status(uint32_t port_mask)
        uint16_t portid;
        uint8_t count, all_ports_up, print_flag = 0;
        struct rte_eth_link link;
+       int ret;
 
        printf("\nChecking link status");
        fflush(stdout);
@@ -584,7 +581,14 @@ check_all_ports_link_status(uint32_t port_mask)
                        if ((port_mask & (1 << portid)) == 0)
                                continue;
                        memset(&link, 0, sizeof(link));
-                       rte_eth_link_get_nowait(portid, &link);
+                       ret = rte_eth_link_get_nowait(portid, &link);
+                       if (ret < 0) {
+                               all_ports_up = 0;
+                               if (print_flag == 1)
+                                       printf("Port %u link get failed: %s\n",
+                                               portid, rte_strerror(-ret));
+                               continue;
+                       }
                        /* print link status if flag set */
                        if (print_flag == 1) {
                                if (link.link_status)
@@ -686,7 +690,12 @@ main(int argc, char **argv)
                qconf = &lcore_queue_conf[rx_lcore_id];
 
                /* limit the frame size to the maximum supported by NIC */
-               rte_eth_dev_info_get(portid, &dev_info);
+               ret = rte_eth_dev_info_get(portid, &dev_info);
+               if (ret != 0)
+                       rte_exit(EXIT_FAILURE,
+                               "Error during getting device (port %u) info: %s\n",
+                               portid, strerror(-ret));
+
                local_port_conf.rxmode.max_rx_pkt_len = RTE_MIN(
                    dev_info.max_rx_pktlen,
                    local_port_conf.rxmode.max_rx_pkt_len);
@@ -726,7 +735,12 @@ main(int argc, char **argv)
                                 "Cannot adjust number of descriptors: err=%d, port=%d\n",
                                 ret, portid);
 
-               rte_eth_macaddr_get(portid, &ports_eth_addr[portid]);
+               ret = rte_eth_macaddr_get(portid, &ports_eth_addr[portid]);
+               if (ret < 0)
+                       rte_exit(EXIT_FAILURE,
+                                "Cannot get MAC address: err=%d, port=%d\n",
+                                ret, portid);
+
                print_ethaddr(" Address:", &ports_eth_addr[portid]);
                printf(", ");
 
@@ -765,7 +779,11 @@ main(int argc, char **argv)
                        qconf->tx_queue_id[portid] = queueid;
                        queueid++;
                }
-               rte_eth_allmulticast_enable(portid);
+               ret = rte_eth_allmulticast_enable(portid);
+               if (ret < 0)
+                       rte_exit(EXIT_FAILURE,
+                               "rte_eth_allmulticast_enable: err=%d, port=%d\n",
+                               ret, portid);
                /* Start device */
                ret = rte_eth_dev_start(portid);
                if (ret < 0)