app/testpmd: fix flow tunnel create command
Checks
Commit Message
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(-)
Comments
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,
> },
>
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,
> > },
> >
@@ -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,
},