* [dpdk-dev] [PATCH] librte_lpm: define tbl entry reversely for big endian @ 2015-03-04 6:34 xuelin.shi 2015-03-04 10:48 ` Bruce Richardson 2015-03-09 14:02 ` Bruce Richardson 0 siblings, 2 replies; 11+ messages in thread From: xuelin.shi @ 2015-03-04 6:34 UTC (permalink / raw) To: bruce.richardson; +Cc: dev From: Xuelin Shi <xuelin.shi@freescale.com> This module uses type conversion between struct and int. Also truncation and comparison is used with this int. It is not safe for different endian arch. Add ifdef for big endian struct to fix this issue. Signed-off-by: Xuelin Shi <xuelin.shi@freescale.com> --- lib/librte_lpm/rte_lpm.h | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/lib/librte_lpm/rte_lpm.h b/lib/librte_lpm/rte_lpm.h index 1af150c..08a2859 100644 --- a/lib/librte_lpm/rte_lpm.h +++ b/lib/librte_lpm/rte_lpm.h @@ -96,6 +96,7 @@ extern "C" { /** Bitmask used to indicate successful lookup */ #define RTE_LPM_LOOKUP_SUCCESS 0x0100 +#if RTE_BYTE_ORDER == RTE_LITTLE_ENDIAN /** @internal Tbl24 entry structure. */ struct rte_lpm_tbl24_entry { /* Stores Next hop or group index (i.e. gindex)into tbl8. */ @@ -117,6 +118,24 @@ struct rte_lpm_tbl8_entry { uint8_t valid_group :1; /**< Group validation flag. */ uint8_t depth :6; /**< Rule depth. */ }; +#else +struct rte_lpm_tbl24_entry { + uint8_t depth :6; + uint8_t ext_entry :1; + uint8_t valid :1; + union { + uint8_t tbl8_gindex; + uint8_t next_hop; + }; +}; + +struct rte_lpm_tbl8_entry { + uint8_t depth :6; + uint8_t valid_group :1; + uint8_t valid :1; + uint8_t next_hop; +}; +#endif /** @internal Rule structure. */ struct rte_lpm_rule { -- 1.9.1 ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [dpdk-dev] [PATCH] librte_lpm: define tbl entry reversely for big endian 2015-03-04 6:34 [dpdk-dev] [PATCH] librte_lpm: define tbl entry reversely for big endian xuelin.shi @ 2015-03-04 10:48 ` Bruce Richardson 2015-03-05 2:12 ` Xuelin Shi 2015-03-09 14:02 ` Bruce Richardson 1 sibling, 1 reply; 11+ messages in thread From: Bruce Richardson @ 2015-03-04 10:48 UTC (permalink / raw) To: xuelin.shi; +Cc: dev On Wed, Mar 04, 2015 at 02:34:12PM +0800, xuelin.shi@freescale.com wrote: > From: Xuelin Shi <xuelin.shi@freescale.com> > > This module uses type conversion between struct and int. > Also truncation and comparison is used with this int. > It is not safe for different endian arch. > > Add ifdef for big endian struct to fix this issue. > > Signed-off-by: Xuelin Shi <xuelin.shi@freescale.com> > --- > lib/librte_lpm/rte_lpm.h | 19 +++++++++++++++++++ > 1 file changed, 19 insertions(+) > > diff --git a/lib/librte_lpm/rte_lpm.h b/lib/librte_lpm/rte_lpm.h > index 1af150c..08a2859 100644 > --- a/lib/librte_lpm/rte_lpm.h > +++ b/lib/librte_lpm/rte_lpm.h > @@ -96,6 +96,7 @@ extern "C" { > /** Bitmask used to indicate successful lookup */ > #define RTE_LPM_LOOKUP_SUCCESS 0x0100 > > +#if RTE_BYTE_ORDER == RTE_LITTLE_ENDIAN > /** @internal Tbl24 entry structure. */ > struct rte_lpm_tbl24_entry { > /* Stores Next hop or group index (i.e. gindex)into tbl8. */ > @@ -117,6 +118,24 @@ struct rte_lpm_tbl8_entry { > uint8_t valid_group :1; /**< Group validation flag. */ > uint8_t depth :6; /**< Rule depth. */ > }; > +#else > +struct rte_lpm_tbl24_entry { > + uint8_t depth :6; > + uint8_t ext_entry :1; > + uint8_t valid :1; Since endianness only refers to the order of bytes within a word, do the bitfields within the uint8_t really need to be swapped around too? /Bruce > + union { > + uint8_t tbl8_gindex; > + uint8_t next_hop; > + }; > +}; > + > +struct rte_lpm_tbl8_entry { > + uint8_t depth :6; > + uint8_t valid_group :1; > + uint8_t valid :1; > + uint8_t next_hop; > +}; > +#endif > > /** @internal Rule structure. */ > struct rte_lpm_rule { > -- > 1.9.1 > ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [dpdk-dev] [PATCH] librte_lpm: define tbl entry reversely for big endian 2015-03-04 10:48 ` Bruce Richardson @ 2015-03-05 2:12 ` Xuelin Shi 2015-03-06 11:13 ` Bruce Richardson 0 siblings, 1 reply; 11+ messages in thread From: Xuelin Shi @ 2015-03-05 2:12 UTC (permalink / raw) To: Bruce Richardson; +Cc: dev Hi Bruce, Yes, it needs to swap the fields. The bit field is first identified as the uint8_t and then packed. Thanks, Shi xuelin > -----Original Message----- > From: Bruce Richardson [mailto:bruce.richardson@intel.com] > Sent: Wednesday, March 04, 2015 18:48 > To: Shi Xuelin-B29237 > Cc: thomas.monjalon@6wind.com; dev@dpdk.org > Subject: Re: [PATCH] librte_lpm: define tbl entry reversely for big > endian > > On Wed, Mar 04, 2015 at 02:34:12PM +0800, xuelin.shi@freescale.com wrote: > > From: Xuelin Shi <xuelin.shi@freescale.com> > > > > This module uses type conversion between struct and int. > > Also truncation and comparison is used with this int. > > It is not safe for different endian arch. > > > > Add ifdef for big endian struct to fix this issue. > > > > Signed-off-by: Xuelin Shi <xuelin.shi@freescale.com> > > --- > > lib/librte_lpm/rte_lpm.h | 19 +++++++++++++++++++ > > 1 file changed, 19 insertions(+) > > > > diff --git a/lib/librte_lpm/rte_lpm.h b/lib/librte_lpm/rte_lpm.h index > > 1af150c..08a2859 100644 > > --- a/lib/librte_lpm/rte_lpm.h > > +++ b/lib/librte_lpm/rte_lpm.h > > @@ -96,6 +96,7 @@ extern "C" { > > /** Bitmask used to indicate successful lookup */ > > #define RTE_LPM_LOOKUP_SUCCESS 0x0100 > > > > +#if RTE_BYTE_ORDER == RTE_LITTLE_ENDIAN > > /** @internal Tbl24 entry structure. */ struct rte_lpm_tbl24_entry { > > /* Stores Next hop or group index (i.e. gindex)into tbl8. */ @@ > > -117,6 +118,24 @@ struct rte_lpm_tbl8_entry { > > uint8_t valid_group :1; /**< Group validation flag. */ > > uint8_t depth :6; /**< Rule depth. */ > > }; > > +#else > > +struct rte_lpm_tbl24_entry { > > + uint8_t depth :6; > > + uint8_t ext_entry :1; > > + uint8_t valid :1; > > Since endianness only refers to the order of bytes within a word, do the > bitfields within the uint8_t really need to be swapped around too? > > /Bruce > > > + union { > > + uint8_t tbl8_gindex; > > + uint8_t next_hop; > > + }; > > +}; > > + > > +struct rte_lpm_tbl8_entry { > > + uint8_t depth :6; > > + uint8_t valid_group :1; > > + uint8_t valid :1; > > + uint8_t next_hop; > > +}; > > +#endif > > > > /** @internal Rule structure. */ > > struct rte_lpm_rule { > > -- > > 1.9.1 > > ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [dpdk-dev] [PATCH] librte_lpm: define tbl entry reversely for big endian 2015-03-05 2:12 ` Xuelin Shi @ 2015-03-06 11:13 ` Bruce Richardson 2015-03-09 1:54 ` Xuelin Shi 0 siblings, 1 reply; 11+ messages in thread From: Bruce Richardson @ 2015-03-06 11:13 UTC (permalink / raw) To: Xuelin Shi; +Cc: dev On Thu, Mar 05, 2015 at 02:12:12AM +0000, Xuelin Shi wrote: > Hi Bruce, > > Yes, it needs to swap the fields. The bit field is first identified as the uint8_t and then packed. > > Thanks, > Shi xuelin > Am I right in thinking that this patch set supercedes that for "lpm: use field access instead of type conversion" http://dpdk.org/dev/patchwork/patch/3132/ ? > > -----Original Message----- > > From: Bruce Richardson [mailto:bruce.richardson@intel.com] > > Sent: Wednesday, March 04, 2015 18:48 > > To: Shi Xuelin-B29237 > > Cc: thomas.monjalon@6wind.com; dev@dpdk.org > > Subject: Re: [PATCH] librte_lpm: define tbl entry reversely for big > > endian > > > > On Wed, Mar 04, 2015 at 02:34:12PM +0800, xuelin.shi@freescale.com wrote: > > > From: Xuelin Shi <xuelin.shi@freescale.com> > > > > > > This module uses type conversion between struct and int. > > > Also truncation and comparison is used with this int. > > > It is not safe for different endian arch. > > > > > > Add ifdef for big endian struct to fix this issue. > > > > > > Signed-off-by: Xuelin Shi <xuelin.shi@freescale.com> > > > --- > > > lib/librte_lpm/rte_lpm.h | 19 +++++++++++++++++++ > > > 1 file changed, 19 insertions(+) > > > > > > diff --git a/lib/librte_lpm/rte_lpm.h b/lib/librte_lpm/rte_lpm.h index > > > 1af150c..08a2859 100644 > > > --- a/lib/librte_lpm/rte_lpm.h > > > +++ b/lib/librte_lpm/rte_lpm.h > > > @@ -96,6 +96,7 @@ extern "C" { > > > /** Bitmask used to indicate successful lookup */ > > > #define RTE_LPM_LOOKUP_SUCCESS 0x0100 > > > > > > +#if RTE_BYTE_ORDER == RTE_LITTLE_ENDIAN > > > /** @internal Tbl24 entry structure. */ struct rte_lpm_tbl24_entry { > > > /* Stores Next hop or group index (i.e. gindex)into tbl8. */ @@ > > > -117,6 +118,24 @@ struct rte_lpm_tbl8_entry { > > > uint8_t valid_group :1; /**< Group validation flag. */ > > > uint8_t depth :6; /**< Rule depth. */ > > > }; > > > +#else > > > +struct rte_lpm_tbl24_entry { > > > + uint8_t depth :6; > > > + uint8_t ext_entry :1; > > > + uint8_t valid :1; > > > > Since endianness only refers to the order of bytes within a word, do the > > bitfields within the uint8_t really need to be swapped around too? > > > > /Bruce > > > > > > + union { > > > + uint8_t tbl8_gindex; > > > + uint8_t next_hop; > > > + }; > > > +}; > > > + > > > +struct rte_lpm_tbl8_entry { > > > + uint8_t depth :6; > > > + uint8_t valid_group :1; > > > + uint8_t valid :1; > > > + uint8_t next_hop; > > > +}; > > > +#endif > > > > > > /** @internal Rule structure. */ > > > struct rte_lpm_rule { > > > -- > > > 1.9.1 > > > ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [dpdk-dev] [PATCH] librte_lpm: define tbl entry reversely for big endian 2015-03-06 11:13 ` Bruce Richardson @ 2015-03-09 1:54 ` Xuelin Shi 2015-03-09 9:12 ` Mcnamara, John 0 siblings, 1 reply; 11+ messages in thread From: Xuelin Shi @ 2015-03-09 1:54 UTC (permalink / raw) To: Bruce Richardson; +Cc: dev Hi Bruce, Yes, the patch http://dpdk.org/dev/patchwork/patch/3132/ should be abandoned. Thanks, Shi xuelin > -----Original Message----- > From: Bruce Richardson [mailto:bruce.richardson@intel.com] > Sent: Friday, March 06, 2015 19:14 > To: Shi Xuelin-B29237 > Cc: thomas.monjalon@6wind.com; dev@dpdk.org > Subject: Re: [PATCH] librte_lpm: define tbl entry reversely for big > endian > > On Thu, Mar 05, 2015 at 02:12:12AM +0000, Xuelin Shi wrote: > > Hi Bruce, > > > > Yes, it needs to swap the fields. The bit field is first identified as > the uint8_t and then packed. > > > > Thanks, > > Shi xuelin > > > Am I right in thinking that this patch set supercedes that for > "lpm: use field access instead of type conversion" > http://dpdk.org/dev/patchwork/patch/3132/ ? > > > > -----Original Message----- > > > From: Bruce Richardson [mailto:bruce.richardson@intel.com] > > > Sent: Wednesday, March 04, 2015 18:48 > > > To: Shi Xuelin-B29237 > > > Cc: thomas.monjalon@6wind.com; dev@dpdk.org > > > Subject: Re: [PATCH] librte_lpm: define tbl entry reversely for big > > > endian > > > > > > On Wed, Mar 04, 2015 at 02:34:12PM +0800, xuelin.shi@freescale.com > wrote: > > > > From: Xuelin Shi <xuelin.shi@freescale.com> > > > > > > > > This module uses type conversion between struct and int. > > > > Also truncation and comparison is used with this int. > > > > It is not safe for different endian arch. > > > > > > > > Add ifdef for big endian struct to fix this issue. > > > > > > > > Signed-off-by: Xuelin Shi <xuelin.shi@freescale.com> > > > > --- > > > > lib/librte_lpm/rte_lpm.h | 19 +++++++++++++++++++ > > > > 1 file changed, 19 insertions(+) > > > > > > > > diff --git a/lib/librte_lpm/rte_lpm.h b/lib/librte_lpm/rte_lpm.h > > > > index > > > > 1af150c..08a2859 100644 > > > > --- a/lib/librte_lpm/rte_lpm.h > > > > +++ b/lib/librte_lpm/rte_lpm.h > > > > @@ -96,6 +96,7 @@ extern "C" { > > > > /** Bitmask used to indicate successful lookup */ > > > > #define RTE_LPM_LOOKUP_SUCCESS 0x0100 > > > > > > > > +#if RTE_BYTE_ORDER == RTE_LITTLE_ENDIAN > > > > /** @internal Tbl24 entry structure. */ struct > rte_lpm_tbl24_entry { > > > > /* Stores Next hop or group index (i.e. gindex)into tbl8. */ > @@ > > > > -117,6 +118,24 @@ struct rte_lpm_tbl8_entry { > > > > uint8_t valid_group :1; /**< Group validation flag. */ > > > > uint8_t depth :6; /**< Rule depth. */ > > > > }; > > > > +#else > > > > +struct rte_lpm_tbl24_entry { > > > > + uint8_t depth :6; > > > > + uint8_t ext_entry :1; > > > > + uint8_t valid :1; > > > > > > Since endianness only refers to the order of bytes within a word, do > > > the bitfields within the uint8_t really need to be swapped around too? > > > > > > /Bruce > > > > > > > > > + union { > > > > + uint8_t tbl8_gindex; > > > > + uint8_t next_hop; > > > > + }; > > > > +}; > > > > + > > > > +struct rte_lpm_tbl8_entry { > > > > + uint8_t depth :6; > > > > + uint8_t valid_group :1; > > > > + uint8_t valid :1; > > > > + uint8_t next_hop; > > > > +}; > > > > +#endif > > > > > > > > /** @internal Rule structure. */ > > > > struct rte_lpm_rule { > > > > -- > > > > 1.9.1 > > > > ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [dpdk-dev] [PATCH] librte_lpm: define tbl entry reversely for big endian 2015-03-09 1:54 ` Xuelin Shi @ 2015-03-09 9:12 ` Mcnamara, John 2015-03-09 9:35 ` Xuelin Shi 2015-03-09 14:04 ` Thomas Monjalon 0 siblings, 2 replies; 11+ messages in thread From: Mcnamara, John @ 2015-03-09 9:12 UTC (permalink / raw) To: Xuelin Shi, Richardson, Bruce; +Cc: dev > -----Original Message----- > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Xuelin Shi > Sent: Monday, March 9, 2015 1:54 AM > To: Richardson, Bruce > Cc: dev@dpdk.org > Subject: Re: [dpdk-dev] [PATCH] librte_lpm: define tbl entry reversely for > big endian > > Yes, the patch http://dpdk.org/dev/patchwork/patch/3132/ should be > abandoned. > Hi, If you register and login to the DPDK patchwork site you can mark the patch as "Not Applicable" or whatever category now applies. http://dpdk.org/dev/patchwork/user/login/ John ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [dpdk-dev] [PATCH] librte_lpm: define tbl entry reversely for big endian 2015-03-09 9:12 ` Mcnamara, John @ 2015-03-09 9:35 ` Xuelin Shi 2015-03-09 14:04 ` Thomas Monjalon 1 sibling, 0 replies; 11+ messages in thread From: Xuelin Shi @ 2015-03-09 9:35 UTC (permalink / raw) To: Mcnamara, John, Richardson, Bruce; +Cc: dev Hi, OK, done. Marked as "not applicable". Thanks, Shi > -----Original Message----- > From: Mcnamara, John [mailto:john.mcnamara@intel.com] > Sent: Monday, March 09, 2015 17:13 > To: Shi Xuelin-B29237; Richardson, Bruce > Cc: dev@dpdk.org > Subject: RE: [dpdk-dev] [PATCH] librte_lpm: define tbl entry reversely > for big endian > > > -----Original Message----- > > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Xuelin Shi > > Sent: Monday, March 9, 2015 1:54 AM > > To: Richardson, Bruce > > Cc: dev@dpdk.org > > Subject: Re: [dpdk-dev] [PATCH] librte_lpm: define tbl entry reversely > > for big endian > > > > Yes, the patch http://dpdk.org/dev/patchwork/patch/3132/ should be > > abandoned. > > > > Hi, > > If you register and login to the DPDK patchwork site you can mark the > patch as "Not Applicable" or whatever category now applies. > > http://dpdk.org/dev/patchwork/user/login/ > > John ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [dpdk-dev] [PATCH] librte_lpm: define tbl entry reversely for big endian 2015-03-09 9:12 ` Mcnamara, John 2015-03-09 9:35 ` Xuelin Shi @ 2015-03-09 14:04 ` Thomas Monjalon 1 sibling, 0 replies; 11+ messages in thread From: Thomas Monjalon @ 2015-03-09 14:04 UTC (permalink / raw) To: Mcnamara, John; +Cc: dev, Xuelin Shi 2015-03-09 09:12, Mcnamara, John: > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Xuelin Shi > > Yes, the patch http://dpdk.org/dev/patchwork/patch/3132/ should be > > abandoned. > > If you register and login to the DPDK patchwork site you can mark the patch > as "Not Applicable" or whatever category now applies. > > http://dpdk.org/dev/patchwork/user/login/ "superseded" would be more appropriate here. Generally, "not applicable" should be used for emails which are not real patches or really wrongly formatted. ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [dpdk-dev] [PATCH] librte_lpm: define tbl entry reversely for big endian 2015-03-04 6:34 [dpdk-dev] [PATCH] librte_lpm: define tbl entry reversely for big endian xuelin.shi 2015-03-04 10:48 ` Bruce Richardson @ 2015-03-09 14:02 ` Bruce Richardson 2015-03-23 14:03 ` Thomas Monjalon 1 sibling, 1 reply; 11+ messages in thread From: Bruce Richardson @ 2015-03-09 14:02 UTC (permalink / raw) To: xuelin.shi; +Cc: dev On Wed, Mar 04, 2015 at 02:34:12PM +0800, xuelin.shi@freescale.com wrote: > From: Xuelin Shi <xuelin.shi@freescale.com> > > This module uses type conversion between struct and int. > Also truncation and comparison is used with this int. > It is not safe for different endian arch. > > Add ifdef for big endian struct to fix this issue. > > Signed-off-by: Xuelin Shi <xuelin.shi@freescale.com> > --- > lib/librte_lpm/rte_lpm.h | 19 +++++++++++++++++++ > 1 file changed, 19 insertions(+) > > diff --git a/lib/librte_lpm/rte_lpm.h b/lib/librte_lpm/rte_lpm.h > index 1af150c..08a2859 100644 > --- a/lib/librte_lpm/rte_lpm.h > +++ b/lib/librte_lpm/rte_lpm.h > @@ -96,6 +96,7 @@ extern "C" { > /** Bitmask used to indicate successful lookup */ > #define RTE_LPM_LOOKUP_SUCCESS 0x0100 > > +#if RTE_BYTE_ORDER == RTE_LITTLE_ENDIAN > /** @internal Tbl24 entry structure. */ > struct rte_lpm_tbl24_entry { > /* Stores Next hop or group index (i.e. gindex)into tbl8. */ > @@ -117,6 +118,24 @@ struct rte_lpm_tbl8_entry { > uint8_t valid_group :1; /**< Group validation flag. */ > uint8_t depth :6; /**< Rule depth. */ > }; > +#else > +struct rte_lpm_tbl24_entry { > + uint8_t depth :6; > + uint8_t ext_entry :1; > + uint8_t valid :1; > + union { > + uint8_t tbl8_gindex; > + uint8_t next_hop; > + }; > +}; > + > +struct rte_lpm_tbl8_entry { > + uint8_t depth :6; > + uint8_t valid_group :1; > + uint8_t valid :1; > + uint8_t next_hop; > +}; > +#endif > > /** @internal Rule structure. */ > struct rte_lpm_rule { > -- > 1.9.1 > Get an error compiling this up (using clang on FreeBSD). CC rte_lpm.o In file included from /usr/home/bruce/dpdk.org/lib/librte_lpm/rte_lpm.c:57: /usr/home/bruce/dpdk.org/lib/librte_lpm/rte_lpm.h:99:5: fatal error: 'RTE_BYTE_ORDER' is not defined, evaluates to 0 [-Wundef] #if RTE_BYTE_ORDER == RTE_LITTLE_ENDIAN ^ 1 error generated. Adding "#include <rte_byteorder.h>" should fix the issue. Existing unit tests on IA (little endian) pass fine there-after, but I think for this patch it would be good to have an ack from someone who can validate on a big endian system, since this is what this patch is meant to enable. /Bruce ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [dpdk-dev] [PATCH] librte_lpm: define tbl entry reversely for big endian 2015-03-09 14:02 ` Bruce Richardson @ 2015-03-23 14:03 ` Thomas Monjalon 2015-03-24 7:28 ` Xuelin Shi 0 siblings, 1 reply; 11+ messages in thread From: Thomas Monjalon @ 2015-03-23 14:03 UTC (permalink / raw) To: xuelin.shi; +Cc: dev 2015-03-09 14:02, Bruce Richardson: > On Wed, Mar 04, 2015 at 02:34:12PM +0800, xuelin.shi@freescale.com wrote: > > From: Xuelin Shi <xuelin.shi@freescale.com> > > > > This module uses type conversion between struct and int. > > Also truncation and comparison is used with this int. > > It is not safe for different endian arch. > > > > Add ifdef for big endian struct to fix this issue. > > > > Signed-off-by: Xuelin Shi <xuelin.shi@freescale.com> > > Get an error compiling this up (using clang on FreeBSD). > > CC rte_lpm.o > In file included from /usr/home/bruce/dpdk.org/lib/librte_lpm/rte_lpm.c:57: > /usr/home/bruce/dpdk.org/lib/librte_lpm/rte_lpm.h:99:5: fatal error: 'RTE_BYTE_ORDER' is not defined, evaluates to 0 [-Wundef] > #if RTE_BYTE_ORDER == RTE_LITTLE_ENDIAN > ^ > 1 error generated. > > Adding "#include <rte_byteorder.h>" should fix the issue. Please Xuelin, could you submit a v2? Thanks > Existing unit tests on IA (little endian) pass fine there-after, but I think for > this patch it would be good to have an ack from someone who can validate on > a big endian system, since this is what this patch is meant to enable. > > /Bruce > ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [dpdk-dev] [PATCH] librte_lpm: define tbl entry reversely for big endian 2015-03-23 14:03 ` Thomas Monjalon @ 2015-03-24 7:28 ` Xuelin Shi 0 siblings, 0 replies; 11+ messages in thread From: Xuelin Shi @ 2015-03-24 7:28 UTC (permalink / raw) To: Thomas Monjalon; +Cc: dev Hi Thomas, Done. http://patchwork.dpdk.org/dev/patchwork/patch/4122/ Thanks, Xuelin Shi > -----Original Message----- > From: Thomas Monjalon [mailto:thomas.monjalon@6wind.com] > Sent: Monday, March 23, 2015 22:04 > To: Shi Xuelin-B29237 > Cc: Bruce Richardson; dev@dpdk.org > Subject: Re: [PATCH] librte_lpm: define tbl entry reversely for big > endian > > 2015-03-09 14:02, Bruce Richardson: > > On Wed, Mar 04, 2015 at 02:34:12PM +0800, xuelin.shi@freescale.com > wrote: > > > From: Xuelin Shi <xuelin.shi@freescale.com> > > > > > > This module uses type conversion between struct and int. > > > Also truncation and comparison is used with this int. > > > It is not safe for different endian arch. > > > > > > Add ifdef for big endian struct to fix this issue. > > > > > > Signed-off-by: Xuelin Shi <xuelin.shi@freescale.com> > > > > Get an error compiling this up (using clang on FreeBSD). > > > > CC rte_lpm.o > > In file included from > /usr/home/bruce/dpdk.org/lib/librte_lpm/rte_lpm.c:57: > > /usr/home/bruce/dpdk.org/lib/librte_lpm/rte_lpm.h:99:5: fatal error: > > 'RTE_BYTE_ORDER' is not defined, evaluates to 0 [-Wundef] #if > RTE_BYTE_ORDER == RTE_LITTLE_ENDIAN > > ^ > > 1 error generated. > > > > Adding "#include <rte_byteorder.h>" should fix the issue. > > Please Xuelin, could you submit a v2? > Thanks > > > Existing unit tests on IA (little endian) pass fine there-after, but I > > think for this patch it would be good to have an ack from someone who > > can validate on a big endian system, since this is what this patch is > meant to enable. > > > > /Bruce > > > ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2015-03-24 7:28 UTC | newest] Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2015-03-04 6:34 [dpdk-dev] [PATCH] librte_lpm: define tbl entry reversely for big endian xuelin.shi 2015-03-04 10:48 ` Bruce Richardson 2015-03-05 2:12 ` Xuelin Shi 2015-03-06 11:13 ` Bruce Richardson 2015-03-09 1:54 ` Xuelin Shi 2015-03-09 9:12 ` Mcnamara, John 2015-03-09 9:35 ` Xuelin Shi 2015-03-09 14:04 ` Thomas Monjalon 2015-03-09 14:02 ` Bruce Richardson 2015-03-23 14:03 ` Thomas Monjalon 2015-03-24 7:28 ` Xuelin Shi
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).