numam-dpdk/doc/guides/rel_notes/deprecation.rst
Olivier Matz b37b528d95 mbuf: add new Rx flags for stripped VLAN
The behavior of PKT_RX_VLAN_PKT was not very well defined, resulting in
PMDs not advertising the same flags in similar conditions.

Following discussion in [1], introduce 2 new flags PKT_RX_VLAN_STRIPPED
and PKT_RX_QINQ_STRIPPED that are better defined:

  PKT_RX_VLAN_STRIPPED: a vlan has been stripped by the hardware and its
  tci is saved in mbuf->vlan_tci. This can only happen if vlan stripping
  is enabled in the RX configuration of the PMD.

For now, the old flag PKT_RX_VLAN_PKT is kept but marked as deprecated.
It should be removed from applications and PMDs in a future revision.

This patch also updates the drivers. For PKT_RX_VLAN_PKT:

- e1000, enic, i40e, mlx5, nfp, vmxnet3: done, PKT_RX_VLAN_PKT already
  had the same meaning than PKT_RX_VLAN_STRIPPED, minor update is
  required.
- fm10k: done, PKT_RX_VLAN_PKT already had the same meaning than
  PKT_RX_VLAN_STRIPPED, and vlan stripping is always enabled on fm10k.
- ixgbe: modification done (vector and normal), the old flag was set
  when a vlan was recognized, even if vlan stripping was disabled.
- the other drivers do not support vlan stripping.

For PKT_RX_QINQ_PKT, it was only supported on i40e, and the behavior was
already correct, so we can reuse the same bit value for
PKT_RX_QINQ_STRIPPED.

[1] http://dpdk.org/ml/archives/dev/2016-April/037837.html,

Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
2016-06-15 17:18:57 +02:00

62 lines
3.0 KiB
ReStructuredText

ABI and API Deprecation
=======================
See the :doc:`guidelines document for details of the ABI policy </contributing/versioning>`.
API and ABI deprecation notices are to be posted here.
Deprecation Notices
-------------------
* The log history is deprecated.
It is voided in 16.07 and will be removed in release 16.11.
* The ethdev hotplug API is going to be moved to EAL with a notification
mechanism added to crypto and ethdev libraries so that hotplug is now
available to both of them. This API will be stripped of the device arguments
so that it only cares about hotplugging.
* Structures embodying pci and vdev devices are going to be reworked to
integrate new common rte_device / rte_driver objects (see
http://dpdk.org/ml/archives/dev/2016-January/031390.html).
ethdev and crypto libraries will then only handle those objects so that they
do not need to care about the kind of devices that are being used, making it
easier to add new buses later.
* The xstats API and rte_eth_xstats struct will be changed to allow retrieval
of values without any string copies or parsing.
No backwards compatibility is planned, as it would require code duplication
in every PMD that supports xstats.
* ABI changes are planned for adding four new flow types. This impacts
RTE_ETH_FLOW_MAX. The release 2.2 does not contain these ABI changes,
but release 2.3 will. [postponed]
* ABI will change for rte_mempool struct to move the cache-related fields
to the more appropriate rte_mempool_cache struct. The mempool API is
also changed to enable external cache management that is not tied to EAL
threads. Some mempool get and put calls are removed in favor of a more
compact API. The ones that remain are backwards compatible and use the
per-lcore default cache if available. This change targets release 16.07.
* The rte_mempool struct will be changed in 16.07 to facilitate the new
external mempool manager functionality.
The ring element will be replaced with a more generic 'pool' opaque pointer
to allow new mempool handlers to use their own user-defined mempool
layout. Also newly added to rte_mempool is a handler index.
The existing API will be backward compatible, but there will be new API
functions added to facilitate the creation of mempools using an external
handler. The 16.07 release will contain these changes.
* A librte_vhost public structures refactor is planned for DPDK 16.07
that requires both ABI and API change.
The proposed refactor would expose DPDK vhost dev to applications as
a handle, like the way kernel exposes an fd to user for locating a
specific file, and to keep all major structures internally, so that
we are likely to be free from ABI violations in future.
* The mbuf flags PKT_RX_VLAN_PKT and PKT_RX_QINQ_PKT are deprecated and
are respectively replaced by PKT_RX_VLAN_STRIPPED and
PKT_RX_QINQ_STRIPPED, that are better described. The old flags and
their behavior will be kept in 16.07 and will be removed in 16.11.