[dpdk-dev] [dpdk-dev v3 2/3] app: enable HW CRC strip by default

Jeff Guo jia.guo at intel.com
Thu Mar 23 06:43:58 CET 2017


Since VF has no ability to disable/enable HW CRC strip for non-DPDK PF
drivers, and for most case of kernel driver default enable HW CRC strip,
if disable HW CRC strip in app's rxmode, VF driver will return fail and
result the VF launch failure. So this patch default to enable HW CRC strip
to let VF launch successful.

Signed-off-by: Jeff Guo <jia.guo at intel.com>
Cc: stable at dpdk.org
---
v3: add command line modification
    add doc modification
---
 app/test-pmd/parameters.c                            | 8 ++++----
 app/test-pmd/testpmd.c                               | 2 +-
 doc/guides/howto/virtio_user_as_exceptional_path.rst | 4 ++--
 doc/guides/nics/thunderx.rst                         | 2 +-
 doc/guides/testpmd_app_ug/run_app.rst                | 2 +-
 doc/guides/testpmd_app_ug/testpmd_funcs.rst          | 4 ++--
 6 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/app/test-pmd/parameters.c b/app/test-pmd/parameters.c
index 28db8cd..4d5be7d 100644
--- a/app/test-pmd/parameters.c
+++ b/app/test-pmd/parameters.c
@@ -149,7 +149,7 @@ 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");
-	printf("  --crc-strip: enable CRC stripping by hardware.\n");
+	printf("  --disable-crc-strip: disable 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");
@@ -526,7 +526,7 @@ 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 },
-		{ "crc-strip",                  0, 0, 0 },
+		{ "disable-crc-strip",                  0, 0, 0 },
 		{ "enable-lro",                 0, 0, 0 },
 		{ "enable-rx-cksum",            0, 0, 0 },
 		{ "enable-scatter",             0, 0, 0 },
@@ -766,8 +766,8 @@ launch_args_parse(int argc, char** argv)
 						 "drop queue %d invalid - must"
 						 "be >= 0 \n", n);
 			}
-			if (!strcmp(lgopts[opt_idx].name, "crc-strip"))
-				rx_mode.hw_strip_crc = 1;
+			if (!strcmp(lgopts[opt_idx].name, "disable-crc-strip"))
+				rx_mode.hw_strip_crc = 0;
 			if (!strcmp(lgopts[opt_idx].name, "enable-lro"))
 				rx_mode.enable_lro = 1;
 			if (!strcmp(lgopts[opt_idx].name, "enable-scatter"))
diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
index e04e215..1ed72de 100644
--- a/app/test-pmd/testpmd.c
+++ b/app/test-pmd/testpmd.c
@@ -284,7 +284,7 @@ struct rte_eth_rxmode rx_mode = {
 	.hw_vlan_strip  = 1, /**< VLAN strip enabled. */
 	.hw_vlan_extend = 0, /**< Extended VLAN disabled. */
 	.jumbo_frame    = 0, /**< Jumbo Frame Support disabled. */
-	.hw_strip_crc   = 0, /**< CRC stripping by hardware disabled. */
+	.hw_strip_crc   = 1, /**< CRC stripping by hardware enabled. */
 };
 
 struct rte_fdir_conf fdir_conf = {
diff --git a/doc/guides/howto/virtio_user_as_exceptional_path.rst b/doc/guides/howto/virtio_user_as_exceptional_path.rst
index 939ced9..887a8c9 100644
--- a/doc/guides/howto/virtio_user_as_exceptional_path.rst
+++ b/doc/guides/howto/virtio_user_as_exceptional_path.rst
@@ -84,7 +84,7 @@ compiling the kernel and those kernel modules should be inserted.
 
         $(testpmd) -l 2-3 -n 4 \
 		--vdev=virtio_user0,path=/dev/vhost-net,queue_size=1024 \
-		-- -i --txqflags=0x0 --disable-hw-vlan --enable-lro --crc-strip
+		-- -i --txqflags=0x0 --disable-hw-vlan --enable-lro
 		--enable-rx-cksum --rxd=1024 --txd=1024
 
     This command runs testpmd with two ports, one physical NIC to communicate
@@ -114,7 +114,7 @@ compiling the kernel and those kernel modules should be inserted.
         $(testpmd) -l 2-3 -n 4 \
 		--vdev=virtio_user0,path=/dev/vhost-net,queues=2,queue_size=1024 \
 		-- -i --txqflags=0x0 --disable-hw-vlan --enable-lro \
-		--crc-strip --enable-rx-cksum --txq=2 --rxq=2 --rxd=1024 \
+		--enable-rx-cksum --txq=2 --rxq=2 --rxd=1024 \
 		--txd=1024
 
 #. Start testpmd:
diff --git a/doc/guides/nics/thunderx.rst b/doc/guides/nics/thunderx.rst
index 1314ee9..462fec8 100644
--- a/doc/guides/nics/thunderx.rst
+++ b/doc/guides/nics/thunderx.rst
@@ -156,7 +156,7 @@ managed by ``librte_pmd_thunderx_nicvf`` in the Linux operating system.
    .. code-block:: console
 
       ./arm64-thunderx-linuxapp-gcc/app/testpmd -l 0-3 -n 4 -w 0002:01:00.2 \
-        -- -i --disable-hw-vlan-filter --crc-strip --no-flush-rx \
+        -- -i --disable-hw-vlan-filter --no-flush-rx \
         --port-topology=loop
 
    Example output:
diff --git a/doc/guides/testpmd_app_ug/run_app.rst b/doc/guides/testpmd_app_ug/run_app.rst
index d1fabef..c38681e 100644
--- a/doc/guides/testpmd_app_ug/run_app.rst
+++ b/doc/guides/testpmd_app_ug/run_app.rst
@@ -281,7 +281,7 @@ The commandline options are:
     In perfect filter mode, when a rule is added with queue = -1, the packet will be enqueued into the RX drop-queue.
     If the drop-queue does not exist, the packet is dropped. The default value is N=127.
 
-*   ``--crc-strip``
+*   ``--disable-crc-strip``
 
     Enable hardware CRC stripping.
 
diff --git a/doc/guides/testpmd_app_ug/testpmd_funcs.rst b/doc/guides/testpmd_app_ug/testpmd_funcs.rst
index bdc6a14..7edf13c 100644
--- a/doc/guides/testpmd_app_ug/testpmd_funcs.rst
+++ b/doc/guides/testpmd_app_ug/testpmd_funcs.rst
@@ -1330,9 +1330,9 @@ Set hardware CRC stripping on or off for all ports::
 
    testpmd> port config all crc-strip (on|off)
 
-CRC stripping is off by default.
+CRC stripping is on by default.
 
-The ``on`` option is equivalent to the ``--crc-strip`` command-line option.
+The ``off`` option is equivalent to the ``--disable-crc-strip`` command-line option.
 
 port config - scatter
 ~~~~~~~~~~~~~~~~~~~~~~~
-- 
2.7.4



More information about the dev mailing list