X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=examples%2Fl2fwd-cat%2Fl2fwd-cat.c;h=9b3e324efb230d656bab14de7007dc25ec92fc33;hb=1a86f4dbdf42792c639ecd5124b4c5f96232769f;hp=b34b40a006d19fae4a27ce8baf2fdb75298476d5;hpb=35b2d13fd6fdcbd191f2a30d74648faeb1186c65;p=dpdk.git diff --git a/examples/l2fwd-cat/l2fwd-cat.c b/examples/l2fwd-cat/l2fwd-cat.c index b34b40a006..9b3e324efb 100644 --- a/examples/l2fwd-cat/l2fwd-cat.c +++ b/examples/l2fwd-cat/l2fwd-cat.c @@ -74,16 +74,18 @@ port_init(uint16_t port, struct rte_mempool *mbuf_pool) /* Display the port MAC address. */ struct rte_ether_addr addr; - rte_eth_macaddr_get(port, &addr); + retval = rte_eth_macaddr_get(port, &addr); + if (retval < 0) + return retval; + printf("Port %u MAC: %02" PRIx8 " %02" PRIx8 " %02" PRIx8 " %02" PRIx8 " %02" PRIx8 " %02" PRIx8 "\n", - port, - addr.addr_bytes[0], addr.addr_bytes[1], - addr.addr_bytes[2], addr.addr_bytes[3], - addr.addr_bytes[4], addr.addr_bytes[5]); + port, RTE_ETHER_ADDR_BYTES(&addr)); /* Enable RX in promiscuous mode for the Ethernet device. */ - rte_eth_promiscuous_enable(port); + retval = rte_eth_promiscuous_enable(port); + if (retval != 0) + return retval; return 0; } @@ -92,7 +94,7 @@ port_init(uint16_t port, struct rte_mempool *mbuf_pool) * The lcore main. This is the main thread that does the work, reading from * an input port and writing to an output port. */ -static __attribute__((noreturn)) void +static __rte_noreturn void lcore_main(void) { uint16_t port; @@ -102,7 +104,7 @@ lcore_main(void) * for best performance. */ RTE_ETH_FOREACH_DEV(port) - if (rte_eth_dev_socket_id(port) > 0 && + if (rte_eth_dev_socket_id(port) >= 0 && rte_eth_dev_socket_id(port) != (int)rte_socket_id()) printf("WARNING, port %u is on remote NUMA node to " @@ -153,10 +155,11 @@ main(int argc, char *argv[]) unsigned nb_ports; uint16_t portid; - /* Initialize the Environment Abstraction Layer (EAL). */ + /* Initialize the Environment Abstraction Layer (EAL). 8< */ int ret = rte_eal_init(argc, argv); if (ret < 0) rte_exit(EXIT_FAILURE, "Error with EAL initialization\n"); + /* >8 End of initializion the Environment Abstraction Layer (EAL). */ argc -= ret; argv += ret; @@ -165,9 +168,12 @@ main(int argc, char *argv[]) * Initialize the PQoS library and configure CAT. * Please see l2fwd-cat documentation for more info. */ + + /* Initialize the PQoS. 8< */ ret = cat_init(argc, argv); if (ret < 0) rte_exit(EXIT_FAILURE, "PQOS: L3CA init failed!\n"); + /* >8 End of initialization of PQoS. */ argc -= ret; argv += ret; @@ -193,8 +199,11 @@ main(int argc, char *argv[]) if (rte_lcore_count() > 1) printf("\nWARNING: Too many lcores enabled. Only 1 used.\n"); - /* Call lcore_main on the master core only. */ + /* Call lcore_main on the main core only. */ lcore_main(); + /* clean up the EAL */ + rte_eal_cleanup(); + return 0; }