X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=examples%2Fserver_node_efd%2Fserver%2Finit.c;h=a19934dbe0c8f70176cfbefc835d0d2a2af1d978;hb=a4975cd20dca0aa7f96cd47b79144509e7599c66;hp=7dfe2fa23233fe0294d53605579f24a94aa4e645;hpb=d9a42a69febf453cdb735e77fc0e01463ddf4acc;p=dpdk.git diff --git a/examples/server_node_efd/server/init.c b/examples/server_node_efd/server/init.c index 7dfe2fa232..a19934dbe0 100644 --- a/examples/server_node_efd/server/init.c +++ b/examples/server_node_efd/server/init.c @@ -15,7 +15,6 @@ #include #include #include -#include #include #include #include @@ -97,7 +96,6 @@ init_port(uint16_t port_num) struct rte_eth_conf port_conf = { .rxmode = { .mq_mode = ETH_MQ_RX_RSS, - .ignore_offload_bitfield = 1, }, }; const uint16_t rx_rings = 1, tx_rings = num_nodes; @@ -112,7 +110,10 @@ init_port(uint16_t port_num) printf("Port %u init ... ", port_num); fflush(stdout); - rte_eth_dev_info_get(port_num, &dev_info); + retval = rte_eth_dev_info_get(port_num, &dev_info); + if (retval != 0) + return retval; + if (dev_info.tx_offload_capa & DEV_TX_OFFLOAD_MBUF_FAST_FREE) port_conf.txmode.offloads |= DEV_TX_OFFLOAD_MBUF_FAST_FREE; @@ -139,7 +140,6 @@ init_port(uint16_t port_num) } txconf = dev_info.default_txconf; - txconf.txq_flags = ETH_TXQ_FLAGS_IGNORE; txconf.offloads = port_conf.txmode.offloads; for (q = 0; q < tx_rings; q++) { retval = rte_eth_tx_queue_setup(port_num, q, tx_ring_size, @@ -149,7 +149,9 @@ init_port(uint16_t port_num) return retval; } - rte_eth_promiscuous_enable(port_num); + retval = rte_eth_promiscuous_enable(port_num); + if (retval != 0) + return retval; retval = rte_eth_dev_start(port_num); if (retval < 0) @@ -197,6 +199,8 @@ init_shm_rings(void) * Create EFD table which will contain all the flows * that will be distributed among the nodes */ + +/* Create EFD table. 8< */ static void create_efd_table(void) { @@ -233,6 +237,7 @@ populate_efd_table(void) printf("EFD table: Adding 0x%x keys\n", num_flows); } +/* >8 End of creation EFD table. */ /* Check the link status of all ports in up to 9s, and print them finally */ static void @@ -243,6 +248,8 @@ check_all_ports_link_status(uint16_t port_num, uint32_t port_mask) uint8_t count, all_ports_up, print_flag = 0; uint16_t portid; struct rte_eth_link link; + int ret; + char link_status_text[RTE_ETH_LINK_MAX_STR_LEN]; printf("\nChecking link status"); fflush(stdout); @@ -252,19 +259,20 @@ check_all_ports_link_status(uint16_t port_num, uint32_t port_mask) if ((port_mask & (1 << info->id[portid])) == 0) continue; memset(&link, 0, sizeof(link)); - rte_eth_link_get_nowait(info->id[portid], &link); + ret = rte_eth_link_get_nowait(info->id[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) - printf( - "Port%d Link Up. Speed %u Mbps - %s\n", - info->id[portid], - link.link_speed, - (link.link_duplex == ETH_LINK_FULL_DUPLEX) ? - ("full-duplex") : ("half-duplex\n")); - else - printf("Port %d Link Down\n", - info->id[portid]); + rte_eth_link_to_str(link_status_text, + sizeof(link_status_text), &link); + printf("Port %d %s\n", info->id[portid], + link_status_text); continue; } /* clear all_ports_up flag if any link down */