cryptodev: use AES-GCM/CCM as AEAD algorithms
[dpdk.git] / examples / l3fwd-power / main.c
index e741434..52eb835 100644 (file)
 /*
  * Configurable number of RX/TX ring descriptors
  */
-#define RTE_TEST_RX_DESC_DEFAULT 128
+#define RTE_TEST_RX_DESC_DEFAULT 512
 #define RTE_TEST_TX_DESC_DEFAULT 512
 static uint16_t nb_rxd = RTE_TEST_RX_DESC_DEFAULT;
 static uint16_t nb_txd = RTE_TEST_TX_DESC_DEFAULT;
@@ -223,7 +223,7 @@ static struct rte_eth_conf port_conf = {
                .hw_ip_checksum = 1, /**< IP checksum offload enabled */
                .hw_vlan_filter = 0, /**< VLAN filtering disabled */
                .jumbo_frame    = 0, /**< Jumbo Frame Support disabled */
-               .hw_strip_crc   = 0, /**< CRC stripped by hardware */
+               .hw_strip_crc   = 1, /**< CRC stripped by hardware */
        },
        .rx_adv_conf = {
                .rss_conf = {
@@ -245,7 +245,7 @@ static struct rte_mempool * pktmbuf_pool[NB_SOCKETS];
 
 #if (APP_LOOKUP_METHOD == APP_LOOKUP_EXACT_MATCH)
 
-#ifdef RTE_MACHINE_CPUFLAG_SSE4_2
+#ifdef RTE_ARCH_X86
 #include <rte_hash_crc.h>
 #define DEFAULT_HASH_FUNC       rte_hash_crc
 #else
@@ -379,6 +379,7 @@ static void
 signal_exit_now(int sigtype)
 {
        unsigned lcore_id;
+       unsigned int portid, nb_ports;
        int ret;
 
        if (sigtype == SIGINT) {
@@ -393,6 +394,15 @@ signal_exit_now(int sigtype)
                                        "library de-initialization failed on "
                                                        "core%u\n", lcore_id);
                }
+
+               nb_ports = rte_eth_dev_count();
+               for (portid = 0; portid < nb_ports; portid++) {
+                       if ((enabled_port_mask & (1 << portid)) == 0)
+                               continue;
+
+                       rte_eth_dev_stop(portid);
+                       rte_eth_dev_close(portid);
+               }
        }
 
        rte_exit(EXIT_SUCCESS, "User forced exit\n");
@@ -1351,7 +1361,7 @@ parse_args(int argc, char **argv)
                argv[optind-1] = prgname;
 
        ret = optind-1;
-       optind = 0; /* reset getopt lib */
+       optind = 1; /* reset getopt lib */
        return ret;
 }
 
@@ -1644,6 +1654,7 @@ main(int argc, char **argv)
        uint32_t n_tx_queue, nb_lcores;
        uint32_t dev_rxq_num, dev_txq_num;
        uint8_t portid, nb_rx_queue, queue, socketid;
+       uint16_t org_rxq_intr = port_conf.intr_conf.rxq;
 
        /* catch SIGINT and restore cpufreq governor to ondemand */
        signal(SIGINT, signal_exit_now);
@@ -1704,8 +1715,13 @@ main(int argc, char **argv)
                        n_tx_queue = dev_txq_num;
                printf("Creating queues: nb_rxq=%d nb_txq=%u... ",
                        nb_rx_queue, (unsigned)n_tx_queue );
+               /* If number of Rx queue is 0, no need to enable Rx interrupt */
+               if (nb_rx_queue == 0)
+                       port_conf.intr_conf.rxq = 0;
                ret = rte_eth_dev_configure(portid, nb_rx_queue,
                                        (uint16_t)n_tx_queue, &port_conf);
+               /* Revert to original value */
+               port_conf.intr_conf.rxq = org_rxq_intr;
                if (ret < 0)
                        rte_exit(EXIT_FAILURE, "Cannot configure device: "
                                        "err=%d, port=%d\n", ret, portid);