app/testpmd: fix flow creation parsing

Message ID 20220301224739.3072563-1-akozyrev@nvidia.com (mailing list archive)
State Accepted, archived
Delegated to: Ferruh Yigit
Headers
Series app/testpmd: fix flow creation parsing |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK
ci/intel-Testing success Testing PASS
ci/github-robot: build success github build: passed
ci/iol-mellanox-Performance success Performance Testing PASS
ci/iol-broadcom-Functional success Functional Testing PASS
ci/iol-broadcom-Performance success Performance Testing PASS
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-aarch64-unit-testing success Testing PASS
ci/iol-x86_64-compile-testing success Testing PASS
ci/iol-x86_64-unit-testing success Testing PASS
ci/iol-aarch64-compile-testing success Testing PASS
ci/iol-abi-testing success Testing PASS

Commit Message

Alexander Kozyrev March 1, 2022, 10:47 p.m. UTC
  A pattern template creation shares the parsing mechanism with
a simple flow creation. The pattern template creation only consists
of pattern items while the flow creation continues with actions.
The parsing mechanism now accommodates both cases and allows to stop
at the item end token, which should not happen for the flow creation.
Fix parsing mechanism to differentiate between these two cases.

Bugzilla ID: 941
Fixes: 04cc665fab ("app/testpmd: add flow template management")

Signed-off-by: Alexander Kozyrev <akozyrev@nvidia.com>
---
 app/test-pmd/cmdline_flow.c | 8 ++++++++
 1 file changed, 8 insertions(+)
  

Comments

Ori Kam March 2, 2022, 8:12 a.m. UTC | #1
Hi Alexander,


