The ethernet address structure alignment will be changed to 2B alignment in 19.11. Flag this to users. Impact is expected to be minimal for this change since ethernet addresses are generally 2B aligned anyway. Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> --- doc/guides/rel_notes/deprecation.rst | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst index a7796f49b..7a04b9b09 100644 --- a/doc/guides/rel_notes/deprecation.rst +++ b/doc/guides/rel_notes/deprecation.rst @@ -11,6 +11,11 @@ API and ABI deprecation notices are to be posted here. Deprecation Notices ------------------- +* net: The alignment of the ethernet address structure in DPDK, + ``rte_ether_addr`` will be increased to two, i.e. 16-bit aligned, in the + 19.11 release. This will only affect any data structures where an ethernet + address is currently aligned on a single byte boundary. + * meson: The minimum supported version of meson for configuring and building DPDK will be increased to v0.47.1 (from 0.41) from DPDK 19.05 onwards. For those users with a version earlier than 0.47.1, an updated copy of meson -- 2.21.0
On Tue, 9 Jul 2019 15:58:36 +0100
Bruce Richardson <bruce.richardson@intel.com> wrote:
> The ethernet address structure alignment will be changed to 2B alignment in
> 19.11. Flag this to users.
>
> Impact is expected to be minimal for this change since ethernet addresses
> are generally 2B aligned anyway.
>
> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
> ---
> doc/guides/rel_notes/deprecation.rst | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
> index a7796f49b..7a04b9b09 100644
> --- a/doc/guides/rel_notes/deprecation.rst
> +++ b/doc/guides/rel_notes/deprecation.rst
> @@ -11,6 +11,11 @@ API and ABI deprecation notices are to be posted here.
> Deprecation Notices
> -------------------
>
> +* net: The alignment of the ethernet address structure in DPDK,
> + ``rte_ether_addr`` will be increased to two, i.e. 16-bit aligned, in the
> + 19.11 release. This will only affect any data structures where an ethernet
> + address is currently aligned on a single byte boundary.
> +
> * meson: The minimum supported version of meson for configuring and building
> DPDK will be increased to v0.47.1 (from 0.41) from DPDK 19.05 onwards. For
> those users with a version earlier than 0.47.1, an updated copy of meson
We should also take the packed off of ether_header and ether_addr.
Packed is meaningless on ether_addr anyway.
On Tue, Jul 09, 2019 at 07:59:53AM -0700, Stephen Hemminger wrote:
> On Tue, 9 Jul 2019 15:58:36 +0100
> Bruce Richardson <bruce.richardson@intel.com> wrote:
>
> > The ethernet address structure alignment will be changed to 2B alignment in
> > 19.11. Flag this to users.
> >
> > Impact is expected to be minimal for this change since ethernet addresses
> > are generally 2B aligned anyway.
> >
> > Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
> > ---
> > doc/guides/rel_notes/deprecation.rst | 5 +++++
> > 1 file changed, 5 insertions(+)
> >
> > diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
> > index a7796f49b..7a04b9b09 100644
> > --- a/doc/guides/rel_notes/deprecation.rst
> > +++ b/doc/guides/rel_notes/deprecation.rst
> > @@ -11,6 +11,11 @@ API and ABI deprecation notices are to be posted here.
> > Deprecation Notices
> > -------------------
> >
> > +* net: The alignment of the ethernet address structure in DPDK,
> > + ``rte_ether_addr`` will be increased to two, i.e. 16-bit aligned, in the
> > + 19.11 release. This will only affect any data structures where an ethernet
> > + address is currently aligned on a single byte boundary.
> > +
> > * meson: The minimum supported version of meson for configuring and building
> > DPDK will be increased to v0.47.1 (from 0.41) from DPDK 19.05 onwards. For
> > those users with a version earlier than 0.47.1, an updated copy of meson
>
> We should also take the packed off of ether_header and ether_addr.
> Packed is meaningless on ether_addr anyway.
Agreed. However, I don't think that needs to be called out here as it's a
code change with zero impact. The user-impacting change is the alignment
one.
/Bruce
Tell users about upcoming changes to rte_ether_addr and rte_ether_header. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> --- doc/guides/rel_notes/deprecation.rst | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst index a7796f49b9fe..9c20a47b3e4c 100644 --- a/doc/guides/rel_notes/deprecation.rst +++ b/doc/guides/rel_notes/deprecation.rst @@ -82,3 +82,12 @@ Deprecation Notices to set new power environment if power environment was already initialized. In this case the function will return -1 unless the environment is unset first (using ``rte_power_unset_env``). Other function usage scenarios will not change. + +* net: the Ethernet address and header defintions will change attributes. + The Ethernet address struct will no longer be marked as packed since + since the packed attribute is meaningless on a byte array. + The Etherne header will be marked as aligned on a 2 byte boundary (and + no longer packed). This allows for efficient access on all CPU's. + These changes should not impact normal usage drivers naturally + align the Ethernet header on receive, and almost every encapsulation + preserves the alignment. -- 2.17.1
On Thu, Jul 18, 2019 at 03:09:10PM -0700, Stephen Hemminger wrote:
> Tell users about upcoming changes to rte_ether_addr and
> rte_ether_header.
>
> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
> ---
> doc/guides/rel_notes/deprecation.rst | 9 +++++++++
> 1 file changed, 9 insertions(+)
>
> diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
> index a7796f49b9fe..9c20a47b3e4c 100644
> --- a/doc/guides/rel_notes/deprecation.rst
> +++ b/doc/guides/rel_notes/deprecation.rst
> @@ -82,3 +82,12 @@ Deprecation Notices
> to set new power environment if power environment was already initialized.
> In this case the function will return -1 unless the environment is unset first
> (using ``rte_power_unset_env``). Other function usage scenarios will not change.
> +
> +* net: the Ethernet address and header defintions will change attributes.
> + The Ethernet address struct will no longer be marked as packed since
> + since the packed attribute is meaningless on a byte array.
> + The Etherne header will be marked as aligned on a 2 byte boundary (and
> + no longer packed). This allows for efficient access on all CPU's.
> + These changes should not impact normal usage drivers naturally
> + align the Ethernet header on receive, and almost every encapsulation
> + preserves the alignment.
> --
> 2.17.1
More comprehensive deprecation notice than mine, so:
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
One suggested change, rather than "almost every encapsulation" can we put
it down as "all known encapsulations". If there is even a single public
spec, in-real-use encapsulation that is used that does not preserve
alignment, we should not do this. Saying "almost every" implies that we
know of ones that don't, which I don't believe is the case.
/Bruce
Tell users about upcoming changes to rte_ether_addr and rte_ether_header. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Bruce Richardson <bruce.richardson@intel.com> --- v2 - reword and fix spelling doc/guides/rel_notes/deprecation.rst | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst index a7796f49b9fe..307f831cee60 100644 --- a/doc/guides/rel_notes/deprecation.rst +++ b/doc/guides/rel_notes/deprecation.rst @@ -82,3 +82,13 @@ Deprecation Notices to set new power environment if power environment was already initialized. In this case the function will return -1 unless the environment is unset first (using ``rte_power_unset_env``). Other function usage scenarios will not change. + +* net: the Ethernet address and header definitions will change + attributes. The Ethernet address struct will no longer be marked as + packed since the packed attribute is meaningless on a byte + array. The Ethernet header will be marked as aligned on a 2-byte + boundary and will no longer have the packed attribute. This allows + for efficient access on CPU architectures where unaligned access is + expensive. These changes should not impact normal usage because drivers + naturally align the Ethernet header on receive and all known + encapsulations preserve the alignment of the header. -- 2.20.1
On 7/19/19 7:56 PM, Stephen Hemminger wrote:
> Tell users about upcoming changes to rte_ether_addr and
> rte_ether_header.
>
> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
On 7/23/2019 12:28 PM, Andrew Rybchenko wrote:
> On 7/19/19 7:56 PM, Stephen Hemminger wrote:
>> Tell users about upcoming changes to rte_ether_addr and
>> rte_ether_header.
>>
>> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
>> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
>
> Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
> >> Tell users about upcoming changes to rte_ether_addr and
> >> rte_ether_header.
> >>
> >> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
> >> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
> >
> > Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
>
> Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
06/08/2019 13:26, Thomas Monjalon:
> > >> Tell users about upcoming changes to rte_ether_addr and
> > >> rte_ether_header.
> > >>
> > >> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
> > >> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
> > >
> > > Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
> >
> > Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
>
> Acked-by: Thomas Monjalon <thomas@monjalon.net>
Applied, thanks