app/testpmd: fix Tx first with LSC interrupt
authorDavid Hunt <david.hunt@intel.com>
Tue, 25 Jul 2017 10:27:52 +0000 (11:27 +0100)
committerThomas Monjalon <thomas@monjalon.net>
Thu, 3 Aug 2017 21:42:08 +0000 (23:42 +0200)
The lsc_interrupt flag is enabled by default, and when the --tx-first is
used as a command line parameter, the 32 packets can be sent out before
the link state is up, resulting in the loss of the packets, and no further
forwarding will take place.

E.g. ./build/app/testpmd -c f0 -- --tx-first --stats-period 1

When the --tx-first is used, the lsc_interrupt flag needs to be disabled,
ensuring the links are up before forwarding traffic.  Therefore, during the
parameter checking at startup, if --tx-first is used, we now warn the user,
and set lsc_interrupt to 0.

Fixes: 99cabef08855 ("app/testpmd: add parameter to start forwarding Tx first")

Signed-off-by: David Hunt <david.hunt@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
app/test-pmd/testpmd.c

index 9a36e66..7d40139 100644 (file)
@@ -2329,6 +2329,13 @@ main(int argc, char** argv)
        if (tx_first && interactive)
                rte_exit(EXIT_FAILURE, "--tx-first cannot be used on "
                                "interactive mode.\n");
+
+       if (tx_first && lsc_interrupt) {
+               printf("Warning: lsc_interrupt needs to be off when "
+                               " using tx_first. Disabling.\n");
+               lsc_interrupt = 0;
+       }
+
        if (!nb_rxq && !nb_txq)
                printf("Warning: Either rx or tx queues should be non-zero\n");