[dpdk-dev] [PATCH] doc: announce API change for rte_ether.h

Bruce Richardson bruce.richardson at intel.com
Mon Dec 14 17:00:25 CET 2015


On Mon, Dec 14, 2015 at 04:41:28PM +0100, Thomas Monjalon wrote:
> 2015-12-14 15:30, Bruce Richardson:
> > On Mon, Dec 14, 2015 at 03:54:06PM +0100, Thomas Monjalon wrote:
> > > 2015-12-10 15:27, Stephen Hemminger:
> > > > Plan to change to <net/ethernet.h> version of struct ether_addr in
> > > > DPDK 2.3. The change in DPDK source is trivial but it will impact
> > > > source compatablilty therefore notification is necessary.
> > > [...]
> > > > +* librte_ether: The structure ether_addr in DPDK will be replaced
> > > > +  by using the standard header file <net/ethernet.h>. The structure
> > > > +  size will be the same (no ABI impact), but the structure field name
> > > > +  will change from addr_bytes[] to ether_addr_octet[].
> > > 
> > > 
> > > Acked-by: Thomas Monjalon <thomas.monjalon at 6wind.com>
> > > 
> > > Any other votes for this API cleanup?
> > > 
> > Are the structures and contents of net/ethernet.h the same on both Linux and
> > FreeBSD?
> 
> Good question. I'm afraid the answer is no.
> In FreeBSD, it is ether_addr.octet[].
> 
> Linux
> -----
> 
> struct ether_addr
> {
>   u_int8_t ether_addr_octet[ETH_ALEN];
> } __attribute__ ((__packed__));
> 
> struct ether_header
> {
>   u_int8_t  ether_dhost[ETH_ALEN];  /* destination eth addr */
>   u_int8_t  ether_shost[ETH_ALEN];  /* source ether addr */
>   u_int16_t ether_type;            /* packet type ID field  */
> } __attribute__ ((__packed__));
> 
> FreeBSD
> -------
> 
> struct ether_addr {                                                                                              
>   u_char octet[ETHER_ADDR_LEN];
> } __packed;
> 
> struct ether_header {
>   u_char  ether_dhost[ETHER_ADDR_LEN];
>   u_char  ether_shost[ETHER_ADDR_LEN];
>   u_short ether_type;
> } __packed;
> 

Unfortunate. While the idea seems good, I think the structures being different
on the different OS's is a problem that need to be solved before we make such
a change.

/Bruce


More information about the dev mailing list