DPDK patches and discussions
 help / color / mirror / Atom feed
* Re: [dpdk-dev] [PATCH v17 08/10] app/testpmd: add command to set supported ptype mask
@ 2019-11-11 14:59 Pavan Nikhilesh Bhagavatula
  0 siblings, 0 replies; 3+ messages in thread
From: Pavan Nikhilesh Bhagavatula @ 2019-11-11 14:59 UTC (permalink / raw)
  To: Ferruh Yigit, arybchenko, Jerin Jacob Kollanukkaran, thomas,
	Wenzhuo Lu, Jingjing Wu, Bernard Iremonger, John McNamara,
	Marko Kovacevic
  Cc: dev

>On 11/11/2019 1:19 PM, pbhagavatula@marvell.com wrote:
>> From: Pavan Nikhilesh <pbhagavatula@marvell.com>
>>
>> Add command to set supported ptype mask.
>> Usage:
>> 	set port <port_id> ptype_mask <ptype_mask>
>>
>> Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
>
><...>
>
>> +set port supported ptypes
>> +~~~~~~~~~~~~~~~~~~~~~~~~~
>> +
>> +set packet types classification for a specific port::
>> +
>> +   testpmd> set port (port_id) ptypes_mask (mask)
>> +
>>  show device info
>>  ~~~~~~~~~~~~~~~~
>>
>
>When I run the command [1] on a device that doesn't support it, I am
>getting:
>"Successfully set following ptypes for Port 0"
>
>I still think this is wrong and we should fix it, and introduce '-ENOTSUP'
>to
>'rte_eth_dev_set_ptypes()' as other APIs. Since the API is experimental
>we can
>do it later for sake of making the set for rc2.
>
>Can we please keep tracing the discussion for this one for rc3?

Agreed we can continue the discussion for -ENOTSUP in rc3. 
I will send a patch if everyone agrees on -ENOTSUP.

>
>[1]
>testpmd> set port 0 ptype_mask 0

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [dpdk-dev] [PATCH v17 08/10] app/testpmd: add command to set supported ptype mask
  2019-11-11 13:19   ` [dpdk-dev] [PATCH v17 08/10] app/testpmd: add command to set supported ptype mask pbhagavatula
@ 2019-11-11 14:51     ` Ferruh Yigit
  0 siblings, 0 replies; 3+ messages in thread
From: Ferruh Yigit @ 2019-11-11 14:51 UTC (permalink / raw)
  To: pbhagavatula, arybchenko, jerinj, thomas, Wenzhuo Lu,
	Jingjing Wu, Bernard Iremonger, John McNamara, Marko Kovacevic
  Cc: dev

On 11/11/2019 1:19 PM, pbhagavatula@marvell.com wrote:
> From: Pavan Nikhilesh <pbhagavatula@marvell.com>
> 
> Add command to set supported ptype mask.
> Usage:
> 	set port <port_id> ptype_mask <ptype_mask>
> 
> Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>

<...>

> +set port supported ptypes
> +~~~~~~~~~~~~~~~~~~~~~~~~~
> +
> +set packet types classification for a specific port::
> +
> +   testpmd> set port (port_id) ptypes_mask (mask)
> +
>  show device info
>  ~~~~~~~~~~~~~~~~
>  

When I run the command [1] on a device that doesn't support it, I am getting:
"Successfully set following ptypes for Port 0"

I still think this is wrong and we should fix it, and introduce '-ENOTSUP' to
'rte_eth_dev_set_ptypes()' as other APIs. Since the API is experimental we can
do it later for sake of making the set for rc2.

Can we please keep tracing the discussion for this one for rc3?