> -----Original Message-----
> From: Alexander Kozyrev <akozyrev@nvidia.com>
> Subject: [PATCH] app/testpmd: fix flow creation parsing
> 
> A pattern template creation shares the parsing mechanism with
> a simple flow creation. The pattern template creation only consists
> of pattern items while the flow creation continues with actions.
> The parsing mechanism now accommodates both cases and allows to stop
> at the item end token, which should not happen for the flow creation.
> Fix parsing mechanism to differentiate between these two cases.
> 
> Bugzilla ID: 941
> Fixes: 04cc665fab ("app/testpmd: add flow template management")
> 
> Signed-off-by: Alexander Kozyrev <akozyrev@nvidia.com>
> ---
>  app/test-pmd/cmdline_flow.c | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c
> index 4f7a9f17f9..fc4a6d9cca 100644
> --- a/app/test-pmd/cmdline_flow.c
> +++ b/app/test-pmd/cmdline_flow.c
> @@ -6864,6 +6864,14 @@ parse_vc(struct context *ctx, const struct token *token,
>  		ctx->object = out->args.vc.pattern;
>  		ctx->objmask = NULL;
>  		return len;
> +	case ITEM_END:
> +		if ((out->command == VALIDATE || out->command == CREATE) &&
> +		    ctx->last)
> +			return -1;
> +		if (out->command == PATTERN_TEMPLATE_CREATE &&
> +		    !ctx->last)
> +			return -1;
> +		break;
>  	case ACTIONS:
>  		out->args.vc.actions =
>  			(void *)RTE_ALIGN_CEIL((uintptr_t)
> --
> 2.18.2


Acked-by: Ori Kam <orika@nvidia.com>
Thanks,
Ori
  
Huang, ZhiminX March 2, 2022, 8:33 a.m. UTC | #2
> -----Original Message-----
> From: Ori Kam <orika@nvidia.com>
> Sent: Wednesday, March 2, 2022 4:13 PM
> To: Alexander Kozyrev <akozyrev@nvidia.com>; dev@dpdk.org
> Cc: Suanming Mou <suanmingm@nvidia.com>
> Subject: RE: [PATCH] app/testpmd: fix flow creation parsing
> 
> Hi Alexander,
> 
> 
> > -----Original Message-----
> > From: Alexander Kozyrev <akozyrev@nvidia.com>
> > Subject: [PATCH] app/testpmd: fix flow creation parsing
> >
> > A pattern template creation shares the parsing mechanism with a simple
> > flow creation. The pattern template creation only consists of pattern
> > items while the flow creation continues with actions.
> > The parsing mechanism now accommodates both cases and allows to stop
> > at the item end token, which should not happen for the flow creation.
> > Fix parsing mechanism to differentiate between these two cases.
> >
> > Bugzilla ID: 941
> > Fixes: 04cc665fab ("app/testpmd: add flow template management")
> >
> > Signed-off-by: Alexander Kozyrev <akozyrev@nvidia.com>
> > ---
> >  app/test-pmd/cmdline_flow.c | 8 ++++++++
> >  1 file changed, 8 insertions(+)
> >
> > diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c
> > index 4f7a9f17f9..fc4a6d9cca 100644
> > --- a/app/test-pmd/cmdline_flow.c
> > +++ b/app/test-pmd/cmdline_flow.c
> > @@ -6864,6 +6864,14 @@ parse_vc(struct context *ctx, const struct token
> *token,
> >  		ctx->object = out->args.vc.pattern;
> >  		ctx->objmask = NULL;
> >  		return len;
> > +	case ITEM_END:
> > +		if ((out->command == VALIDATE || out->command == CREATE) &&
> > +		    ctx->last)
> > +			return -1;
> > +		if (out->command == PATTERN_TEMPLATE_CREATE &&
> > +		    !ctx->last)
> > +			return -1;
> > +		break;
> >  	case ACTIONS:
> >  		out->args.vc.actions =
> >  			(void *)RTE_ALIGN_CEIL((uintptr_t)
> > --
> > 2.18.2
> 
> 
> Acked-by: Ori Kam <orika@nvidia.com>
> Thanks,
> Ori

Tested-by: Zhimin Huang <zhiminx.huang@intel.com >
  
Ferruh Yigit March 3, 2022, 1:39 p.m. UTC | #3
On 3/2/2022 8:33 AM, Huang, ZhiminX wrote:
>> -----Original Message-----
>> From: Ori Kam <orika@nvidia.com>
>> Sent: Wednesday, March 2, 2022 4:13 PM
>> To: Alexander Kozyrev <akozyrev@nvidia.com>; dev@dpdk.org
>> Cc: Suanming Mou <suanmingm@nvidia.com>
>> Subject: RE: [PATCH] app/testpmd: fix flow creation parsing
>>
>> Hi Alexander,
>>
>>
>>> -----Original Message-----
>>> From: Alexander Kozyrev <akozyrev@nvidia.com>
>>> Subject: [PATCH] app/testpmd: fix flow creation parsing
>>>
>>> A pattern template creation shares the parsing mechanism with a simple
>>> flow creation. The pattern template creation only consists of pattern
>>> items while the flow creation continues with actions.
>>> The parsing mechanism now accommodates both cases and allows to stop
>>> at the item end token, which should not happen for the flow creation.
>>> Fix parsing mechanism to differentiate between these two cases.
>>>
>>> Bugzilla ID: 941
>>> Fixes: 04cc665fab ("app/testpmd: add flow template management")
>>>
>>> Signed-off-by: Alexander Kozyrev <akozyrev@nvidia.com>
>>
>> Acked-by: Ori Kam <orika@nvidia.com>
> 
> Tested-by: Zhimin Huang <zhiminx.huang@intel.com >
> 

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

Patch

diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c
index 4f7a9f17f9..fc4a6d9cca 100644
--- a/app/test-pmd/cmdline_flow.c
+++ b/app/test-pmd/cmdline_flow.c
@@ -6864,6 +6864,14 @@  parse_vc(struct context *ctx, const struct token *token,
 		ctx->object = out->args.vc.pattern;
 		ctx->objmask = NULL;
 		return len;
+	case ITEM_END:
+		if ((out->command == VALIDATE || out->command == CREATE) &&
+		    ctx->last)
+			return -1;
+		if (out->command == PATTERN_TEMPLATE_CREATE &&
+		    !ctx->last)
+			return -1;
+		break;
 	case ACTIONS:
 		out->args.vc.actions =
 			(void *)RTE_ALIGN_CEIL((uintptr_t)