app/testpmd: fix multicast address pool leak
[dpdk.git] / examples / l2fwd-cat / l2fwd-cat.c
index 2e632c5..6e16705 100644 (file)
 #define MBUF_CACHE_SIZE 250
 #define BURST_SIZE 32
 
-static const struct rte_eth_conf port_conf_default = {
-       .rxmode = { .max_rx_pkt_len = RTE_ETHER_MAX_LEN }
-};
-
 /* l2fwd-cat.c: CAT enabled, basic DPDK skeleton forwarding example. */
 
 /*
@@ -32,7 +28,7 @@ static const struct rte_eth_conf port_conf_default = {
 static inline int
 port_init(uint16_t port, struct rte_mempool *mbuf_pool)
 {
-       struct rte_eth_conf port_conf = port_conf_default;
+       struct rte_eth_conf port_conf;
        const uint16_t rx_rings = 1, tx_rings = 1;
        int retval;
        uint16_t q;
@@ -42,6 +38,8 @@ port_init(uint16_t port, struct rte_mempool *mbuf_pool)
        if (!rte_eth_dev_is_valid_port(port))
                return -1;
 
+       memset(&port_conf, 0, sizeof(struct rte_eth_conf));
+
        /* Configure the Ethernet device. */
        retval = rte_eth_dev_configure(port, rx_rings, tx_rings, &port_conf);
        if (retval != 0)
@@ -80,10 +78,7 @@ port_init(uint16_t port, struct rte_mempool *mbuf_pool)
 
        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. */
        retval = rte_eth_promiscuous_enable(port);
@@ -107,7 +102,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 "
@@ -158,10 +153,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 initialization the Environment Abstraction Layer (EAL). */
 
        argc -= ret;
        argv += ret;
@@ -170,9 +166,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;
@@ -201,5 +200,8 @@ main(int argc, char *argv[])
        /* Call lcore_main on the main core only. */
        lcore_main();
 
+       /* clean up the EAL */
+       rte_eal_cleanup();
+
        return 0;
 }