[v1] net: expand the data size of L3 length to 16 bits
Checks
Commit Message
The IPv6 can have large extension header, like the "Segment Routing" may
have (32 + 1) * 8 = 264 bytes, the 8 bits size of L3 length can't handle
this case correctly.
Signed-off-by: Haiyue Wang <haiyue.wang@intel.com>
---
lib/librte_net/rte_net.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
Comments
On Fri, 4 Sep 2020 13:40:20 +0800
Haiyue Wang <haiyue.wang@intel.com> wrote:
> diff --git a/lib/librte_net/rte_net.h b/lib/librte_net/rte_net.h
> index 94b06d9ee..992fb088a 100644
> --- a/lib/librte_net/rte_net.h
> +++ b/lib/librte_net/rte_net.h
> @@ -20,11 +20,11 @@ extern "C" {
> */
> struct rte_net_hdr_lens {
> uint8_t l2_len;
> - uint8_t l3_len;
> + uint16_t l3_len;
> uint8_t l4_len;
Please reorder these to avoid creating a structure hole.
> -----Original Message-----
> From: Stephen Hemminger <stephen@networkplumber.org>
> Sent: Saturday, September 5, 2020 02:56
> To: Wang, Haiyue <haiyue.wang@intel.com>
> Cc: dev@dpdk.org; Olivier Matz <olivier.matz@6wind.com>
> Subject: Re: [dpdk-dev] [PATCH v1] net: expand the data size of L3 length to 16 bits
>
> On Fri, 4 Sep 2020 13:40:20 +0800
> Haiyue Wang <haiyue.wang@intel.com> wrote:
>
> > diff --git a/lib/librte_net/rte_net.h b/lib/librte_net/rte_net.h
> > index 94b06d9ee..992fb088a 100644
> > --- a/lib/librte_net/rte_net.h
> > +++ b/lib/librte_net/rte_net.h
> > @@ -20,11 +20,11 @@ extern "C" {
> > */
> > struct rte_net_hdr_lens {
> > uint8_t l2_len;
> > - uint8_t l3_len;
> > + uint16_t l3_len;
> > uint8_t l4_len;
>
> Please reorder these to avoid creating a structure hole.
Done in v2, I use the bit field like rte_mbuf, and keep the member's original order.
@@ -20,11 +20,11 @@ extern "C" {
*/
struct rte_net_hdr_lens {
uint8_t l2_len;
- uint8_t l3_len;
+ uint16_t l3_len;
uint8_t l4_len;
uint8_t tunnel_len;
uint8_t inner_l2_len;
- uint8_t inner_l3_len;
+ uint16_t inner_l3_len;
uint8_t inner_l4_len;
};