DPDK patches and discussions
 help / color / Atom feed
* [dpdk-dev] [PATCH] app/testpmd: fix flow tunnel create command
@ 2020-11-15 11:23 Gregory Etelson
  2020-11-17 12:51 ` Ferruh Yigit
  2020-11-19 11:10 ` [dpdk-dev] [PATCH v2] app/testpmd: fix flow tunnel commands Gregory Etelson
  0 siblings, 2 replies; 6+ messages in thread
From: Gregory Etelson @ 2020-11-15 11:23 UTC (permalink / raw)
  To: dev
  Cc: getelson, matan, rasland, Ori Kam, Wenzhuo Lu, Beilei Xing,
	Bernard Iremonger

testpmd provides commands to test tunnel offload rte_flow
capabilities. A command that creates a tunnel had a syntax bug that
allowed to spesify the 'create' command part several times.

Current patch fixed that fault. Correct syntax for tunnel cretion is:
testpmd> flow tunnel create <port> type <tunnel type>

Signed-off-by: Gregory Etelson <getelson@nvidia.com>
Acked-by: Ori Kam <orika@nvidia.com>
---
 app/test-pmd/cmdline_flow.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c
index 457f74078d..bf00ba0acb 100644
--- a/app/test-pmd/cmdline_flow.c
+++ b/app/test-pmd/cmdline_flow.c
@@ -812,8 +812,7 @@ static const enum index next_vc_attr[] = {
 	ZERO,
 };
 
