From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bruce Richardson Subject: Re: [PATCH] doc: announce API change for rte_ether.h Date: Mon, 14 Dec 2015 16:00:25 +0000 Message-ID: <20151214160025.GA37212@bricha3-MOBL3> References: <1449790022-24126-1-git-send-email-stephen@networkplumber.org> <2618453.kF8WIUB5uB@xps13> <20151214153055.GA37304@bricha3-MOBL3> <3122170.KpSg9jKaig@xps13> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: dev@dpdk.org To: Thomas Monjalon Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by dpdk.org (Postfix) with ESMTP id 9933C8E90 for ; Mon, 14 Dec 2015 17:00:31 +0100 (CET) Content-Disposition: inline In-Reply-To: <3122170.KpSg9jKaig@xps13> List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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 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 . 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 > > > > > > 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