X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=examples%2Fioat%2Fioatfwd.c;h=b66ee73bcec42d9d7fc3faec8c211f8eada31505;hb=ae9000ada946b54d29b33e84dc7d06cd2ab221c4;hp=a0cc5c496e8507c41dd1b9e9af07812e36b8c53b;hpb=e1bc8c50fc2d2c962ce74ef8674336c571d9dba6;p=dpdk.git diff --git a/examples/ioat/ioatfwd.c b/examples/ioat/ioatfwd.c index a0cc5c496e..b66ee73bce 100644 --- a/examples/ioat/ioatfwd.c +++ b/examples/ioat/ioatfwd.c @@ -294,6 +294,8 @@ print_stats(char *prgname) printf("\n"); print_total_stats(&delta_ts); + fflush(stdout); + ts.total_packets_tx += delta_ts.total_packets_tx; ts.total_packets_rx += delta_ts.total_packets_rx; ts.total_packets_dropped += delta_ts.total_packets_dropped; @@ -460,7 +462,7 @@ ioat_tx_port(struct rxtx_port_config *tx_config) MAX_PKT_BURST, NULL); } - if (nb_dq <= 0) + if ((int32_t) nb_dq <= 0) return; if (copy_mode == COPY_MODE_IOAT_NUM) @@ -697,7 +699,7 @@ check_link_status(uint32_t port_mask) { uint16_t portid; struct rte_eth_link link; - int retval = 0; + int ret, link_status = 0; printf("\nChecking link status\n"); RTE_ETH_FOREACH_DEV(portid) { @@ -705,7 +707,12 @@ check_link_status(uint32_t port_mask) continue; memset(&link, 0, sizeof(link)); - rte_eth_link_get(portid, &link); + ret = rte_eth_link_get(portid, &link); + if (ret < 0) { + printf("Port %u link get failed: err=%d\n", + portid, ret); + continue; + } /* Print link status */ if (link.link_status) { @@ -713,12 +720,12 @@ check_link_status(uint32_t port_mask) "Port %d Link Up. Speed %u Mbps - %s\n", portid, link.link_speed, (link.link_duplex == ETH_LINK_FULL_DUPLEX) ? - ("full-duplex") : ("half-duplex\n")); - retval = 1; + ("full-duplex") : ("half-duplex")); + link_status = 1; } else printf("Port %d Link Down\n", portid); } - return retval; + return link_status; } static void @@ -751,8 +758,9 @@ assign_rawdevs(void) if (rdev_id == rte_rawdev_count()) goto end; rte_rawdev_info_get(rdev_id++, &rdev_info); - } while (strcmp(rdev_info.driver_name, - IOAT_PMD_RAWDEV_NAME_STR) != 0); + } while (rdev_info.driver_name == NULL || + strcmp(rdev_info.driver_name, + IOAT_PMD_RAWDEV_NAME_STR) != 0); cfg.ports[i].ioat_ids[j] = rdev_id - 1; configure_rawdev_queue(cfg.ports[i].ioat_ids[j]); @@ -823,7 +831,11 @@ port_init(uint16_t portid, struct rte_mempool *mbuf_pool, uint16_t nb_queues) /* Init port */ printf("Initializing port %u... ", portid); fflush(stdout); - rte_eth_dev_info_get(portid, &dev_info); + ret = rte_eth_dev_info_get(portid, &dev_info); + if (ret < 0) + rte_exit(EXIT_FAILURE, "Cannot get device info: %s, port=%u\n", + rte_strerror(-ret), portid); + local_port_conf.rx_adv_conf.rss_conf.rss_hf &= dev_info.flow_type_rss_offloads; if (dev_info.tx_offload_capa & DEV_TX_OFFLOAD_MBUF_FAST_FREE)