From: Olivier Matz <olivier.matz@6wind.com>
To: Bruce Richardson <bruce.richardson@intel.com>
Cc: dev@dpdk.org
Subject: Re: [dpdk-dev] [RFC 00/14] prefix network structures
Date: Fri, 26 Oct 2018 09:20:15 +0200 [thread overview]
Message-ID: <20181026072015.ojjuoqnwsxlqcase@platinum> (raw)
In-Reply-To: <20181024163909.GA12444@bricha3-MOBL.ger.corp.intel.com>
Hi,
On Wed, Oct 24, 2018 at 05:39:09PM +0100, Bruce Richardson wrote:
> On Wed, Oct 24, 2018 at 10:18:19AM +0200, Olivier Matz wrote:
> > This RFC targets 19.02.
> >
> > The rte_net headers conflict with the libc headers, because
> > some definitions are duplicated, sometimes with few differences.
> > This was discussed in [1], and more recently at the techboard.
> >
> > Before sending the deprecation notice (target for this is 18.11),
> > here is a draft that can be discussed.
> >
> > This RFC adds the rte_ (or RTE_) prefix to all structures, functions
> > and defines in rte_net library. This is a big changeset, that will
> > break the API of many functions, but not the ABI.
> >
> > One question I'm asking is how can we manage the transition.
> > Initially, I hoped it was possible to have a compat layer during
> > one release (supporting both prefixed and unprefixed names), but
> > now that the patch is done, it seems the impact is too big, and
> > impacts too many libraries.
> >
> > Few examples:
> > - rte_eth_macaddr_get/add/remove() use a (struct rte_ether_addr *)
> > - many rte_flow structures use the rte_ prefixed net structures
> > - the mac field of virtio_net structure is rte_ether_addr
> > - the first arg of rte_thash_load_v6_addrs is (struct rte_ipv6_hdr *)
> > ...
> >
> > Therefore, it is clear that doing this would break the compilation
> > of many external applications.
> >
>
> Can you clarify a bit as to why we can't keep around compatibility versions
> of the headers, alongside the new versions? I'm not following the logic
> above. Can we not introduce completely new headers with the replacements
> while leaving the old ones intact?
This is something I tried to do, it is not in the RFC because it was
not satisfying, but you can find it there:
http://git.droids-corp.org/?p=dpdk.git;a=commitdiff;h=ba1e8e498306
With this patch, the usage of unprefixed structures, defines and
functions in rte net is still possible by an external application,
except if RTE_NET_NO_COMPAT is defined.
However, functions and structures that are not in librte_net (the
examples from my previous mail, quoted above) use the rte_ prefixed
structures in their prototypes. For instance, an application that use
rte_eth_macaddr_get() will no compile anymore because it will pass
a (struct ether_addr *) instead of a (struct rte_ether_addr *).
I don't see any good mean to fix this. Maybe we can do something with
defines, but I don't think it is possible to provide both APIs for
functions like rte_eth_macaddr_get(). I'm also not convinced it will be
that helpful. At the end, if the patchset is applied, we want the
applications to switch to the new API. To ease the transition, we can
provide a script to patch an application, very similar to the one I use
to generate the patchset.
Olivier
next prev parent reply other threads:[~2018-10-26 7:20 UTC|newest]
Thread overview: 107+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-10-24 8:18 Olivier Matz
2018-10-24 8:18 ` [dpdk-dev] [RFC 01/14] net: add rte prefix to arp structures Olivier Matz
2018-10-24 8:18 ` [dpdk-dev] [RFC 02/14] net: add rte prefix to arp defines Olivier Matz
2018-10-24 14:53 ` Wiles, Keith
2018-10-26 7:25 ` Olivier Matz
2018-10-24 8:18 ` [dpdk-dev] [RFC 03/14] net: add rte prefix to ether structures Olivier Matz
2018-12-20 22:04 ` Ferruh Yigit
2018-10-24 8:18 ` [dpdk-dev] [RFC 04/14] net: add rte prefix to ether functions Olivier Matz
2018-10-24 8:18 ` [dpdk-dev] [RFC 05/14] net: add rte prefix to ether defines Olivier Matz
2018-10-24 8:18 ` [dpdk-dev] [RFC 06/14] net: add rte prefix to esp structure Olivier Matz
2018-10-24 8:18 ` [dpdk-dev] [RFC 07/14] net: add rte prefix to gre structure Olivier Matz
2018-10-24 8:18 ` [dpdk-dev] [RFC 08/14] net: add rte prefix to icmp structure Olivier Matz
2018-10-24 8:18 ` [dpdk-dev] [RFC 09/14] net: add rte prefix to icmp defines Olivier Matz
2018-10-24 8:18 ` [dpdk-dev] [RFC 10/14] net: add rte prefix to ip structure Olivier Matz
2018-10-24 8:18 ` [dpdk-dev] [RFC 11/14] net: add rte prefix to ip defines Olivier Matz
2018-10-24 8:18 ` [dpdk-dev] [RFC 12/14] net: add rte prefix to sctp structure Olivier Matz
2018-10-24 8:18 ` [dpdk-dev] [RFC 13/14] net: add rte prefix to tcp structure Olivier Matz
2018-10-24 8:18 ` [dpdk-dev] [RFC 14/14] net: add rte prefix to udp structure Olivier Matz
2018-10-24 8:32 ` [dpdk-dev] [RFC 00/14] prefix network structures Olivier Matz
2018-10-24 14:56 ` Wiles, Keith
2018-10-26 7:22 ` Olivier Matz
2018-10-24 16:09 ` Stephen Hemminger
2018-10-24 16:39 ` Bruce Richardson
2018-10-26 7:20 ` Olivier Matz [this message]
2018-10-26 10:15 ` Bruce Richardson
2018-10-26 11:28 ` Olivier Matz
2018-10-24 18:38 ` Stephen Hemminger
2018-10-26 7:56 ` Olivier Matz
2018-12-20 21:59 ` Ferruh Yigit
2018-12-20 23:48 ` Stephen Hemminger
2018-12-21 14:38 ` Wiles, Keith
2018-12-21 15:14 ` Ferruh Yigit
2018-12-27 9:35 ` Olivier Matz
2019-02-13 11:48 ` Yigit, Ferruh
2019-02-18 12:37 ` Ferruh Yigit
2019-02-18 16:58 ` Olivier Matz
2019-04-10 8:32 ` [dpdk-dev] [RFC v2 " Olivier Matz
2019-04-10 8:32 ` Olivier Matz
2019-04-10 8:32 ` [dpdk-dev] [RFC v2 01/14] net: add rte prefix to arp structures Olivier Matz
2019-04-10 8:32 ` Olivier Matz
2019-04-22 16:00 ` Stephen Hemminger
2019-04-22 16:00 ` Stephen Hemminger
2019-05-13 11:59 ` Olivier Matz
2019-05-13 11:59 ` Olivier Matz
2019-04-22 16:03 ` Stephen Hemminger
2019-04-22 16:03 ` Stephen Hemminger
2019-05-13 12:04 ` Olivier Matz
2019-05-13 12:04 ` Olivier Matz
2019-04-10 8:32 ` [dpdk-dev] [RFC v2 02/14] net: add rte prefix to arp defines Olivier Matz
2019-04-10 8:32 ` Olivier Matz
2019-04-10 8:32 ` [dpdk-dev] [RFC v2 03/14] net: add rte prefix to ether structures Olivier Matz
2019-04-10 8:32 ` Olivier Matz
2019-04-10 8:32 ` [dpdk-dev] [RFC v2 04/14] net: add rte prefix to ether functions Olivier Matz
2019-04-10 8:32 ` Olivier Matz
2019-04-10 8:32 ` [dpdk-dev] [RFC v2 05/14] net: add rte prefix to ether defines Olivier Matz
2019-04-10 8:32 ` Olivier Matz
2019-04-10 8:32 ` [dpdk-dev] [RFC v2 06/14] net: add rte prefix to esp structure Olivier Matz
2019-04-10 8:32 ` Olivier Matz
2019-04-10 8:32 ` [dpdk-dev] [RFC v2 07/14] net: add rte prefix to gre structure Olivier Matz
2019-04-10 8:32 ` Olivier Matz
2019-04-10 8:32 ` [dpdk-dev] [RFC v2 08/14] net: add rte prefix to icmp structure Olivier Matz
2019-04-10 8:32 ` Olivier Matz
2019-04-10 8:32 ` [dpdk-dev] [RFC v2 09/14] net: add rte prefix to icmp defines Olivier Matz
2019-04-10 8:32 ` Olivier Matz
2019-04-10 8:32 ` [dpdk-dev] [RFC v2 10/14] net: add rte prefix to ip structure Olivier Matz
2019-04-10 8:32 ` Olivier Matz
2019-04-10 8:32 ` [dpdk-dev] [RFC v2 11/14] net: add rte prefix to ip defines Olivier Matz
2019-04-10 8:32 ` Olivier Matz
2019-04-22 16:05 ` Stephen Hemminger
2019-04-22 16:05 ` Stephen Hemminger
2019-05-13 12:02 ` Olivier Matz
2019-05-13 12:02 ` Olivier Matz
2019-04-10 8:32 ` [dpdk-dev] [RFC v2 12/14] net: add rte prefix to sctp structure Olivier Matz
2019-04-10 8:32 ` Olivier Matz
2019-04-10 8:32 ` [dpdk-dev] [RFC v2 13/14] net: add rte prefix to tcp structure Olivier Matz
2019-04-10 8:32 ` Olivier Matz
2019-04-10 8:32 ` [dpdk-dev] [RFC v2 14/14] net: add rte prefix to udp structure Olivier Matz
2019-04-10 8:32 ` Olivier Matz
2019-05-20 17:11 ` [dpdk-dev] [RFC v2 00/14] prefix network structures Ferruh Yigit
2019-05-21 16:15 ` Olivier Matz
2019-05-21 16:13 ` [dpdk-dev] [PATCH 00/15] " Olivier Matz
2019-05-21 16:13 ` [dpdk-dev] [PATCH 01/15] net: add rte prefix to arp structures Olivier Matz
2019-05-24 11:37 ` Ferruh Yigit
2019-05-21 16:13 ` [dpdk-dev] [PATCH 02/15] net: add rte prefix to arp defines Olivier Matz
2019-05-21 16:13 ` [dpdk-dev] [PATCH 03/15] net: add rte prefix to ether structures Olivier Matz
2019-05-29 8:39 ` David Marchand
2019-05-21 16:13 ` [dpdk-dev] [PATCH 04/15] net: add rte prefix to ether functions Olivier Matz
2019-05-21 16:13 ` [dpdk-dev] [PATCH 05/15] net: add rte prefix to ether defines Olivier Matz
2019-05-24 11:37 ` Ferruh Yigit
2019-05-21 16:13 ` [dpdk-dev] [PATCH 06/15] net: add rte prefix to esp structure Olivier Matz
2019-05-21 16:13 ` [dpdk-dev] [PATCH 07/15] net: add rte prefix to gre structure Olivier Matz
2019-05-21 16:13 ` [dpdk-dev] [PATCH 08/15] net: add rte prefix to icmp structure Olivier Matz
2019-05-21 16:13 ` [dpdk-dev] [PATCH 09/15] net: add rte prefix to icmp defines Olivier Matz
2019-05-21 16:13 ` [dpdk-dev] [PATCH 10/15] net: add rte prefix to ip structure Olivier Matz
2019-05-21 16:13 ` [dpdk-dev] [PATCH 11/15] net: add rte prefix to ip defines Olivier Matz
2019-05-29 8:41 ` David Marchand
2019-05-21 16:13 ` [dpdk-dev] [PATCH 12/15] net: add rte prefix to sctp structure Olivier Matz
2019-05-21 16:13 ` [dpdk-dev] [PATCH 13/15] net: add rte prefix to tcp structure Olivier Matz
2019-05-21 16:13 ` [dpdk-dev] [PATCH 14/15] net: add rte prefix to udp structure Olivier Matz
2019-05-21 16:13 ` [dpdk-dev] [PATCH 15/15] doc: announce network api change Olivier Matz
2019-05-21 16:23 ` [dpdk-dev] [PATCH 00/15] prefix network structures Stephen Hemminger
2019-05-23 11:41 ` Maxime Coquelin
2019-05-24 11:38 ` Ferruh Yigit
2019-05-29 7:59 ` David Marchand
2019-05-29 14:46 ` Olivier Matz
2019-05-29 17:29 ` David Marchand
2019-05-29 21:15 ` Thomas Monjalon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20181026072015.ojjuoqnwsxlqcase@platinum \
--to=olivier.matz@6wind.com \
--cc=bruce.richardson@intel.com \
--cc=dev@dpdk.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).