X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=examples%2Fipv4_multicast%2Fmain.c;h=1fb28513b02b46c0c070000afbad86ab95c96a7d;hb=d52e042850147c861f31adb04ad8a65820971117;hp=15f2b4b27243c425f3b622f2bd47877ac0bdc6d0;hpb=24ac604ef7469eb5773c2504b313dd00257f8df3;p=dpdk.git diff --git a/examples/ipv4_multicast/main.c b/examples/ipv4_multicast/main.c index 15f2b4b272..1fb28513b0 100644 --- a/examples/ipv4_multicast/main.c +++ b/examples/ipv4_multicast/main.c @@ -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, ðdr->d_addr); rte_ether_addr_copy(&ports_eth_addr[port], ðdr->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)