New upstream version 17.11.3
[deb_dpdk.git] / examples / vmdq / main.c
index f639355..84e9937 100644 (file)
@@ -47,9 +47,7 @@
 #include <rte_log.h>
 #include <rte_memory.h>
 #include <rte_memcpy.h>
-#include <rte_memzone.h>
 #include <rte_eal.h>
-#include <rte_per_lcore.h>
 #include <rte_launch.h>
 #include <rte_atomic.h>
 #include <rte_cycles.h>
 #include <rte_per_lcore.h>
 #include <rte_branch_prediction.h>
 #include <rte_interrupts.h>
-#include <rte_pci.h>
 #include <rte_random.h>
 #include <rte_debug.h>
 #include <rte_ether.h>
 #include <rte_ethdev.h>
-#include <rte_log.h>
 #include <rte_mempool.h>
 #include <rte_mbuf.h>
-#include <rte_memcpy.h>
 
 #define MAX_QUEUES 1024
 /*
@@ -124,7 +119,7 @@ static const struct rte_eth_conf vmdq_conf_default = {
 };
 
 static unsigned lcore_ids[RTE_MAX_LCORE];
-static uint8_t ports[RTE_MAX_ETHPORTS];
+static uint16_t ports[RTE_MAX_ETHPORTS];
 static unsigned num_ports; /**< The number of ports specified in command line */
 
 /* array used for printing out statistics */
@@ -189,13 +184,14 @@ get_eth_conf(struct rte_eth_conf *eth_conf, uint32_t num_pools)
  * coming from the mbuf_pool passed as parameter
  */
 static inline int
-port_init(uint8_t port, struct rte_mempool *mbuf_pool)
+port_init(uint16_t port, struct rte_mempool *mbuf_pool)
 {
        struct rte_eth_dev_info dev_info;
        struct rte_eth_rxconf *rxconf;
        struct rte_eth_conf port_conf;
        uint16_t rxRings, txRings;
-       const uint16_t rxRingSize = RTE_TEST_RX_DESC_DEFAULT, txRingSize = RTE_TEST_TX_DESC_DEFAULT;
+       uint16_t rxRingSize = RTE_TEST_RX_DESC_DEFAULT;
+       uint16_t txRingSize = RTE_TEST_TX_DESC_DEFAULT;
        int retval;
        uint16_t q;
        uint16_t queues_per_pool;
@@ -253,6 +249,17 @@ port_init(uint8_t port, struct rte_mempool *mbuf_pool)
        if (retval != 0)
                return retval;
 
+       retval = rte_eth_dev_adjust_nb_rx_tx_desc(port, &rxRingSize,
+                               &txRingSize);
+       if (retval != 0)
+               return retval;
+       if (RTE_MAX(rxRingSize, txRingSize) > RTE_MAX(RTE_TEST_RX_DESC_DEFAULT,
+                       RTE_TEST_TX_DESC_DEFAULT)) {
+               printf("Mbuf pool has an insufficient size for port %u.\n",
+                       port);
+               return -1;
+       }
+
        rte_eth_dev_info_get(port, &dev_info);
        rxconf = &dev_info.default_rxconf;
        rxconf->rx_drop_en = 1;
@@ -574,7 +581,7 @@ main(int argc, char *argv[])
        unsigned lcore_id, core_id = 0;
        int ret;
        unsigned nb_ports, valid_num_ports;
-       uint8_t portid;
+       uint16_t portid;
 
        signal(SIGHUP, sighup_handler);