net/tap: fix max queues redefinition
[dpdk.git] / app / test-pmd / parameters.c
index 6a6a07e..c36bcf8 100644 (file)
@@ -1,7 +1,7 @@
 /*-
  *   BSD LICENSE
  *
- *   Copyright(c) 2010-2016 Intel Corporation. All rights reserved.
+ *   Copyright(c) 2010-2017 Intel Corporation. All rights reserved.
  *   All rights reserved.
  *
  *   Redistribution and use in source and binary forms, with or without
@@ -76,6 +76,7 @@
 #ifdef RTE_LIBRTE_PMD_BOND
 #include <rte_eth_bond.h>
 #endif
+#include <rte_flow.h>
 
 #include "testpmd.h"
 
@@ -148,7 +149,12 @@ usage(char* progname)
               "the packet will be enqueued into the rx drop-queue. "
               "If the drop-queue doesn't exist, the packet is dropped. "
               "By default drop-queue=127.\n");
+#ifdef RTE_LIBRTE_LATENCY_STATS
+       printf("  --latencystats=N: enable latency and jitter statistcs "
+              "monitoring on forwarding lcore id N.\n");
+#endif
        printf("  --crc-strip: enable CRC stripping by hardware.\n");
+       printf("  --enable-lro: enable large receive offload.\n");
        printf("  --enable-rx-cksum: enable rx hardware checksum offload.\n");
        printf("  --disable-hw-vlan: disable hardware vlan.\n");
        printf("  --disable-hw-vlan-filter: disable hardware vlan filter.\n");
@@ -190,7 +196,8 @@ usage(char* progname)
               "(0 <= mapping <= %d).\n", RTE_ETHDEV_QUEUE_STAT_CNTRS - 1);
        printf("  --no-flush-rx: Don't flush RX streams before forwarding."
               " Used mainly with PCAP drivers.\n");
-       printf("  --txpkts=X[,Y]*: set TX segment sizes.\n");
+       printf("  --txpkts=X[,Y]*: set TX segment sizes"
+               " or total packet length.\n");
        printf("  --disable-link-check: disable check on link status when "
               "starting/stopping ports.\n");
 }
@@ -391,7 +398,7 @@ parse_portnuma_config(const char *q_arg)
                port_id = (uint8_t)int_fld[FLD_PORT];
                if (port_id_is_invalid(port_id, ENABLED_WARN)) {
                        printf("Valid port range is [0");
-                       FOREACH_PORT(pid, ports)
+                       RTE_ETH_FOREACH_DEV(pid)
                                printf(", %d", pid);
                        printf("]\n");
                        return -1;
@@ -451,7 +458,7 @@ parse_ringnuma_config(const char *q_arg)
                port_id = (uint8_t)int_fld[FLD_PORT];
                if (port_id_is_invalid(port_id, ENABLED_WARN)) {
                        printf("Valid port range is [0");
-                       FOREACH_PORT(pid, ports)
+                       RTE_ETH_FOREACH_DEV(pid)
                                printf(", %d", pid);
                        printf("]\n");
                        return -1;
@@ -523,7 +530,11 @@ launch_args_parse(int argc, char** argv)
                { "pkt-filter-report-hash",     1, 0, 0 },
                { "pkt-filter-size",            1, 0, 0 },
                { "pkt-filter-drop-queue",      1, 0, 0 },
+#ifdef RTE_LIBRTE_LATENCY_STATS
+               { "latencystats",               1, 0, 0 },
+#endif
                { "crc-strip",                  0, 0, 0 },
+               { "enable-lro",                 0, 0, 0 },
                { "enable-rx-cksum",            0, 0, 0 },
                { "enable-scatter",             0, 0, 0 },
                { "disable-hw-vlan",            0, 0, 0 },
@@ -762,8 +773,23 @@ launch_args_parse(int argc, char** argv)
                                                 "drop queue %d invalid - must"
                                                 "be >= 0 \n", n);
                        }
+#ifdef RTE_LIBRTE_LATENCY_STATS
+                       if (!strcmp(lgopts[opt_idx].name,
+                                   "latencystats")) {
+                               n = atoi(optarg);
+                               if (n >= 0) {
+                                       latencystats_lcore_id = (lcoreid_t) n;
+                                       latencystats_enabled = 1;
+                               } else
+                                       rte_exit(EXIT_FAILURE,
+                                                "invalid lcore id %d for latencystats"
+                                                " must be >= 0\n", n);
+                       }
+#endif
                        if (!strcmp(lgopts[opt_idx].name, "crc-strip"))
                                rx_mode.hw_strip_crc = 1;
+                       if (!strcmp(lgopts[opt_idx].name, "enable-lro"))
+                               rx_mode.enable_lro = 1;
                        if (!strcmp(lgopts[opt_idx].name, "enable-scatter"))
                                rx_mode.enable_scatter = 1;
                        if (!strcmp(lgopts[opt_idx].name, "enable-rx-cksum"))