-static const enum index tunnel_create_attr[] = {
-	TUNNEL_CREATE,
+static const enum index tunnel_create_type_attr[] = {
 	TUNNEL_CREATE_TYPE,
 	END,
 	ZERO,
@@ -2009,14 +2008,15 @@ static const struct token token_list[] = {
 	[TUNNEL_CREATE] = {
 		.name = "create",
 		.help = "create new tunnel object",
-		.next = NEXT(tunnel_create_attr, NEXT_ENTRY(PORT_ID)),
+		.next = NEXT(NEXT_ENTRY(TUNNEL_CREATE_TYPE),
+			     NEXT_ENTRY(PORT_ID)),
 		.args = ARGS(ARGS_ENTRY(struct buffer, port)),
 		.call = parse_tunnel,
 	},
 	[TUNNEL_CREATE_TYPE] = {
 		.name = "type",
 		.help = "create new tunnel",
-		.next = NEXT(tunnel_create_attr, NEXT_ENTRY(FILE_PATH)),
+		.next = NEXT(tunnel_create_type_attr, NEXT_ENTRY(FILE_PATH)),
 		.args = ARGS(ARGS_ENTRY(struct tunnel_ops, type)),
 		.call = parse_tunnel,
 	},
-- 
2.29.2


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

* Re: [dpdk-dev] [PATCH] app/testpmd: fix flow tunnel create command
  2020-11-15 11:23 [dpdk-dev] [PATCH] app/testpmd: fix flow tunnel create command Gregory Etelson
@ 2020-11-17 12:51 ` Ferruh Yigit
  2020-11-17 13:46   ` Gregory Etelson
  2020-11-19 11:10 ` [dpdk-dev] [PATCH v2] app/testpmd: fix flow tunnel commands Gregory Etelson
  1 sibling, 1 reply; 6+ messages in thread
From: Ferruh Yigit @ 2020-11-17 12:51 UTC (permalink / raw)
  To: Gregory Etelson, dev
  Cc: matan, rasland, Ori Kam, Wenzhuo Lu, Beilei Xing, Bernard Iremonger

On 11/15/2020 11:23 AM, Gregory Etelson wrote:
> testpmd provides commands to test tunnel offload rte_flow
> capabilities. A command that creates a tunnel had a syntax bug that
> allowed to spesify the 'create' command part several times.
> 
> Current patch fixed that fault. Correct syntax for tunnel cretion is:
> testpmd> flow tunnel create <port> type <tunnel type>
> 

multiple times 'type' still supported, is it intentional:
flow tunnel create 0 type "a" type "b" type "c"

Also 'list' and 'destroy' can be issued multiple times, is it a valid usage:
flow tunnel list 0 list 0 list 0
flow tunnel destroy 0 destroy 0 destroy 0
flow tunnel destroy 0 id 0 id 1 id 2
flow tunnel destroy 0 id 0 destroy 0 id 1 id 2 destroy 0

> Signed-off-by: Gregory Etelson <getelson@nvidia.com>
> Acked-by: Ori Kam <orika@nvidia.com>
> ---
>   app/test-pmd/cmdline_flow.c | 8 ++++----
>   1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c
> index 457f74078d..bf00ba0acb 100644
> --- a/app/test-pmd/cmdline_flow.c
> +++ b/app/test-pmd/cmdline_flow.c
> @@ -812,8 +812,7 @@ static const enum index next_vc_attr[] = {
>   	ZERO,
>   };
>   
> -static const enum index tunnel_create_attr[] = {
> -	TUNNEL_CREATE,
> +static const enum index tunnel_create_type_attr[] = {
>   	TUNNEL_CREATE_TYPE,
>   	END,
>   	ZERO,
> @@ -2009,14 +2008,15 @@ static const struct token token_list[] = {
>   	[TUNNEL_CREATE] = {
>   		.name = "create",
>   		.help = "create new tunnel object",
> -		.next = NEXT(tunnel_create_attr, NEXT_ENTRY(PORT_ID)),
> +		.next = NEXT(NEXT_ENTRY(TUNNEL_CREATE_TYPE),
> +			     NEXT_ENTRY(PORT_ID)),
>   		.args = ARGS(ARGS_ENTRY(struct buffer, port)),
>   		.call = parse_tunnel,
>   	},
>   	[TUNNEL_CREATE_TYPE] = {
>   		.name = "type",
>   		.help = "create new tunnel",
> -		.next = NEXT(tunnel_create_attr, NEXT_ENTRY(FILE_PATH)),
> +		.next = NEXT(tunnel_create_type_attr, NEXT_ENTRY(FILE_PATH)),
>   		.args = ARGS(ARGS_ENTRY(struct tunnel_ops, type)),
>   		.call = parse_tunnel,
>   	},
> 


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

* Re: [dpdk-dev] [PATCH] app/testpmd: fix flow tunnel create command
  2020-11-17 12:51 ` Ferruh Yigit
@ 2020-11-17 13:46   ` Gregory Etelson
  0 siblings, 0 replies; 6+ messages in thread
From: Gregory Etelson @ 2020-11-17 13:46 UTC (permalink / raw)
  To: Ferruh Yigit, dev
  Cc: Matan Azrad, Raslan Darawsheh, Ori Kam, Wenzhuo Lu, Beilei Xing,
	Bernard Iremonger

Hello Ferruh,

> On 11/15/2020 11:23 AM, Gregory Etelson wrote:
> > testpmd provides commands to test tunnel offload rte_flow
> > capabilities. A command that creates a tunnel had a syntax bug that
> > allowed to spesify the 'create' command part several times.
> >
> > Current patch fixed that fault. Correct syntax for tunnel cretion is:
> > testpmd> flow tunnel create <port> type <tunnel type>
> >
> 
> multiple times 'type' still supported, is it intentional:
> flow tunnel create 0 type "a" type "b" type "c"
> 
> Also 'list' and 'destroy' can be issued multiple times, is it a valid
> usage:
> flow tunnel list 0 list 0 list 0
> flow tunnel destroy 0 destroy 0 destroy 0 flow tunnel destroy 0 id 0 id 1
> id 2 flow tunnel destroy 0 id 0 destroy 0 id 1 id 2 destroy 0
> 

I'll post a new patch with a fix.

Regards,
Gregory

> > Signed-off-by: Gregory Etelson <getelson@nvidia.com>
> > Acked-by: Ori Kam <orika@nvidia.com>
> > ---
> >   app/test-pmd/cmdline_flow.c | 8 ++++----
> >   1 file changed, 4 insertions(+), 4 deletions(-)
> >
> > diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c
> > index 457f74078d..bf00ba0acb 100644
> > --- a/app/test-pmd/cmdline_flow.c
> > +++ b/app/test-pmd/cmdline_flow.c
> > @@ -812,8 +812,7 @@ static const enum index next_vc_attr[] = {
> >       ZERO,
> >   };
> >
> > -static const enum index tunnel_create_attr[] = {
> > -     TUNNEL_CREATE,
> > +static const enum index tunnel_create_type_attr[] = {
> >       TUNNEL_CREATE_TYPE,
> >       END,
> >       ZERO,
> > @@ -2009,14 +2008,15 @@ static const struct token token_list[] = {
> >       [TUNNEL_CREATE] = {
> >               .name = "create",
> >               .help = "create new tunnel object",
> > -             .next = NEXT(tunnel_create_attr, NEXT_ENTRY(PORT_ID)),
> > +             .next = NEXT(NEXT_ENTRY(TUNNEL_CREATE_TYPE),
> > +                          NEXT_ENTRY(PORT_ID)),
> >               .args = ARGS(ARGS_ENTRY(struct buffer, port)),
> >               .call = parse_tunnel,
> >       },
> >       [TUNNEL_CREATE_TYPE] = {
> >               .name = "type",
> >               .help = "create new tunnel",
> > -             .next = NEXT(tunnel_create_attr, NEXT_ENTRY(FILE_PATH)),
> > +             .next = NEXT(tunnel_create_type_attr,
> > + NEXT_ENTRY(FILE_PATH)),
> >               .args = ARGS(ARGS_ENTRY(struct tunnel_ops, type)),
> >               .call = parse_tunnel,
> >       },
> >


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

* [dpdk-dev] [PATCH v2] app/testpmd: fix flow tunnel commands
  2020-11-15 11:23 [dpdk-dev] [PATCH] app/testpmd: fix flow tunnel create command Gregory Etelson
  2020-11-17 12:51 ` Ferruh Yigit
@ 2020-11-19 11:10 ` Gregory Etelson
  2020-11-19 16:50   ` Ori Kam
  1 sibling, 1 reply; 6+ messages in thread
From: Gregory Etelson @ 2020-11-19 11:10 UTC (permalink / raw)
  To: dev
  Cc: getelson, matan, rasland, ferruh.yigit, Ori Kam, Wenzhuo Lu,
	Beilei Xing, Bernard Iremonger

testpmd provides commands to test tunnel offload rte_flow
capabilities. Testpmd tunnel commands allow to configure new ofloaded
tunnel types, list existing offloaded tunnels and destroy existing
offloaded tunnels.
Tunnel offload commands allowed parameters repetition. For example,
the following commands were accepted:
testpmd> flow tunnel create 0 create 1 type vxlan
or
testpmd> flow tunnel list 0 list 1

Current patch fixed that fault. Correct tunnel commands syntax is:
testpmd> flow tunnel create <port> type <tunnel type>
testpmd> flow tunnel list <port>
testpmd> flow tunnel destroy <port> id <tunnel id>

Fixes: 1b9f274623b8 ("app/testpmd: add commands for tunnel offload")

Signed-off-by: Gregory Etelson <getelson@nvidia.com>
---
 app/test-pmd/cmdline_flow.c | 32 +++++++-------------------------
 1 file changed, 7 insertions(+), 25 deletions(-)

diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c
index 457f74078d..585cab98b4 100644
--- a/app/test-pmd/cmdline_flow.c
+++ b/app/test-pmd/cmdline_flow.c
@@ -812,26 +812,6 @@ static const enum index next_vc_attr[] = {
 	ZERO,
 };
 
-static const enum index tunnel_create_attr[] = {
-	TUNNEL_CREATE,
-	TUNNEL_CREATE_TYPE,
-	END,
-	ZERO,
-};
-
-static const enum index tunnel_destroy_attr[] = {
-	TUNNEL_DESTROY,
-	TUNNEL_DESTROY_ID,
-	END,
-	ZERO,
-};
-
-static const enum index tunnel_list_attr[] = {
-	TUNNEL_LIST,
-	END,
-	ZERO,
-};
-
 static const enum index next_destroy_attr[] = {
 	DESTROY_RULE,
 	END,
@@ -2009,35 +1989,37 @@ static const struct token token_list[] = {
 	[TUNNEL_CREATE] = {
 		.name = "create",
 		.help = "create new tunnel object",
-		.next = NEXT(tunnel_create_attr, NEXT_ENTRY(PORT_ID)),
+		.next = NEXT(NEXT_ENTRY(TUNNEL_CREATE_TYPE),
+			     NEXT_ENTRY(PORT_ID)),
 		.args = ARGS(ARGS_ENTRY(struct buffer, port)),
 		.call = parse_tunnel,
 	},
 	[TUNNEL_CREATE_TYPE] = {
 		.name = "type",
 		.help = "create new tunnel",
-		.next = NEXT(tunnel_create_attr, NEXT_ENTRY(FILE_PATH)),
+		.next = NEXT(NEXT_ENTRY(FILE_PATH)),
 		.args = ARGS(ARGS_ENTRY(struct tunnel_ops, type)),
 		.call = parse_tunnel,
 	},
 	[TUNNEL_DESTROY] = {
 		.name = "destroy",
 		.help = "destroy tunel",
-		.next = NEXT(tunnel_destroy_attr, NEXT_ENTRY(PORT_ID)),
+		.next = NEXT(NEXT_ENTRY(TUNNEL_DESTROY_ID),
+			     NEXT_ENTRY(PORT_ID)),
 		.args = ARGS(ARGS_ENTRY(struct buffer, port)),
 		.call = parse_tunnel,
 	},
 	[TUNNEL_DESTROY_ID] = {
 		.name = "id",
 		.help = "tunnel identifier to testroy",
-		.next = NEXT(tunnel_destroy_attr, NEXT_ENTRY(UNSIGNED)),
+		.next = NEXT(NEXT_ENTRY(UNSIGNED)),
 		.args = ARGS(ARGS_ENTRY(struct tunnel_ops, id)),
 		.call = parse_tunnel,
 	},
 	[TUNNEL_LIST] = {
 		.name = "list",
 		.help = "list existing tunnels",
-		.next = NEXT(tunnel_list_attr, NEXT_ENTRY(PORT_ID)),
+		.next = NEXT(NEXT_ENTRY(PORT_ID)),
 		.args = ARGS(ARGS_ENTRY(struct buffer, port)),
 		.call = parse_tunnel,
 	},
-- 
2.29.2


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

* Re: [dpdk-dev] [PATCH v2] app/testpmd: fix flow tunnel commands
  2020-11-19 11:10 ` [dpdk-dev] [PATCH v2] app/testpmd: fix flow tunnel commands Gregory Etelson
@ 2020-11-19 16:50   ` Ori Kam
  2020-11-19 17:29     ` Ferruh Yigit
  0 siblings, 1 reply; 6+ messages in thread
From: Ori Kam @ 2020-11-19 16:50 UTC (permalink / raw)
  To: Gregory Etelson, dev
  Cc: Matan Azrad, Raslan Darawsheh, ferruh.yigit, Wenzhuo Lu,
	Beilei Xing, Bernard Iremonger

Hi Gregory,

> -----Original Message-----
> From: Gregory Etelson <getelson@nvidia.com>
> Sent: Thursday, November 19, 2020 1:10 PM
> Subject: [PATCH v2] app/testpmd: fix flow tunnel commands
> 
> testpmd provides commands to test tunnel offload rte_flow
> capabilities. Testpmd tunnel commands allow to configure new ofloaded
> tunnel types, list existing offloaded tunnels and destroy existing
> offloaded tunnels.
> Tunnel offload commands allowed parameters repetition. For example,
> the following commands were accepted:
> testpmd> flow tunnel create 0 create 1 type vxlan
> or
> testpmd> flow tunnel list 0 list 1
> 
> Current patch fixed that fault. Correct tunnel commands syntax is:
> testpmd> flow tunnel create <port> type <tunnel type>
> testpmd> flow tunnel list <port>
> testpmd> flow tunnel destroy <port> id <tunnel id>
> 
> Fixes: 1b9f274623b8 ("app/testpmd: add commands for tunnel offload")
> 
> Signed-off-by: Gregory Etelson <getelson@nvidia.com>
> ---
>  app/test-pmd/cmdline_flow.c | 32 +++++++-------------------------
>  1 file changed, 7 insertions(+), 25 deletions(-)
> 
> diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c
> index 457f74078d..585cab98b4 100644
> --- a/app/test-pmd/cmdline_flow.c
> +++ b/app/test-pmd/cmdline_flow.c
> @@ -812,26 +812,6 @@ static const enum index next_vc_attr[] = {
>  	ZERO,
>  };
> 
> -static const enum index tunnel_create_attr[] = {
> -	TUNNEL_CREATE,
> -	TUNNEL_CREATE_TYPE,
> -	END,
> -	ZERO,
> -};
> -
> -static const enum index tunnel_destroy_attr[] = {
> -	TUNNEL_DESTROY,
> -	TUNNEL_DESTROY_ID,
> -	END,
> -	ZERO,
> -};
> -
> -static const enum index tunnel_list_attr[] = {
> -	TUNNEL_LIST,
> -	END,
> -	ZERO,
> -};
> -
>  static const enum index next_destroy_attr[] = {
>  	DESTROY_RULE,
>  	END,
> @@ -2009,35 +1989,37 @@ static const struct token token_list[] = {
>  	[TUNNEL_CREATE] = {
>  		.name = "create",
>  		.help = "create new tunnel object",
> -		.next = NEXT(tunnel_create_attr, NEXT_ENTRY(PORT_ID)),
> +		.next = NEXT(NEXT_ENTRY(TUNNEL_CREATE_TYPE),
> +			     NEXT_ENTRY(PORT_ID)),
>  		.args = ARGS(ARGS_ENTRY(struct buffer, port)),
>  		.call = parse_tunnel,
>  	},
>  	[TUNNEL_CREATE_TYPE] = {
>  		.name = "type",
>  		.help = "create new tunnel",
> -		.next = NEXT(tunnel_create_attr, NEXT_ENTRY(FILE_PATH)),
> +		.next = NEXT(NEXT_ENTRY(FILE_PATH)),
>  		.args = ARGS(ARGS_ENTRY(struct tunnel_ops, type)),
>  		.call = parse_tunnel,
>  	},
>  	[TUNNEL_DESTROY] = {
>  		.name = "destroy",
>  		.help = "destroy tunel",
> -		.next = NEXT(tunnel_destroy_attr, NEXT_ENTRY(PORT_ID)),
> +		.next = NEXT(NEXT_ENTRY(TUNNEL_DESTROY_ID),
> +			     NEXT_ENTRY(PORT_ID)),
>  		.args = ARGS(ARGS_ENTRY(struct buffer, port)),
>  		.call = parse_tunnel,
>  	},
>  	[TUNNEL_DESTROY_ID] = {
>  		.name = "id",
>  		.help = "tunnel identifier to testroy",
> -		.next = NEXT(tunnel_destroy_attr, NEXT_ENTRY(UNSIGNED)),
> +		.next = NEXT(NEXT_ENTRY(UNSIGNED)),
>  		.args = ARGS(ARGS_ENTRY(struct tunnel_ops, id)),
>  		.call = parse_tunnel,
>  	},
>  	[TUNNEL_LIST] = {
>  		.name = "list",
>  		.help = "list existing tunnels",
> -		.next = NEXT(tunnel_list_attr, NEXT_ENTRY(PORT_ID)),
> +		.next = NEXT(NEXT_ENTRY(PORT_ID)),
>  		.args = ARGS(ARGS_ENTRY(struct buffer, port)),
>  		.call = parse_tunnel,
>  	},
> --
> 2.29.2

Acked-by: Ori Kam <orika@nvidia.com>
Best,
Ori


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

* Re: [dpdk-dev] [PATCH v2] app/testpmd: fix flow tunnel commands
  2020-11-19 16:50   ` Ori Kam
@ 2020-11-19 17:29     ` Ferruh Yigit
  0 siblings, 0 replies; 6+ messages in thread
From: Ferruh Yigit @ 2020-11-19 17:29 UTC (permalink / raw)
  To: Ori Kam, Gregory Etelson, dev
  Cc: Matan Azrad, Raslan Darawsheh, Wenzhuo Lu, Beilei Xing,
	Bernard Iremonger

On 11/19/2020 4:50 PM, Ori Kam wrote:
> Hi Gregory,
> 
>> -----Original Message-----
>> From: Gregory Etelson <getelson@nvidia.com>
>> Sent: Thursday, November 19, 2020 1:10 PM
>> Subject: [PATCH v2] app/testpmd: fix flow tunnel commands
>>
>> testpmd provides commands to test tunnel offload rte_flow
>> capabilities. Testpmd tunnel commands allow to configure new ofloaded
>> tunnel types, list existing offloaded tunnels and destroy existing
>> offloaded tunnels.
>> Tunnel offload commands allowed parameters repetition. For example,
>> the following commands were accepted:
>> testpmd> flow tunnel create 0 create 1 type vxlan
>> or
>> testpmd> flow tunnel list 0 list 1
>>
>> Current patch fixed that fault. Correct tunnel commands syntax is:
>> testpmd> flow tunnel create <port> type <tunnel type>
>> testpmd> flow tunnel list <port>
>> testpmd> flow tunnel destroy <port> id <tunnel id>
>>
>> Fixes: 1b9f274623b8 ("app/testpmd: add commands for tunnel offload")
>>
>> Signed-off-by: Gregory Etelson <getelson@nvidia.com>
> 
> Acked-by: Ori Kam <orika@nvidia.com>
> 

Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>

Applied to dpdk-next-net/main, thanks.

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

end of thread, back to index

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-11-15 11:23 [dpdk-dev] [PATCH] app/testpmd: fix flow tunnel create command Gregory Etelson
2020-11-17 12:51 ` Ferruh Yigit
2020-11-17 13:46   ` Gregory Etelson
2020-11-19 11:10 ` [dpdk-dev] [PATCH v2] app/testpmd: fix flow tunnel commands Gregory Etelson
2020-11-19 16:50   ` Ori Kam
2020-11-19 17:29     ` Ferruh Yigit

DPDK patches and discussions

Archives are clonable:
	git clone --mirror http://inbox.dpdk.org/dev/0 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 dev dev/ http://inbox.dpdk.org/dev \
		dev@dpdk.org
	public-inbox-index dev


Newsgroup available over NNTP:
	nntp://inbox.dpdk.org/inbox.dpdk.dev


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