From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Monjalon Subject: Re: [PATCH] doc: announce API change for rte_ether.h Date: Mon, 14 Dec 2015 16:41:28 +0100 Message-ID: <3122170.KpSg9jKaig@xps13> References: <1449790022-24126-1-git-send-email-stephen@networkplumber.org> <2618453.kF8WIUB5uB@xps13> <20151214153055.GA37304@bricha3-MOBL3> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7Bit Cc: dev@dpdk.org To: Bruce Richardson Return-path: Received: from mail-wm0-f43.google.com (mail-wm0-f43.google.com [74.125.82.43]) by dpdk.org (Postfix) with ESMTP id 31050B62 for ; Mon, 14 Dec 2015 16:42:45 +0100 (CET) Received: by mail-wm0-f43.google.com with SMTP id n186so51922269wmn.0 for ; Mon, 14 Dec 2015 07:42:45 -0800 (PST) In-Reply-To: <20151214153055.GA37304@bricha3-MOBL3> 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" 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;