* [dpdk-dev] [PATCH] app/testpmd: fix MPLSoUDP encapsulation
@ 2018-11-19 16:54 Dekel Peled
2018-11-20 8:23 ` Ori Kam
` (2 more replies)
0 siblings, 3 replies; 14+ messages in thread
From: Dekel Peled @ 2018-11-19 16:54 UTC (permalink / raw)
To: wenzhuo.lu, jingjing.wu, bernard.iremonger; +Cc: dev, orika, shahafs, dekelp
Set MPLS label value in appropriate location at mplsoudp_encap_conf,
so it is correctly copied to rte_flow_item_mpls.
Fixes: a1191d39cb57 ("app/testpmd: add MPLSoUDP encapsulation")
Cc: orika@mellanox.com
Signed-off-by: Dekel Peled <dekelp@mellanox.com>
---
app/test-pmd/cmdline.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index 1275074..40e64cc 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -15804,10 +15804,10 @@ static void cmd_set_mplsoudp_encap_parsed(void *parsed_result,
struct cmd_set_mplsoudp_encap_result *res = parsed_result;
union {
uint32_t mplsoudp_label;
- uint8_t label[3];
+ uint8_t label[4];
} id = {
.mplsoudp_label =
- rte_cpu_to_be_32(res->label) & RTE_BE32(0x00ffffff),
+ rte_cpu_to_be_32(res->label<<4) & RTE_BE32(0x00ffffff),
};
if (strcmp(res->mplsoudp, "mplsoudp_encap") == 0)
--
1.8.3.1
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [dpdk-dev] [PATCH] app/testpmd: fix MPLSoUDP encapsulation
2018-11-19 16:54 [dpdk-dev] [PATCH] app/testpmd: fix MPLSoUDP encapsulation Dekel Peled
@ 2018-11-20 8:23 ` Ori Kam
2018-11-21 15:19 ` Ferruh Yigit
2018-11-22 9:04 ` Adrien Mazarguil
2018-12-04 13:51 ` [dpdk-dev] [PATCH v2] " Dekel Peled
2 siblings, 1 reply; 14+ messages in thread
From: Ori Kam @ 2018-11-20 8:23 UTC (permalink / raw)
To: Dekel Peled, wenzhuo.lu, jingjing.wu, bernard.iremonger
Cc: dev, Shahaf Shuler, Dekel Peled
> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Dekel Peled
> Sent: Monday, November 19, 2018 6:55 PM
> To: wenzhuo.lu@intel.com; jingjing.wu@intel.com;
> bernard.iremonger@intel.com
> Cc: dev@dpdk.org; Ori Kam <orika@mellanox.com>; Shahaf Shuler
> <shahafs@mellanox.com>; Dekel Peled <dekelp@mellanox.com>
> Subject: [dpdk-dev] [PATCH] app/testpmd: fix MPLSoUDP encapsulation
>
> Set MPLS label value in appropriate location at mplsoudp_encap_conf,
> so it is correctly copied to rte_flow_item_mpls.
>
> Fixes: a1191d39cb57 ("app/testpmd: add MPLSoUDP encapsulation")
> Cc: orika@mellanox.com
>
> Signed-off-by: Dekel Peled <dekelp@mellanox.com>
> ---
> app/test-pmd/cmdline.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
> index 1275074..40e64cc 100644
> --- a/app/test-pmd/cmdline.c
> +++ b/app/test-pmd/cmdline.c
> @@ -15804,10 +15804,10 @@ static void
> cmd_set_mplsoudp_encap_parsed(void *parsed_result,
> struct cmd_set_mplsoudp_encap_result *res = parsed_result;
> union {
> uint32_t mplsoudp_label;
> - uint8_t label[3];
> + uint8_t label[4];
> } id = {
> .mplsoudp_label =
> - rte_cpu_to_be_32(res->label) & RTE_BE32(0x00ffffff),
> + rte_cpu_to_be_32(res->label<<4) &
> RTE_BE32(0x00ffffff),
> };
>
> if (strcmp(res->mplsoudp, "mplsoudp_encap") == 0)
> --
> 1.8.3.1
Acked-by: Ori Kam <orika@mellanox.com>
Thanks,
Ori
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [dpdk-dev] [PATCH] app/testpmd: fix MPLSoUDP encapsulation
2018-11-20 8:23 ` Ori Kam
@ 2018-11-21 15:19 ` Ferruh Yigit
2018-11-21 15:39 ` Ori Kam
0 siblings, 1 reply; 14+ messages in thread
From: Ferruh Yigit @ 2018-11-21 15:19 UTC (permalink / raw)
To: Ori Kam, Dekel Peled, wenzhuo.lu, jingjing.wu, bernard.iremonger
Cc: dev, Shahaf Shuler
On 11/20/2018 8:23 AM, Ori Kam wrote:
>
>
>> -----Original Message-----
>> From: dev <dev-bounces@dpdk.org> On Behalf Of Dekel Peled
>> Sent: Monday, November 19, 2018 6:55 PM
>> To: wenzhuo.lu@intel.com; jingjing.wu@intel.com;
>> bernard.iremonger@intel.com
>> Cc: dev@dpdk.org; Ori Kam <orika@mellanox.com>; Shahaf Shuler
>> <shahafs@mellanox.com>; Dekel Peled <dekelp@mellanox.com>
>> Subject: [dpdk-dev] [PATCH] app/testpmd: fix MPLSoUDP encapsulation
>>
>> Set MPLS label value in appropriate location at mplsoudp_encap_conf,
>> so it is correctly copied to rte_flow_item_mpls.
>>
>> Fixes: a1191d39cb57 ("app/testpmd: add MPLSoUDP encapsulation")
>> Cc: orika@mellanox.com
>>
>> Signed-off-by: Dekel Peled <dekelp@mellanox.com>
>> ---
>> app/test-pmd/cmdline.c | 4 ++--
>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
>> index 1275074..40e64cc 100644
>> --- a/app/test-pmd/cmdline.c
>> +++ b/app/test-pmd/cmdline.c
>> @@ -15804,10 +15804,10 @@ static void
>> cmd_set_mplsoudp_encap_parsed(void *parsed_result,
>> struct cmd_set_mplsoudp_encap_result *res = parsed_result;
>> union {
>> uint32_t mplsoudp_label;
>> - uint8_t label[3];
>> + uint8_t label[4];
>> } id = {
>> .mplsoudp_label =
>> - rte_cpu_to_be_32(res->label) & RTE_BE32(0x00ffffff),
>> + rte_cpu_to_be_32(res->label<<4) &
>> RTE_BE32(0x00ffffff),
>> };
>>
>> if (strcmp(res->mplsoudp, "mplsoudp_encap") == 0)
>> --
>> 1.8.3.1
>
> Acked-by: Ori Kam <orika@mellanox.com>
Hi Ori, Dekel,
What is the scope of this patch? Briefly how critical it is and what will be
broken and what is exposure of it?
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [dpdk-dev] [PATCH] app/testpmd: fix MPLSoUDP encapsulation
2018-11-21 15:19 ` Ferruh Yigit
@ 2018-11-21 15:39 ` Ori Kam
0 siblings, 0 replies; 14+ messages in thread
From: Ori Kam @ 2018-11-21 15:39 UTC (permalink / raw)
To: Ferruh Yigit, Dekel Peled, wenzhuo.lu, jingjing.wu, bernard.iremonger
Cc: dev, Shahaf Shuler
> -----Original Message-----
> From: Ferruh Yigit <ferruh.yigit@intel.com>
> Sent: Wednesday, November 21, 2018 5:19 PM
> To: Ori Kam <orika@mellanox.com>; Dekel Peled <dekelp@mellanox.com>;
> wenzhuo.lu@intel.com; jingjing.wu@intel.com; bernard.iremonger@intel.com
> Cc: dev@dpdk.org; Shahaf Shuler <shahafs@mellanox.com>
> Subject: Re: [dpdk-dev] [PATCH] app/testpmd: fix MPLSoUDP encapsulation
>
> On 11/20/2018 8:23 AM, Ori Kam wrote:
> >
> >
> >> -----Original Message-----
> >> From: dev <dev-bounces@dpdk.org> On Behalf Of Dekel Peled
> >> Sent: Monday, November 19, 2018 6:55 PM
> >> To: wenzhuo.lu@intel.com; jingjing.wu@intel.com;
> >> bernard.iremonger@intel.com
> >> Cc: dev@dpdk.org; Ori Kam <orika@mellanox.com>; Shahaf Shuler
> >> <shahafs@mellanox.com>; Dekel Peled <dekelp@mellanox.com>
> >> Subject: [dpdk-dev] [PATCH] app/testpmd: fix MPLSoUDP encapsulation
> >>
> >> Set MPLS label value in appropriate location at mplsoudp_encap_conf,
> >> so it is correctly copied to rte_flow_item_mpls.
> >>
> >> Fixes: a1191d39cb57 ("app/testpmd: add MPLSoUDP encapsulation")
> >> Cc: orika@mellanox.com
> >>
> >> Signed-off-by: Dekel Peled <dekelp@mellanox.com>
> >> ---
> >> app/test-pmd/cmdline.c | 4 ++--
> >> 1 file changed, 2 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
> >> index 1275074..40e64cc 100644
> >> --- a/app/test-pmd/cmdline.c
> >> +++ b/app/test-pmd/cmdline.c
> >> @@ -15804,10 +15804,10 @@ static void
> >> cmd_set_mplsoudp_encap_parsed(void *parsed_result,
> >> struct cmd_set_mplsoudp_encap_result *res = parsed_result;
> >> union {
> >> uint32_t mplsoudp_label;
> >> - uint8_t label[3];
> >> + uint8_t label[4];
> >> } id = {
> >> .mplsoudp_label =
> >> - rte_cpu_to_be_32(res->label) & RTE_BE32(0x00ffffff),
> >> + rte_cpu_to_be_32(res->label<<4) &
> >> RTE_BE32(0x00ffffff),
> >> };
> >>
> >> if (strcmp(res->mplsoudp, "mplsoudp_encap") == 0)
> >> --
> >> 1.8.3.1
> >
> > Acked-by: Ori Kam <orika@mellanox.com>
>
> Hi Ori, Dekel,
>
> What is the scope of this patch? Briefly how critical it is and what will be
> broken and what is exposure of it?
The only issue is that we are setting incorrect MPLS label.
As defined by the MPLS spec the label is 20 bits, so this patch simply
pushes the label to the correct place.
I don't think that there any exposure from this patch.
Best,
Ori
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [dpdk-dev] [PATCH] app/testpmd: fix MPLSoUDP encapsulation
2018-11-19 16:54 [dpdk-dev] [PATCH] app/testpmd: fix MPLSoUDP encapsulation Dekel Peled
2018-11-20 8:23 ` Ori Kam
@ 2018-11-22 9:04 ` Adrien Mazarguil
2018-11-22 9:56 ` Dekel Peled
2018-12-04 13:51 ` [dpdk-dev] [PATCH v2] " Dekel Peled
2 siblings, 1 reply; 14+ messages in thread
From: Adrien Mazarguil @ 2018-11-22 9:04 UTC (permalink / raw)
To: Dekel Peled
Cc: wenzhuo.lu, jingjing.wu, bernard.iremonger, dev, orika, shahafs
On Mon, Nov 19, 2018 at 06:54:50PM +0200, Dekel Peled wrote:
> Set MPLS label value in appropriate location at mplsoudp_encap_conf,
> so it is correctly copied to rte_flow_item_mpls.
>
> Fixes: a1191d39cb57 ("app/testpmd: add MPLSoUDP encapsulation")
> Cc: orika@mellanox.com
>
> Signed-off-by: Dekel Peled <dekelp@mellanox.com>
> ---
> app/test-pmd/cmdline.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
> index 1275074..40e64cc 100644
> --- a/app/test-pmd/cmdline.c
> +++ b/app/test-pmd/cmdline.c
> @@ -15804,10 +15804,10 @@ static void cmd_set_mplsoudp_encap_parsed(void *parsed_result,
> struct cmd_set_mplsoudp_encap_result *res = parsed_result;
> union {
> uint32_t mplsoudp_label;
> - uint8_t label[3];
> + uint8_t label[4];
> } id = {
> .mplsoudp_label =
> - rte_cpu_to_be_32(res->label) & RTE_BE32(0x00ffffff),
> + rte_cpu_to_be_32(res->label<<4) & RTE_BE32(0x00ffffff),
Just to be sure, since label is a 20-bit value, isn't the shift supposed to
be 12 bits? In which case that mask is harmless but misleading. How about:
.mplsoudp_label = rte_cpu_to_be32((res->label & 0xfffff) << 12);
> };
>
> if (strcmp(res->mplsoudp, "mplsoudp_encap") == 0)
> --
> 1.8.3.1
>
--
Adrien Mazarguil
6WIND
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [dpdk-dev] [PATCH] app/testpmd: fix MPLSoUDP encapsulation
2018-11-22 9:04 ` Adrien Mazarguil
@ 2018-11-22 9:56 ` Dekel Peled
2018-11-22 10:14 ` Adrien Mazarguil
0 siblings, 1 reply; 14+ messages in thread
From: Dekel Peled @ 2018-11-22 9:56 UTC (permalink / raw)
To: Adrien Mazarguil
Cc: wenzhuo.lu, jingjing.wu, bernard.iremonger, dev, Ori Kam, Shahaf Shuler
Thanks, PSB.
> -----Original Message-----
> From: Adrien Mazarguil <adrien.mazarguil@6wind.com>
> Sent: Thursday, November 22, 2018 11:05 AM
> To: Dekel Peled <dekelp@mellanox.com>
> Cc: wenzhuo.lu@intel.com; jingjing.wu@intel.com;
> bernard.iremonger@intel.com; dev@dpdk.org; Ori Kam
> <orika@mellanox.com>; Shahaf Shuler <shahafs@mellanox.com>
> Subject: Re: [dpdk-dev] [PATCH] app/testpmd: fix MPLSoUDP encapsulation
>
> On Mon, Nov 19, 2018 at 06:54:50PM +0200, Dekel Peled wrote:
> > Set MPLS label value in appropriate location at mplsoudp_encap_conf,
> > so it is correctly copied to rte_flow_item_mpls.
> >
> > Fixes: a1191d39cb57 ("app/testpmd: add MPLSoUDP encapsulation")
> > Cc: orika@mellanox.com
> >
> > Signed-off-by: Dekel Peled <dekelp@mellanox.com>
> > ---
> > app/test-pmd/cmdline.c | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c index
> > 1275074..40e64cc 100644
> > --- a/app/test-pmd/cmdline.c
> > +++ b/app/test-pmd/cmdline.c
> > @@ -15804,10 +15804,10 @@ static void
> cmd_set_mplsoudp_encap_parsed(void *parsed_result,
> > struct cmd_set_mplsoudp_encap_result *res = parsed_result;
> > union {
> > uint32_t mplsoudp_label;
> > - uint8_t label[3];
> > + uint8_t label[4];
> > } id = {
> > .mplsoudp_label =
> > - rte_cpu_to_be_32(res->label) &
> RTE_BE32(0x00ffffff),
> > + rte_cpu_to_be_32(res->label<<4) &
> RTE_BE32(0x00ffffff),
>
> Just to be sure, since label is a 20-bit value, isn't the shift supposed to be 12
> bits? In which case that mask is harmless but misleading. How about:
>
> .mplsoudp_label = rte_cpu_to_be32((res->label & 0xfffff) << 12);
>
Label is 20-bits value in a 24-bits field, see struct rte_flow_item_mpls.
> > };
> >
> > if (strcmp(res->mplsoudp, "mplsoudp_encap") == 0)
> > --
> > 1.8.3.1
> >
>
> --
> Adrien Mazarguil
> 6WIND
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [dpdk-dev] [PATCH] app/testpmd: fix MPLSoUDP encapsulation
2018-11-22 9:56 ` Dekel Peled
@ 2018-11-22 10:14 ` Adrien Mazarguil
2018-11-22 16:18 ` Dekel Peled
0 siblings, 1 reply; 14+ messages in thread
From: Adrien Mazarguil @ 2018-11-22 10:14 UTC (permalink / raw)
To: Dekel Peled
Cc: wenzhuo.lu, jingjing.wu, bernard.iremonger, dev, Ori Kam, Shahaf Shuler
On Thu, Nov 22, 2018 at 09:56:09AM +0000, Dekel Peled wrote:
> Thanks, PSB.
>
> > -----Original Message-----
> > From: Adrien Mazarguil <adrien.mazarguil@6wind.com>
> > Sent: Thursday, November 22, 2018 11:05 AM
> > To: Dekel Peled <dekelp@mellanox.com>
> > Cc: wenzhuo.lu@intel.com; jingjing.wu@intel.com;
> > bernard.iremonger@intel.com; dev@dpdk.org; Ori Kam
> > <orika@mellanox.com>; Shahaf Shuler <shahafs@mellanox.com>
> > Subject: Re: [dpdk-dev] [PATCH] app/testpmd: fix MPLSoUDP encapsulation
> >
> > On Mon, Nov 19, 2018 at 06:54:50PM +0200, Dekel Peled wrote:
> > > Set MPLS label value in appropriate location at mplsoudp_encap_conf,
> > > so it is correctly copied to rte_flow_item_mpls.
> > >
> > > Fixes: a1191d39cb57 ("app/testpmd: add MPLSoUDP encapsulation")
> > > Cc: orika@mellanox.com
> > >
> > > Signed-off-by: Dekel Peled <dekelp@mellanox.com>
> > > ---
> > > app/test-pmd/cmdline.c | 4 ++--
> > > 1 file changed, 2 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c index
> > > 1275074..40e64cc 100644
> > > --- a/app/test-pmd/cmdline.c
> > > +++ b/app/test-pmd/cmdline.c
> > > @@ -15804,10 +15804,10 @@ static void
> > cmd_set_mplsoudp_encap_parsed(void *parsed_result,
> > > struct cmd_set_mplsoudp_encap_result *res = parsed_result;
> > > union {
> > > uint32_t mplsoudp_label;
> > > - uint8_t label[3];
> > > + uint8_t label[4];
> > > } id = {
> > > .mplsoudp_label =
> > > - rte_cpu_to_be_32(res->label) &
> > RTE_BE32(0x00ffffff),
> > > + rte_cpu_to_be_32(res->label<<4) &
> > RTE_BE32(0x00ffffff),
> >
> > Just to be sure, since label is a 20-bit value, isn't the shift supposed to be 12
> > bits? In which case that mask is harmless but misleading. How about:
> >
> > .mplsoudp_label = rte_cpu_to_be32((res->label & 0xfffff) << 12);
> >
>
> Label is 20-bits value in a 24-bits field, see struct rte_flow_item_mpls.
OK, I know, what I missed was the following line:
rte_memcpy(mplsoudp_encap_conf.label, &id.label[1], 3);
Just a suggestion then: using the same memcpy() offsets in both places for
clarity:
rte_be32_t label = rte_cpu_to_be32(res->label << 12);
memcpy(mplsodudp_encap_conf.label, &label, 3);
--
Adrien Mazarguil
6WIND
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [dpdk-dev] [PATCH] app/testpmd: fix MPLSoUDP encapsulation
2018-11-22 10:14 ` Adrien Mazarguil
@ 2018-11-22 16:18 ` Dekel Peled
2018-11-22 16:39 ` Ferruh Yigit
0 siblings, 1 reply; 14+ messages in thread
From: Dekel Peled @ 2018-11-22 16:18 UTC (permalink / raw)
To: Adrien Mazarguil
Cc: wenzhuo.lu, jingjing.wu, bernard.iremonger, dev, Ori Kam,
Shahaf Shuler, Yigit, Ferruh
Hi,
The current implementation is already validated, and since this is the last minute I prefer my patch to be applied as-is.
Please ack.
Regards,
Dekel
> -----Original Message-----
> From: Adrien Mazarguil <adrien.mazarguil@6wind.com>
> Sent: Thursday, November 22, 2018 12:14 PM
> To: Dekel Peled <dekelp@mellanox.com>
> Cc: wenzhuo.lu@intel.com; jingjing.wu@intel.com;
> bernard.iremonger@intel.com; dev@dpdk.org; Ori Kam
> <orika@mellanox.com>; Shahaf Shuler <shahafs@mellanox.com>
> Subject: Re: [dpdk-dev] [PATCH] app/testpmd: fix MPLSoUDP encapsulation
>
> On Thu, Nov 22, 2018 at 09:56:09AM +0000, Dekel Peled wrote:
> > Thanks, PSB.
> >
> > > -----Original Message-----
> > > From: Adrien Mazarguil <adrien.mazarguil@6wind.com>
> > > Sent: Thursday, November 22, 2018 11:05 AM
> > > To: Dekel Peled <dekelp@mellanox.com>
> > > Cc: wenzhuo.lu@intel.com; jingjing.wu@intel.com;
> > > bernard.iremonger@intel.com; dev@dpdk.org; Ori Kam
> > > <orika@mellanox.com>; Shahaf Shuler <shahafs@mellanox.com>
> > > Subject: Re: [dpdk-dev] [PATCH] app/testpmd: fix MPLSoUDP
> > > encapsulation
> > >
> > > On Mon, Nov 19, 2018 at 06:54:50PM +0200, Dekel Peled wrote:
> > > > Set MPLS label value in appropriate location at
> > > > mplsoudp_encap_conf, so it is correctly copied to rte_flow_item_mpls.
> > > >
> > > > Fixes: a1191d39cb57 ("app/testpmd: add MPLSoUDP encapsulation")
> > > > Cc: orika@mellanox.com
> > > >
> > > > Signed-off-by: Dekel Peled <dekelp@mellanox.com>
> > > > ---
> > > > app/test-pmd/cmdline.c | 4 ++--
> > > > 1 file changed, 2 insertions(+), 2 deletions(-)
> > > >
> > > > diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c index
> > > > 1275074..40e64cc 100644
> > > > --- a/app/test-pmd/cmdline.c
> > > > +++ b/app/test-pmd/cmdline.c
> > > > @@ -15804,10 +15804,10 @@ static void
> > > cmd_set_mplsoudp_encap_parsed(void *parsed_result,
> > > > struct cmd_set_mplsoudp_encap_result *res = parsed_result;
> > > > union {
> > > > uint32_t mplsoudp_label;
> > > > - uint8_t label[3];
> > > > + uint8_t label[4];
> > > > } id = {
> > > > .mplsoudp_label =
> > > > - rte_cpu_to_be_32(res->label) &
> > > RTE_BE32(0x00ffffff),
> > > > + rte_cpu_to_be_32(res->label<<4) &
> > > RTE_BE32(0x00ffffff),
> > >
> > > Just to be sure, since label is a 20-bit value, isn't the shift
> > > supposed to be 12 bits? In which case that mask is harmless but
> misleading. How about:
> > >
> > > .mplsoudp_label = rte_cpu_to_be32((res->label & 0xfffff) << 12);
> > >
> >
> > Label is 20-bits value in a 24-bits field, see struct rte_flow_item_mpls.
>
> OK, I know, what I missed was the following line:
>
> rte_memcpy(mplsoudp_encap_conf.label, &id.label[1], 3);
>
> Just a suggestion then: using the same memcpy() offsets in both places for
> clarity:
>
> rte_be32_t label = rte_cpu_to_be32(res->label << 12);
>
> memcpy(mplsodudp_encap_conf.label, &label, 3);
>
> --
> Adrien Mazarguil
> 6WIND
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [dpdk-dev] [PATCH] app/testpmd: fix MPLSoUDP encapsulation
2018-11-22 16:18 ` Dekel Peled
@ 2018-11-22 16:39 ` Ferruh Yigit
0 siblings, 0 replies; 14+ messages in thread
From: Ferruh Yigit @ 2018-11-22 16:39 UTC (permalink / raw)
To: Dekel Peled, Adrien Mazarguil
Cc: wenzhuo.lu, jingjing.wu, bernard.iremonger, dev, Ori Kam, Shahaf Shuler
On 11/22/2018 4:18 PM, Dekel Peled wrote:
> Hi,
>
> The current implementation is already validated, and since this is the last minute I prefer my patch to be applied as-is.
> Please ack.
Hi Dekel,
I think logic is other-way around, a patch has been acked clearly, without
question can justify to go in last minute. Going last minute doesn't justify an ack.
>
> Regards,
> Dekel
>
>> -----Original Message-----
>> From: Adrien Mazarguil <adrien.mazarguil@6wind.com>
>> Sent: Thursday, November 22, 2018 12:14 PM
>> To: Dekel Peled <dekelp@mellanox.com>
>> Cc: wenzhuo.lu@intel.com; jingjing.wu@intel.com;
>> bernard.iremonger@intel.com; dev@dpdk.org; Ori Kam
>> <orika@mellanox.com>; Shahaf Shuler <shahafs@mellanox.com>
>> Subject: Re: [dpdk-dev] [PATCH] app/testpmd: fix MPLSoUDP encapsulation
>>
>> On Thu, Nov 22, 2018 at 09:56:09AM +0000, Dekel Peled wrote:
>>> Thanks, PSB.
>>>
>>>> -----Original Message-----
>>>> From: Adrien Mazarguil <adrien.mazarguil@6wind.com>
>>>> Sent: Thursday, November 22, 2018 11:05 AM
>>>> To: Dekel Peled <dekelp@mellanox.com>
>>>> Cc: wenzhuo.lu@intel.com; jingjing.wu@intel.com;
>>>> bernard.iremonger@intel.com; dev@dpdk.org; Ori Kam
>>>> <orika@mellanox.com>; Shahaf Shuler <shahafs@mellanox.com>
>>>> Subject: Re: [dpdk-dev] [PATCH] app/testpmd: fix MPLSoUDP
>>>> encapsulation
>>>>
>>>> On Mon, Nov 19, 2018 at 06:54:50PM +0200, Dekel Peled wrote:
>>>>> Set MPLS label value in appropriate location at
>>>>> mplsoudp_encap_conf, so it is correctly copied to rte_flow_item_mpls.
>>>>>
>>>>> Fixes: a1191d39cb57 ("app/testpmd: add MPLSoUDP encapsulation")
>>>>> Cc: orika@mellanox.com
>>>>>
>>>>> Signed-off-by: Dekel Peled <dekelp@mellanox.com>
>>>>> ---
>>>>> app/test-pmd/cmdline.c | 4 ++--
>>>>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>>>>
>>>>> diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c index
>>>>> 1275074..40e64cc 100644
>>>>> --- a/app/test-pmd/cmdline.c
>>>>> +++ b/app/test-pmd/cmdline.c
>>>>> @@ -15804,10 +15804,10 @@ static void
>>>> cmd_set_mplsoudp_encap_parsed(void *parsed_result,
>>>>> struct cmd_set_mplsoudp_encap_result *res = parsed_result;
>>>>> union {
>>>>> uint32_t mplsoudp_label;
>>>>> - uint8_t label[3];
>>>>> + uint8_t label[4];
>>>>> } id = {
>>>>> .mplsoudp_label =
>>>>> - rte_cpu_to_be_32(res->label) &
>>>> RTE_BE32(0x00ffffff),
>>>>> + rte_cpu_to_be_32(res->label<<4) &
>>>> RTE_BE32(0x00ffffff),
>>>>
>>>> Just to be sure, since label is a 20-bit value, isn't the shift
>>>> supposed to be 12 bits? In which case that mask is harmless but
>> misleading. How about:
>>>>
>>>> .mplsoudp_label = rte_cpu_to_be32((res->label & 0xfffff) << 12);
>>>>
>>>
>>> Label is 20-bits value in a 24-bits field, see struct rte_flow_item_mpls.
>>
>> OK, I know, what I missed was the following line:
>>
>> rte_memcpy(mplsoudp_encap_conf.label, &id.label[1], 3);
>>
>> Just a suggestion then: using the same memcpy() offsets in both places for
>> clarity:
>>
>> rte_be32_t label = rte_cpu_to_be32(res->label << 12);
>>
>> memcpy(mplsodudp_encap_conf.label, &label, 3);
>>
>> --
>> Adrien Mazarguil
>> 6WIND
^ permalink raw reply [flat|nested] 14+ messages in thread
* [dpdk-dev] [PATCH v2] app/testpmd: fix MPLSoUDP encapsulation
2018-11-19 16:54 [dpdk-dev] [PATCH] app/testpmd: fix MPLSoUDP encapsulation Dekel Peled
2018-11-20 8:23 ` Ori Kam
2018-11-22 9:04 ` Adrien Mazarguil
@ 2018-12-04 13:51 ` Dekel Peled
2018-12-04 21:23 ` Ori Kam
2 siblings, 1 reply; 14+ messages in thread
From: Dekel Peled @ 2018-12-04 13:51 UTC (permalink / raw)
To: wenzhuo.lu, jingjing.wu, bernard.iremonger; +Cc: dev, orika, shahafs, dekelp
In function cmd_set_mplsoudp_encap_parsed(), MPLS label value was
set in mplsoudp_encap_conf struct without the required offset.
As a result the value was copied incorrectly into
rte_flow_item_mpls struct.
This patch sets MPLS label value in appropriate location at
mplsoudp_encap_conf struct, so it is correctly copied to
rte_flow_item_mpls struct.
Fixes: a1191d39cb57 ("app/testpmd: add MPLSoUDP encapsulation")
Cc: orika@mellanox.com
Signed-off-by: Dekel Peled <dekelp@mellanox.com>
---
v2: Update code fix and elaborate patch log for clarity.
---
---
app/test-pmd/cmdline.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index 1275074..8630be6 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -15804,10 +15804,9 @@ static void cmd_set_mplsoudp_encap_parsed(void *parsed_result,
struct cmd_set_mplsoudp_encap_result *res = parsed_result;
union {
uint32_t mplsoudp_label;
- uint8_t label[3];
+ uint8_t label[4];
} id = {
- .mplsoudp_label =
- rte_cpu_to_be_32(res->label) & RTE_BE32(0x00ffffff),
+ .mplsoudp_label = rte_cpu_to_be_32(res->label<<12),
};
if (strcmp(res->mplsoudp, "mplsoudp_encap") == 0)
@@ -15820,7 +15819,7 @@ static void cmd_set_mplsoudp_encap_parsed(void *parsed_result,
mplsoudp_encap_conf.select_ipv4 = 0;
else
return;
- rte_memcpy(mplsoudp_encap_conf.label, &id.label[1], 3);
+ rte_memcpy(mplsoudp_encap_conf.label, &id.label, 3);
mplsoudp_encap_conf.udp_src = rte_cpu_to_be_16(res->udp_src);
mplsoudp_encap_conf.udp_dst = rte_cpu_to_be_16(res->udp_dst);
if (mplsoudp_encap_conf.select_ipv4) {
--
1.8.3.1
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [dpdk-dev] [PATCH v2] app/testpmd: fix MPLSoUDP encapsulation
2018-12-04 13:51 ` [dpdk-dev] [PATCH v2] " Dekel Peled
@ 2018-12-04 21:23 ` Ori Kam
2018-12-06 8:17 ` Dekel Peled
0 siblings, 1 reply; 14+ messages in thread
From: Ori Kam @ 2018-12-04 21:23 UTC (permalink / raw)
To: Dekel Peled, wenzhuo.lu, jingjing.wu, bernard.iremonger
Cc: dev, Shahaf Shuler, Dekel Peled
> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Dekel Peled
> Sent: Tuesday, December 4, 2018 3:52 PM
> To: wenzhuo.lu@intel.com; jingjing.wu@intel.com;
> bernard.iremonger@intel.com
> Cc: dev@dpdk.org; Ori Kam <orika@mellanox.com>; Shahaf Shuler
> <shahafs@mellanox.com>; Dekel Peled <dekelp@mellanox.com>
> Subject: [dpdk-dev] [PATCH v2] app/testpmd: fix MPLSoUDP encapsulation
>
> In function cmd_set_mplsoudp_encap_parsed(), MPLS label value was
> set in mplsoudp_encap_conf struct without the required offset.
> As a result the value was copied incorrectly into
> rte_flow_item_mpls struct.
>
> This patch sets MPLS label value in appropriate location at
> mplsoudp_encap_conf struct, so it is correctly copied to
> rte_flow_item_mpls struct.
>
> Fixes: a1191d39cb57 ("app/testpmd: add MPLSoUDP encapsulation")
> Cc: orika@mellanox.com
>
> Signed-off-by: Dekel Peled <dekelp@mellanox.com>
>
> ---
> v2: Update code fix and elaborate patch log for clarity.
> ---
> ---
> app/test-pmd/cmdline.c | 7 +++----
> 1 file changed, 3 insertions(+), 4 deletions(-)
>
> diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
> index 1275074..8630be6 100644
> --- a/app/test-pmd/cmdline.c
> +++ b/app/test-pmd/cmdline.c
> @@ -15804,10 +15804,9 @@ static void
> cmd_set_mplsoudp_encap_parsed(void *parsed_result,
> struct cmd_set_mplsoudp_encap_result *res = parsed_result;
> union {
> uint32_t mplsoudp_label;
> - uint8_t label[3];
> + uint8_t label[4];
> } id = {
> - .mplsoudp_label =
> - rte_cpu_to_be_32(res->label) & RTE_BE32(0x00ffffff),
> + .mplsoudp_label = rte_cpu_to_be_32(res->label<<12),
Why did you remove the mask?
> };
>
> if (strcmp(res->mplsoudp, "mplsoudp_encap") == 0)
> @@ -15820,7 +15819,7 @@ static void cmd_set_mplsoudp_encap_parsed(void
> *parsed_result,
> mplsoudp_encap_conf.select_ipv4 = 0;
> else
> return;
> - rte_memcpy(mplsoudp_encap_conf.label, &id.label[1], 3);
> + rte_memcpy(mplsoudp_encap_conf.label, &id.label, 3);
> mplsoudp_encap_conf.udp_src = rte_cpu_to_be_16(res->udp_src);
> mplsoudp_encap_conf.udp_dst = rte_cpu_to_be_16(res->udp_dst);
> if (mplsoudp_encap_conf.select_ipv4) {
> --
> 1.8.3.1
Best,
Ori
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [dpdk-dev] [PATCH v2] app/testpmd: fix MPLSoUDP encapsulation
2018-12-04 21:23 ` Ori Kam
@ 2018-12-06 8:17 ` Dekel Peled
2018-12-06 9:38 ` Ori Kam
0 siblings, 1 reply; 14+ messages in thread
From: Dekel Peled @ 2018-12-06 8:17 UTC (permalink / raw)
To: Ori Kam, wenzhuo.lu, jingjing.wu, bernard.iremonger; +Cc: dev, Shahaf Shuler
Thanks, PSB.
> -----Original Message-----
> From: Ori Kam
> Sent: Tuesday, December 4, 2018 11:23 PM
> To: Dekel Peled <dekelp@mellanox.com>; wenzhuo.lu@intel.com;
> jingjing.wu@intel.com; bernard.iremonger@intel.com
> Cc: dev@dpdk.org; Shahaf Shuler <shahafs@mellanox.com>; Dekel Peled
> <dekelp@mellanox.com>
> Subject: RE: [dpdk-dev] [PATCH v2] app/testpmd: fix MPLSoUDP
> encapsulation
>
>
>
> > -----Original Message-----
> > From: dev <dev-bounces@dpdk.org> On Behalf Of Dekel Peled
> > Sent: Tuesday, December 4, 2018 3:52 PM
> > To: wenzhuo.lu@intel.com; jingjing.wu@intel.com;
> > bernard.iremonger@intel.com
> > Cc: dev@dpdk.org; Ori Kam <orika@mellanox.com>; Shahaf Shuler
> > <shahafs@mellanox.com>; Dekel Peled <dekelp@mellanox.com>
> > Subject: [dpdk-dev] [PATCH v2] app/testpmd: fix MPLSoUDP encapsulation
> >
> > In function cmd_set_mplsoudp_encap_parsed(), MPLS label value was set
> > in mplsoudp_encap_conf struct without the required offset.
> > As a result the value was copied incorrectly into rte_flow_item_mpls
> > struct.
> >
> > This patch sets MPLS label value in appropriate location at
> > mplsoudp_encap_conf struct, so it is correctly copied to
> > rte_flow_item_mpls struct.
> >
> > Fixes: a1191d39cb57 ("app/testpmd: add MPLSoUDP encapsulation")
> > Cc: orika@mellanox.com
> >
> > Signed-off-by: Dekel Peled <dekelp@mellanox.com>
> >
> > ---
> > v2: Update code fix and elaborate patch log for clarity.
> > ---
> > ---
> > app/test-pmd/cmdline.c | 7 +++----
> > 1 file changed, 3 insertions(+), 4 deletions(-)
> >
> > diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c index
> > 1275074..8630be6 100644
> > --- a/app/test-pmd/cmdline.c
> > +++ b/app/test-pmd/cmdline.c
> > @@ -15804,10 +15804,9 @@ static void
> > cmd_set_mplsoudp_encap_parsed(void *parsed_result,
> > struct cmd_set_mplsoudp_encap_result *res = parsed_result;
> > union {
> > uint32_t mplsoudp_label;
> > - uint8_t label[3];
> > + uint8_t label[4];
> > } id = {
> > - .mplsoudp_label =
> > - rte_cpu_to_be_32(res->label) &
> RTE_BE32(0x00ffffff),
> > + .mplsoudp_label = rte_cpu_to_be_32(res->label<<12),
>
> Why did you remove the mask?
The mask of all valid bits set to 1 is redundant.
After <<12 the 20 valid bits are not changed, and the other 12 bits are set to 0.
>
> > };
> >
> > if (strcmp(res->mplsoudp, "mplsoudp_encap") == 0) @@ -15820,7
> > +15819,7 @@ static void cmd_set_mplsoudp_encap_parsed(void
> > *parsed_result,
> > mplsoudp_encap_conf.select_ipv4 = 0;
> > else
> > return;
> > - rte_memcpy(mplsoudp_encap_conf.label, &id.label[1], 3);
> > + rte_memcpy(mplsoudp_encap_conf.label, &id.label, 3);
> > mplsoudp_encap_conf.udp_src = rte_cpu_to_be_16(res->udp_src);
> > mplsoudp_encap_conf.udp_dst = rte_cpu_to_be_16(res->udp_dst);
> > if (mplsoudp_encap_conf.select_ipv4) {
> > --
> > 1.8.3.1
>
> Best,
> Ori
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [dpdk-dev] [PATCH v2] app/testpmd: fix MPLSoUDP encapsulation
2018-12-06 8:17 ` Dekel Peled
@ 2018-12-06 9:38 ` Ori Kam
2018-12-11 17:28 ` Ferruh Yigit
0 siblings, 1 reply; 14+ messages in thread
From: Ori Kam @ 2018-12-06 9:38 UTC (permalink / raw)
To: Dekel Peled, wenzhuo.lu, jingjing.wu, bernard.iremonger
Cc: dev, Shahaf Shuler
> -----Original Message-----
> From: Dekel Peled
> Sent: Thursday, December 6, 2018 10:18 AM
> To: Ori Kam <orika@mellanox.com>; wenzhuo.lu@intel.com;
> jingjing.wu@intel.com; bernard.iremonger@intel.com
> Cc: dev@dpdk.org; Shahaf Shuler <shahafs@mellanox.com>
> Subject: RE: [dpdk-dev] [PATCH v2] app/testpmd: fix MPLSoUDP encapsulation
>
> Thanks, PSB.
>
> > -----Original Message-----
> > From: Ori Kam
> > Sent: Tuesday, December 4, 2018 11:23 PM
> > To: Dekel Peled <dekelp@mellanox.com>; wenzhuo.lu@intel.com;
> > jingjing.wu@intel.com; bernard.iremonger@intel.com
> > Cc: dev@dpdk.org; Shahaf Shuler <shahafs@mellanox.com>; Dekel Peled
> > <dekelp@mellanox.com>
> > Subject: RE: [dpdk-dev] [PATCH v2] app/testpmd: fix MPLSoUDP
> > encapsulation
> >
> >
> >
> > > -----Original Message-----
> > > From: dev <dev-bounces@dpdk.org> On Behalf Of Dekel Peled
> > > Sent: Tuesday, December 4, 2018 3:52 PM
> > > To: wenzhuo.lu@intel.com; jingjing.wu@intel.com;
> > > bernard.iremonger@intel.com
> > > Cc: dev@dpdk.org; Ori Kam <orika@mellanox.com>; Shahaf Shuler
> > > <shahafs@mellanox.com>; Dekel Peled <dekelp@mellanox.com>
> > > Subject: [dpdk-dev] [PATCH v2] app/testpmd: fix MPLSoUDP encapsulation
> > >
> > > In function cmd_set_mplsoudp_encap_parsed(), MPLS label value was set
> > > in mplsoudp_encap_conf struct without the required offset.
> > > As a result the value was copied incorrectly into rte_flow_item_mpls
> > > struct.
> > >
> > > This patch sets MPLS label value in appropriate location at
> > > mplsoudp_encap_conf struct, so it is correctly copied to
> > > rte_flow_item_mpls struct.
> > >
> > > Fixes: a1191d39cb57 ("app/testpmd: add MPLSoUDP encapsulation")
> > > Cc: orika@mellanox.com
> > >
> > > Signed-off-by: Dekel Peled <dekelp@mellanox.com>
> > >
> > > ---
> > > v2: Update code fix and elaborate patch log for clarity.
> > > ---
> > > ---
> > > app/test-pmd/cmdline.c | 7 +++----
> > > 1 file changed, 3 insertions(+), 4 deletions(-)
> > >
> > > diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c index
> > > 1275074..8630be6 100644
> > > --- a/app/test-pmd/cmdline.c
> > > +++ b/app/test-pmd/cmdline.c
> > > @@ -15804,10 +15804,9 @@ static void
> > > cmd_set_mplsoudp_encap_parsed(void *parsed_result,
> > > struct cmd_set_mplsoudp_encap_result *res = parsed_result;
> > > union {
> > > uint32_t mplsoudp_label;
> > > - uint8_t label[3];
> > > + uint8_t label[4];
> > > } id = {
> > > - .mplsoudp_label =
> > > - rte_cpu_to_be_32(res->label) &
> > RTE_BE32(0x00ffffff),
> > > + .mplsoudp_label = rte_cpu_to_be_32(res->label<<12),
> >
> > Why did you remove the mask?
>
> The mask of all valid bits set to 1 is redundant.
> After <<12 the 20 valid bits are not changed, and the other 12 bits are set to 0.
>
> >
> > > };
> > >
> > > if (strcmp(res->mplsoudp, "mplsoudp_encap") == 0) @@ -15820,7
> > > +15819,7 @@ static void cmd_set_mplsoudp_encap_parsed(void
> > > *parsed_result,
> > > mplsoudp_encap_conf.select_ipv4 = 0;
> > > else
> > > return;
> > > - rte_memcpy(mplsoudp_encap_conf.label, &id.label[1], 3);
> > > + rte_memcpy(mplsoudp_encap_conf.label, &id.label, 3);
> > > mplsoudp_encap_conf.udp_src = rte_cpu_to_be_16(res->udp_src);
> > > mplsoudp_encap_conf.udp_dst = rte_cpu_to_be_16(res->udp_dst);
> > > if (mplsoudp_encap_conf.select_ipv4) {
> > > --
> > > 1.8.3.1
> >
> > Best,
> > Ori
Acked-by: Ori Kam <orika@mellanox.com>
Thanks,
Ori
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [dpdk-dev] [PATCH v2] app/testpmd: fix MPLSoUDP encapsulation
2018-12-06 9:38 ` Ori Kam
@ 2018-12-11 17:28 ` Ferruh Yigit
0 siblings, 0 replies; 14+ messages in thread
From: Ferruh Yigit @ 2018-12-11 17:28 UTC (permalink / raw)
To: Ori Kam, Dekel Peled, wenzhuo.lu, jingjing.wu, bernard.iremonger
Cc: dev, Shahaf Shuler
On 12/6/2018 9:38 AM, Ori Kam wrote:
<...>
>>>> Subject: [dpdk-dev] [PATCH v2] app/testpmd: fix MPLSoUDP encapsulation
>>>>
>>>> In function cmd_set_mplsoudp_encap_parsed(), MPLS label value was set
>>>> in mplsoudp_encap_conf struct without the required offset.
>>>> As a result the value was copied incorrectly into rte_flow_item_mpls
>>>> struct.
>>>>
>>>> This patch sets MPLS label value in appropriate location at
>>>> mplsoudp_encap_conf struct, so it is correctly copied to
>>>> rte_flow_item_mpls struct.
>>>>
>>>> Fixes: a1191d39cb57 ("app/testpmd: add MPLSoUDP encapsulation")
>>>> Cc: orika@mellanox.com
>>>>
>>>> Signed-off-by: Dekel Peled <dekelp@mellanox.com>>
> Acked-by: Ori Kam <orika@mellanox.com>
Applied to dpdk-next-net/master, thanks.
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2018-12-11 17:28 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-11-19 16:54 [dpdk-dev] [PATCH] app/testpmd: fix MPLSoUDP encapsulation Dekel Peled
2018-11-20 8:23 ` Ori Kam
2018-11-21 15:19 ` Ferruh Yigit
2018-11-21 15:39 ` Ori Kam
2018-11-22 9:04 ` Adrien Mazarguil
2018-11-22 9:56 ` Dekel Peled
2018-11-22 10:14 ` Adrien Mazarguil
2018-11-22 16:18 ` Dekel Peled
2018-11-22 16:39 ` Ferruh Yigit
2018-12-04 13:51 ` [dpdk-dev] [PATCH v2] " Dekel Peled
2018-12-04 21:23 ` Ori Kam
2018-12-06 8:17 ` Dekel Peled
2018-12-06 9:38 ` Ori Kam
2018-12-11 17:28 ` 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).