X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=examples%2Fflow_filtering%2Fmain.c;h=cc9e7e78081319c0bb529fba5391b6ef92a29125;hb=9ad50c29d01d0d3e7a1f420178d795a92ca4b682;hp=7b8e7c4faf797e7aaaa48e57a10362c3623258a1;hpb=6d13ea8e8e49ab957deae2bba5ecf4a4bfe747d1;p=dpdk.git diff --git a/examples/flow_filtering/main.c b/examples/flow_filtering/main.c index 7b8e7c4faf..cc9e7e7808 100644 --- a/examples/flow_filtering/main.c +++ b/examples/flow_filtering/main.c @@ -47,8 +47,8 @@ struct rte_flow *flow; static inline void print_ether_addr(const char *what, struct rte_ether_addr *eth_addr) { - char buf[ETHER_ADDR_FMT_SIZE]; - ether_format_addr(buf, ETHER_ADDR_FMT_SIZE, eth_addr); + char buf[RTE_ETHER_ADDR_FMT_SIZE]; + rte_ether_format_addr(buf, RTE_ETHER_ADDR_FMT_SIZE, eth_addr); printf("%s%s", what, buf); } @@ -100,15 +100,19 @@ assert_link_status(void) { struct rte_eth_link link; uint8_t rep_cnt = MAX_REPEAT_TIMES; + int link_get_err = -EINVAL; memset(&link, 0, sizeof(link)); do { - rte_eth_link_get(port_id, &link); - if (link.link_status == ETH_LINK_UP) + link_get_err = rte_eth_link_get(port_id, &link); + if (link_get_err == 0 && link.link_status == ETH_LINK_UP) break; rte_delay_ms(CHECK_INTERVAL); } while (--rep_cnt); + if (link_get_err < 0) + rte_exit(EXIT_FAILURE, ":: error: link get is failing: %s\n", + rte_strerror(-link_get_err)); if (link.link_status == ETH_LINK_DOWN) rte_exit(EXIT_FAILURE, ":: error: link is still down\n"); } @@ -136,7 +140,12 @@ init_port(void) struct rte_eth_rxconf rxq_conf; struct rte_eth_dev_info dev_info; - rte_eth_dev_info_get(port_id, &dev_info); + ret = rte_eth_dev_info_get(port_id, &dev_info); + if (ret != 0) + rte_exit(EXIT_FAILURE, + "Error during getting device (port %u) info: %s\n", + port_id, strerror(-ret)); + port_conf.txmode.offloads &= dev_info.tx_offload_capa; printf(":: initializing port: %d\n", port_id); ret = rte_eth_dev_configure(port_id, @@ -149,7 +158,6 @@ init_port(void) rxq_conf = dev_info.default_rxconf; rxq_conf.offloads = port_conf.rxmode.offloads; - /* only set Rx queues: something we care only so far */ for (i = 0; i < nr_queues; i++) { ret = rte_eth_rx_queue_setup(port_id, i, 512, rte_eth_dev_socket_id(port_id), @@ -176,7 +184,12 @@ init_port(void) } } - rte_eth_promiscuous_enable(port_id); + ret = rte_eth_promiscuous_enable(port_id); + if (ret != 0) + rte_exit(EXIT_FAILURE, + ":: promiscuous mode enable failed: err=%s, port=%u\n", + rte_strerror(-ret), port_id); + ret = rte_eth_dev_start(port_id); if (ret < 0) { rte_exit(EXIT_FAILURE,