* [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).