[1]
testpmd> set port 0 ptype_mask 0

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [dpdk-dev] [PATCH v17 08/10] app/testpmd: add command to set supported ptype mask
  2019-11-11 13:19 ` [dpdk-dev] [PATCH v17 00/10] " pbhagavatula
@ 2019-11-11 13:19   ` pbhagavatula
  2019-11-11 14:51     ` Ferruh Yigit
  0 siblings, 1 reply; 3+ messages in thread
From: pbhagavatula @ 2019-11-11 13:19 UTC (permalink / raw)
  To: ferruh.yigit, arybchenko, jerinj, thomas, Wenzhuo Lu,
	Jingjing Wu, Bernard Iremonger, John McNamara, Marko Kovacevic
  Cc: dev, Pavan Nikhilesh

From: Pavan Nikhilesh <pbhagavatula@marvell.com>

Add command to set supported ptype mask.
Usage:
	set port <port_id> ptype_mask <ptype_mask>

Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
---
 app/test-pmd/cmdline.c                      | 84 +++++++++++++++++++++
 doc/guides/testpmd_app_ug/testpmd_funcs.rst |  7 ++
 2 files changed, 91 insertions(+)

diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index 48627c8aa..da556f91e 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -671,6 +671,9 @@ static void cmd_help_long_parsed(void *parsed_result,
 			"ptype mapping update (port_id) (hw_ptype) (sw_ptype)\n"
 			"    Update a ptype mapping item on a port\n\n"
 
+			"set port (port_id) ptype_mask (ptype_mask)\n"
+			"    set packet types classification for a specific port\n\n"
+
 			"set port (port_id) queue-region region_id (value) "
 			"queue_start_index (value) queue_num (value)\n"
 			"    Set a queue region on a port\n\n"
@@ -19015,6 +19018,86 @@ cmdline_parse_inst_t cmd_show_rx_tx_desc_status = {
 	},
 };
 
+/* Common result structure for set port ptypes */
+struct cmd_set_port_ptypes_result {
+	cmdline_fixed_string_t set;
+	cmdline_fixed_string_t port;
+	portid_t port_id;
+	cmdline_fixed_string_t ptype_mask;
+	uint32_t mask;
+};
+
+/* Common CLI fields for set port ptypes */
+cmdline_parse_token_string_t cmd_set_port_ptypes_set =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_set_port_ptypes_result,
+		 set, "set");
+cmdline_parse_token_string_t cmd_set_port_ptypes_port =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_set_port_ptypes_result,
+		 port, "port");
+cmdline_parse_token_num_t cmd_set_port_ptypes_port_id =
+	TOKEN_NUM_INITIALIZER
+		(struct cmd_set_port_ptypes_result,
+		 port_id, UINT16);
+cmdline_parse_token_string_t cmd_set_port_ptypes_mask_str =
+	TOKEN_STRING_INITIALIZER
+		(struct cmd_set_port_ptypes_result,
+		 ptype_mask, "ptype_mask");
+cmdline_parse_token_num_t cmd_set_port_ptypes_mask_u32 =
+	TOKEN_NUM_INITIALIZER
+		(struct cmd_set_port_ptypes_result,
+		 mask, UINT32);
+
+static void
+cmd_set_port_ptypes_parsed(
+	void *parsed_result,
+	__attribute__((unused)) struct cmdline *cl,
+	__attribute__((unused)) void *data)
+{
+	struct cmd_set_port_ptypes_result *res = parsed_result;
+#define PTYPE_NAMESIZE        256
+	char ptype_name[PTYPE_NAMESIZE];
+	uint16_t port_id = res->port_id;
+	uint32_t ptype_mask = res->mask;
+	int ret, i;
+
+	ret = rte_eth_dev_get_supported_ptypes(port_id, RTE_PTYPE_ALL_MASK,
+					       NULL, 0);
+	if (ret <= 0) {
+		printf("Port %d doesn't support any ptypes.\n", port_id);
+		return;
+	}
+
+	uint32_t ptypes[ret];
+
+	ret = rte_eth_dev_set_ptypes(port_id, ptype_mask, ptypes, ret);
+	if (ret < 0) {
+		printf("Unable to set requested ptypes for Port %d\n", port_id);
+		return;
+	}
+
+	printf("Successfully set following ptypes for Port %d\n", port_id);
+	for (i = 0; i < ret && ptypes[i] != RTE_PTYPE_UNKNOWN; i++) {
+		rte_get_ptype_name(ptypes[i], ptype_name, sizeof(ptype_name));
+		printf("%s\n", ptype_name);
+	}
+}
+
+cmdline_parse_inst_t cmd_set_port_ptypes = {
+	.f = cmd_set_port_ptypes_parsed,
+	.data = NULL,
+	.help_str = "set port <port_id> ptype_mask <mask>",
+	.tokens = {
+		(void *)&cmd_set_port_ptypes_set,
+		(void *)&cmd_set_port_ptypes_port,
+		(void *)&cmd_set_port_ptypes_port_id,
+		(void *)&cmd_set_port_ptypes_mask_str,
+		(void *)&cmd_set_port_ptypes_mask_u32,
+		NULL,
+	},
+};
+
 /* ******************************************************************************** */
 
 /* list of instructions */
@@ -19254,6 +19337,7 @@ cmdline_parse_ctx_t main_ctx[] = {
 	(cmdline_parse_inst_t *)&cmd_show_vf_stats,
 	(cmdline_parse_inst_t *)&cmd_clear_vf_stats,
 	(cmdline_parse_inst_t *)&cmd_show_port_supported_ptypes,
+	(cmdline_parse_inst_t *)&cmd_set_port_ptypes,
 	(cmdline_parse_inst_t *)&cmd_ptype_mapping_get,
 	(cmdline_parse_inst_t *)&cmd_ptype_mapping_replace,
 	(cmdline_parse_inst_t *)&cmd_ptype_mapping_reset,
diff --git a/doc/guides/testpmd_app_ug/testpmd_funcs.rst b/doc/guides/testpmd_app_ug/testpmd_funcs.rst
index 9a5e5cb05..c331b4d90 100644
--- a/doc/guides/testpmd_app_ug/testpmd_funcs.rst
+++ b/doc/guides/testpmd_app_ug/testpmd_funcs.rst
@@ -480,6 +480,13 @@ Show ptypes supported for a specific port::
 
    testpmd> show port (port_id) ptypes
 
+set port supported ptypes
+~~~~~~~~~~~~~~~~~~~~~~~~~
+
+set packet types classification for a specific port::
+
+   testpmd> set port (port_id) ptypes_mask (mask)
+
 show device info
 ~~~~~~~~~~~~~~~~
 
-- 
2.17.1


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2019-11-11 14:59 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-11-11 14:59 [dpdk-dev] [PATCH v17 08/10] app/testpmd: add command to set supported ptype mask Pavan Nikhilesh Bhagavatula
  -- strict thread matches above, loose matches on Subject: below --
2019-11-06 19:17 [dpdk-dev] [PATCH v16 0/8] ethdev: add new Rx offload flags pbhagavatula
2019-11-11 13:19 ` [dpdk-dev] [PATCH v17 00/10] " pbhagavatula
2019-11-11 13:19   ` [dpdk-dev] [PATCH v17 08/10] app/testpmd: add command to set supported ptype mask pbhagavatula
2019-11-11 14:51     ` Ferruh Yigit

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).