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>
62 lines
3.0 KiB
ReStructuredText
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.
|