DPDK-dev Archive on lore.kernel.org
 help / color / Atom feed
From: Ting Xu <ting.xu@intel.com>
To: dev@dpdk.org
Cc: wenzhuo.lu@intel.com, jingjing.wu@intel.com,
	bernard.iremonger@intel.com, stable@dpdk.org
Subject: [dpdk-dev] [PATCH v1] app/testpmd: fix CRC strip config error
Date: Sat, 12 Oct 2019 12:18:35 +0000
Message-ID: <22fa727a2ce09834133530c40cb02666e0be10ba.1570882485.git.ting.xu@intel.com> (raw)

This patch fixed the bug that an error appears when config rx_offload
crc_strip using command "port config all crc-strip on|off". The reason
is that this command was removed previously. However, the current command
does not enable "crc_strip" option properly, so that testpmd returns
error when config crc_strip.

In this patch, an additional operation is added to recognize "crc_strip"
option, since "crc_strip" and "keep_crc" are using the same flag
"DEV_RX_OFFLOAD_KEEP_CRC". The current command is "port config
<port_id> rx_offload crc_strip on|off".

Fixes: e5db17a1e54e ("app/testpmd: remove duplicated Rx offload commands")
Cc: stable@dpdk.org

Signed-off-by: Ting Xu <ting.xu@intel.com>
---
 app/test-pmd/cmdline.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index def471d97..31dbe4a07 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -18084,6 +18084,9 @@ search_rx_offload(const char *name)
 	int found = 0;
 	unsigned int bit;
 
+	if (!strcmp(name, "crc_strip"))
+		name = "keep_crc";
+
 	single_offload = 1;
 	for (bit = 0; bit < sizeof(single_offload) * CHAR_BIT; bit++) {
 		single_name = rte_eth_dev_rx_offload_name(single_offload);
@@ -18113,6 +18116,7 @@ cmd_config_per_port_rx_offload_parsed(void *parsed_result,
 	uint16_t nb_rx_queues;
 	int q;
 	int ret;
+	int res_on_off = 1;
 
 	if (port->port_status != RTE_PORT_STOPPED) {
 		printf("Error: Can't config offload when Port %d "
@@ -18131,7 +18135,11 @@ cmd_config_per_port_rx_offload_parsed(void *parsed_result,
 		return;
 
 	nb_rx_queues = dev_info.nb_rx_queues;
-	if (!strcmp(res->on_off, "on")) {
+	res_on_off = strcmp(res->on_off, "on");
+
+	if (!strcmp(res->offload, "crc_strip"))
+		res_on_off = ~res_on_off;
+	if (!res_on_off) {
 		port->dev_conf.rxmode.offloads |= single_offload;
 		for (q = 0; q < nb_rx_queues; q++)
 			port->rx_conf[q].offloads |= single_offload;
-- 
2.17.1


             reply index

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-12 12:18 Ting Xu [this message]
2019-10-14 11:25 ` Iremonger, Bernard
2019-10-14 11:41   ` Iremonger, Bernard
2019-10-15  1:03     ` Xu, Ting
2019-10-14 12:28 ` [dpdk-dev] [dpdk-stable] " Ferruh Yigit
2019-10-15  0:49   ` Xu, Ting
2019-10-15  9:14 ` [dpdk-dev] [PATCH v2] app/testpmd: fix CRC strip command failure Ting Xu
2019-10-15  9:40   ` Iremonger, Bernard
2019-10-15 13:13     ` [dpdk-dev] [dpdk-stable] " Ferruh Yigit

Reply instructions:

You may reply publically to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=22fa727a2ce09834133530c40cb02666e0be10ba.1570882485.git.ting.xu@intel.com \
    --to=ting.xu@intel.com \
    --cc=bernard.iremonger@intel.com \
    --cc=dev@dpdk.org \
    --cc=jingjing.wu@intel.com \
    --cc=stable@dpdk.org \
    --cc=wenzhuo.lu@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

DPDK-dev Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/dpdk-dev/0 dpdk-dev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 dpdk-dev dpdk-dev/ https://lore.kernel.org/dpdk-dev \
		dev@dpdk.org dpdk-dev@archiver.kernel.org
	public-inbox-index dpdk-dev

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.dpdk.dev


AGPL code for this site: git clone https://public-inbox.org/ public-inbox