app/testpmd: fix packet header in txonly mode
[dpdk.git] / app / test-pmd / parameters.c
index 8c2aa13..1ead595 100644 (file)
@@ -66,9 +66,9 @@ usage(char* progname)
               "--tx-ip=SRC,DST | --tx-udp=PORT | "
 #endif
               "--pkt-filter-mode= |"
-              "--rss-ip | --rss-udp | "
-              "--rxpt= | --rxht= | --rxwt= | --rxfreet= | "
-              "--txpt= | --txht= | --txwt= | --txfreet= | "
+              "--rss-ip | --rss-udp | --rss-level-inner | --rss-level-outer |"
+              "--rxpt= | --rxht= | --rxwt= |"
+              " --rxfreet= | --txpt= | --txht= | --txwt= | --txfreet= | "
               "--txrst= | --tx-offloads= | | --rx-offloads= | "
               "--vxlan-gpe-port= | --record-core-cycles | "
               "--record-burst-stats]\n",
@@ -152,6 +152,8 @@ usage(char* progname)
                        "swap L2,L3,L4 for MAC, IPv4/IPv6 and TCP/UDP only.\n");
        printf("  --rss-ip: set RSS functions to IPv4/IPv6 only .\n");
        printf("  --rss-udp: set RSS functions to IPv4/IPv6 + UDP.\n");
+       printf("  --rss-level-inner: set RSS hash level to innermost\n");
+       printf("  --rss-level-outer: set RSS hash level to outermost\n");
        printf("  --rxq=N: set the number of RX queues per port to N.\n");
        printf("  --rxd=N: set the number of descriptors in RX rings to N.\n");
        printf("  --txq=N: set the number of TX queues per port to N.\n");
@@ -635,6 +637,8 @@ launch_args_parse(int argc, char** argv)
                { "forward-mode",               1, 0, 0 },
                { "rss-ip",                     0, 0, 0 },
                { "rss-udp",                    0, 0, 0 },
+               { "rss-level-outer",            0, 0, 0 },
+               { "rss-level-inner",            0, 0, 0 },
                { "rxq",                        1, 0, 0 },
                { "txq",                        1, 0, 0 },
                { "rxd",                        1, 0, 0 },
@@ -1056,6 +1060,10 @@ launch_args_parse(int argc, char** argv)
                                rss_hf = ETH_RSS_IP;
                        if (!strcmp(lgopts[opt_idx].name, "rss-udp"))
                                rss_hf = ETH_RSS_UDP;
+                       if (!strcmp(lgopts[opt_idx].name, "rss-level-inner"))
+                               rss_hf |= ETH_RSS_LEVEL_INNERMOST;
+                       if (!strcmp(lgopts[opt_idx].name, "rss-level-outer"))
+                               rss_hf |= ETH_RSS_LEVEL_OUTERMOST;
                        if (!strcmp(lgopts[opt_idx].name, "rxq")) {
                                n = atoi(optarg);
                                if (n >= 0 && check_nb_rxq((queueid_t)n) == 0)