[PATCH v3 1/8] ethdev: add IPv6 routing extension header definition

Rongwei Liu rongweil at nvidia.com
Tue Jan 31 03:27:56 CET 2023


HI Stephen

BR
Rongwei

> -----Original Message-----
> From: Stephen Hemminger <stephen at networkplumber.org>
> Sent: Tuesday, January 31, 2023 00:48
> To: Rongwei Liu <rongweil at nvidia.com>
> Cc: Matan Azrad <matan at nvidia.com>; Slava Ovsiienko
> <viacheslavo at nvidia.com>; Ori Kam <orika at nvidia.com>; NBU-Contact-
> Thomas Monjalon (EXTERNAL) <thomas at monjalon.net>; Aman Singh
> <aman.deep.singh at intel.com>; Yuying Zhang <yuying.zhang at intel.com>;
> Ferruh Yigit <ferruh.yigit at amd.com>; Andrew Rybchenko
> <andrew.rybchenko at oktetlabs.ru>; Olivier Matz <olivier.matz at 6wind.com>;
> dev at dpdk.org; Raslan Darawsheh <rasland at nvidia.com>
> Subject: Re: [PATCH v3 1/8] ethdev: add IPv6 routing extension header
> definition
> 
> External email: Use caution opening links or attachments
> 
> 
> On Mon, 30 Jan 2023 05:59:33 +0200
> Rongwei Liu <rongweil at nvidia.com> wrote:
> 
> >
> > +/**
> > + * IPv6 Routing Extension Header
> > + */
> > +struct rte_ipv6_routing_ext {
> > +     uint8_t next_hdr;                       /**< Protocol, next header. */
> > +     uint8_t hdr_len;                        /**< Header length. */
> > +     uint8_t type;                           /**< Extension header type. */
> > +     uint8_t segments_left;                  /**< Valid segments number. */
> > +     __extension__
> > +     union {
> > +             rte_be32_t flags;
> > +             struct {
> > +                     uint8_t last_entry;     /**< The last_entry field of SRH */
> > +                     uint8_t flag;           /**< Packet flag. */
> > +                     rte_be16_t tag;         /**< Packet tag. */
> > +             };
> > +     };
> > +     __extension__
> > +     rte_be32_t segments[0];                 /**< Each hop IPv6 address. */
> 
> Use flex array rather than zero size.
> Zero size arrays cause warnings with later compilers.
Using flex array helps improve this network header definition but caused warning in the rte_flow_item_**
struct rte_flow_item_ipv6_routing_ext {
       struct rte_ipv6_routing_ext hdr;                                                                                                                                                                                                                    
}; 
"invalid use of structure with flexible array member [-Werror=pedantic]"


More information about the dev mailing list