X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=examples%2Fl2fwd-event%2Fmain.c;h=0acfee4c92b63fd0ba2aec9634d2e4622fdf8c91;hb=3dbfacbf93f6737e38bc47e4e3f53c7ebd4d7766;hp=9cc29d73244286f7efbec1de27cfd698c5190478;hpb=092454d99949fe78fcebd4b533ea56fe30ec26e0;p=dpdk.git diff --git a/examples/l2fwd-event/main.c b/examples/l2fwd-event/main.c index 9cc29d7324..0acfee4c92 100644 --- a/examples/l2fwd-event/main.c +++ b/examples/l2fwd-event/main.c @@ -39,10 +39,7 @@ l2fwd_event_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; } @@ -366,6 +363,7 @@ check_all_ports_link_status(struct l2fwd_resources *rsrc, uint8_t count, all_ports_up, print_flag = 0; struct rte_eth_link link; int ret; + char link_status_text[RTE_ETH_LINK_MAX_STR_LEN]; printf("\nChecking link status..."); fflush(stdout); @@ -389,14 +387,10 @@ check_all_ports_link_status(struct l2fwd_resources *rsrc, } /* print link status if flag set */ if (print_flag == 1) { - if (link.link_status) - printf( - "Port%d Link Up. Speed %u Mbps - %s\n", - port_id, link.link_speed, - (link.link_duplex == ETH_LINK_FULL_DUPLEX) ? - ("full-duplex") : ("half-duplex\n")); - else - printf("Port %d Link Down\n", port_id); + rte_eth_link_to_str(link_status_text, + sizeof(link_status_text), &link); + printf("Port %d %s\n", port_id, + link_status_text); continue; } /* clear all_ports_up flag if any link down */ @@ -516,6 +510,8 @@ print_stats(struct l2fwd_resources *rsrc) total_packets_rx, total_packets_dropped); printf("\n====================================================\n"); + + fflush(stdout); } static void @@ -671,7 +667,7 @@ main(int argc, char **argv) /* launch per-lcore init on every lcore */ rte_eal_mp_remote_launch(l2fwd_launch_one_lcore, rsrc, - SKIP_MASTER); + SKIP_MAIN); l2fwd_event_print_stats(rsrc); if (rsrc->event_mode) { struct l2fwd_event_resources *evt_rsrc = @@ -687,7 +683,10 @@ main(int argc, char **argv) if ((rsrc->enabled_port_mask & (1 << port_id)) == 0) continue; - rte_eth_dev_stop(port_id); + ret = rte_eth_dev_stop(port_id); + if (ret < 0) + printf("rte_eth_dev_stop:err=%d, port=%u\n", + ret, port_id); } rte_eal_mp_wait_lcore(); @@ -709,11 +708,17 @@ main(int argc, char **argv) (1 << port_id)) == 0) continue; printf("Closing port %d...", port_id); - rte_eth_dev_stop(port_id); + ret = rte_eth_dev_stop(port_id); + if (ret < 0) + printf("rte_eth_dev_stop:err=%d, port=%u\n", + ret, port_id); rte_eth_dev_close(port_id); printf(" Done\n"); } } + + /* clean up the EAL */ + rte_eal_cleanup(); printf("Bye...\n"); return 0;