patches for DPDK stable branches
 help / color / mirror / Atom feed
From: "Zhang,Alvin" <alvinx.zhang@intel.com>
To: ferruh.yigit@intel.com
Cc: dev@dpdk.org, Alvin Zhang <alvinx.zhang@intel.com>, stable@dpdk.org
Subject: [dpdk-stable] [PATCH] app/testpmd: fix RSS key
Date: Mon, 18 Jan 2021 16:59:37 +0800
Message-ID: <20210118085937.12072-1-alvinx.zhang@intel.com> (raw)

From: Alvin Zhang <alvinx.zhang@intel.com>

Since the patch '1848b117' has set the value of key in 'struct
rte_flow_action_rss' to NULL, the PMD cannot get the RSS key now.

This patch sets offset and size of the key pointer as the first
parameter of the token 'key' and copies the start address of the
'HEX' data to the location specified by the first parameter of
the token.

Fixes: 1848b117cca1 ("app/testpmd: fix RSS key for flow API RSS rule")
Cc: stable@dpdk.org

Signed-off-by: Alvin Zhang <alvinx.zhang@intel.com>
---
 app/test-pmd/cmdline_flow.c | 24 +++++++++++++-----------
 1 file changed, 13 insertions(+), 11 deletions(-)

diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c
index 585cab9..6eb46d3 100644
--- a/app/test-pmd/cmdline_flow.c
+++ b/app/test-pmd/cmdline_flow.c
@@ -3403,7 +3403,10 @@ static int comp_set_sample_index(struct context *, const struct token *,
 		.name = "key",
 		.help = "RSS hash key",
 		.next = NEXT(action_rss, NEXT_ENTRY(HEX)),
-		.args = ARGS(ARGS_ENTRY_ARB(0, 0),
+		.args = ARGS(ARGS_ENTRY_ARB
+			     (offsetof(struct action_rss_data, conf) +
+			      offsetof(struct rte_flow_action_rss, key),
+			      sizeof(((struct rte_flow_action_rss *)0)->key)),
 			     ARGS_ENTRY_ARB
 			     (offsetof(struct action_rss_data, conf) +
 			      offsetof(struct rte_flow_action_rss, key_len),
@@ -6495,19 +6498,18 @@ static int comp_set_sample_index(struct context *, const struct token *,
 	if (ctx->objmask)
 		memset((uint8_t *)ctx->objmask + arg_data->offset,
 					0xff, hexlen);
+
 	/* Save address if requested. */
 	if (arg_addr->size) {
-		memcpy((uint8_t *)ctx->object + arg_addr->offset,
-		       (void *[]){
-			(uint8_t *)ctx->object + arg_data->offset
-		       },
-		       arg_addr->size);
+		if (arg_addr->size < sizeof(void *))
+			goto error;
+
+		*(void **)((uint8_t *)ctx->object + arg_addr->offset) =
+				(uint8_t *)ctx->object + arg_data->offset;
+
 		if (ctx->objmask)
-			memcpy((uint8_t *)ctx->objmask + arg_addr->offset,
-			       (void *[]){
-				(uint8_t *)ctx->objmask + arg_data->offset
-			       },
-			       arg_addr->size);
+			*(void **)((uint8_t *)ctx->objmask + arg_addr->offset) =
+				(uint8_t *)ctx->objmask + arg_data->offset;
 	}
 	return len;
 error:
-- 
1.8.3.1


             reply	other threads:[~2021-01-18  8:59 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-18  8:59 Zhang,Alvin [this message]
2021-01-19 19:14 ` Ferruh Yigit
2021-01-21  9:35   ` Zhang, AlvinX
2021-01-21  9:41 ` [dpdk-stable] [PATCH v2] " Zhang,Alvin
2021-01-22  5:43   ` [dpdk-stable] [dpdk-dev] " Zhou, JunX W
2021-01-22 14:58     ` Ferruh Yigit
  -- strict thread matches above, loose matches on Subject: below --
2020-12-30  5:29 [dpdk-stable] [PATCH] " Zhang,Alvin

Reply instructions:

You may reply publicly 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=20210118085937.12072-1-alvinx.zhang@intel.com \
    --to=alvinx.zhang@intel.com \
    --cc=dev@dpdk.org \
    --cc=ferruh.yigit@intel.com \
    --cc=stable@dpdk.org \
    /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

patches for DPDK stable branches

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://inbox.dpdk.org/stable/0 stable/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 stable stable/ https://inbox.dpdk.org/stable \
		stable@dpdk.org
	public-inbox-index stable

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://inbox.dpdk.org/inbox.dpdk.stable


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