DPDK patches and discussions
 help / color / mirror / Atom feed
* [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-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  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-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).