X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=doc%2Fguides%2Frel_notes%2Fdeprecation.rst;h=d6cccbfdeefa3bcb7f196c80a788b5522dcb32b5;hb=7009e931d63188719a2e6b0329e9d2a796a2d7fa;hp=45eb5c4a99a5e47a3188ef099a9671f0123fb0a0;hpb=f8244c6399d9fae6afab6770ae367aef38742ea5;p=dpdk.git diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst index 45eb5c4a99..dfcca87ab9 100644 --- a/doc/guides/rel_notes/deprecation.rst +++ b/doc/guides/rel_notes/deprecation.rst @@ -1,116 +1,93 @@ +.. SPDX-License-Identifier: BSD-3-Clause + Copyright 2018 The DPDK contributors + ABI and API Deprecation ======================= -See the :doc:`guidelines document for details of the ABI policy `. -API and ABI deprecation notices are to be posted here. - +See the guidelines document for details of the :doc:`ABI policy +<../contributing/abi_policy>`. API and ABI deprecation notices are to be posted +here. Deprecation Notices ------------------- -* eal: the following functions are deprecated starting from 17.05 and will - be removed in 17.11: - - - ``rte_set_log_level``, replaced by ``rte_log_set_global_level`` - - ``rte_get_log_level``, replaced by ``rte_log_get_global_level`` - - ``rte_set_log_type``, replaced by ``rte_log_set_level`` - - ``rte_get_log_type``, replaced by ``rte_log_get_level`` - -* eal: several API and ABI changes are planned for ``rte_devargs`` in v17.11. - The format of device command line parameters will change. The bus will need - to be explicitly stated in the device declaration. The enum ``rte_devtype`` - was used to identify a bus and will disappear. - The structure ``rte_devargs`` will change. - The ``rte_devargs_list`` will be made private. - The following functions are deprecated starting from 17.08 and will either be - modified or removed in 17.11: - - - ``rte_eal_devargs_add`` - - ``rte_eal_devargs_type_count`` - - ``rte_eal_parse_devargs_str``, replaced by ``rte_eal_devargs_parse`` - -* eal: the support of Xen dom0 will be removed from EAL in 17.11; and with - that, drivers/net/xenvirt and examples/vhost_xen will also be removed. - -* eal: An ABI change is planned for 17.11 to make DPDK aware of IOVA address - translation scheme. - Reference to phys address in EAL data-structure or functions may change to - IOVA address or more appropriate name. - The change will be only for the name. - Functional aspects of the API or data-structure will remain same. - -* 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 until 17.08 and will be removed in 17.11. - -* mempool: The following will be modified in 17.11: - - - ``rte_mempool_xmem_size`` and ``rte_mempool_xmem_usage`` need to know - the mempool flag status so adding new param rte_mempool in those API. - - Removing __rte_unused int flag param from ``rte_mempool_generic_put`` - and ``rte_mempool_generic_get`` API. - - ``rte_mempool`` flags data type will changed from int to - unsigned int. - -* ethdev: Tx offloads will no longer be enabled by default in 17.11. - Instead, the ``rte_eth_txmode`` structure will be extended with - bit field to enable each Tx offload. - Besides of making the Rx/Tx configuration API more consistent for the - application, PMDs will be able to provide a better out of the box performance. - As part of the work, ``ETH_TXQ_FLAGS_NO*`` will be superseded as well. - -* ethdev: the legacy filter API, including - ``rte_eth_dev_filter_supported()``, ``rte_eth_dev_filter_ctrl()`` as well - as filter types MACVLAN, ETHERTYPE, FLEXIBLE, SYN, NTUPLE, TUNNEL, FDIR, - HASH and L2_TUNNEL, is superseded by the generic flow API (rte_flow) in - PMDs that implement the latter. - Target release for removal of the legacy API will be defined once most - PMDs have switched to rte_flow. +* 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 + can be got using the ``pip``, or ``pip3``, tool for downloading python + packages. -* ethdev: The device flag advertizing hotplug capability - ``RTE_ETH_DEV_DETACHABLE`` is not needed anymore and will be removed in - v17.11. - This capability is verified upon calling the relevant hotplug functions in EAL - by checking that the ``unplug`` ops is set in the bus. This verification is - done by the EAL and not by the ``ethdev`` layer anymore. Users relying on this - flag being present only have to remove their checks to follow the change. +* kvargs: The function ``rte_kvargs_process`` will get a new parameter + for returning key match count. It will ease handling of no-match case. -* ethdev: An ABI change is planned for 17.11 for the structure rte_eth_dev_data. - The size of the unique name will increase RTE_ETH_NAME_MAX_LEN from 32 to - 64 characters to allow using a globally unique identifier (GUID) in this field. +* eal: The function ``rte_eal_remote_launch`` will return new error codes + after read or write error on the pipe, instead of calling ``rte_panic``. -* ethdev: new parameters - ``rte_security_capabilities`` and - ``rte_security_ops`` will be added to ``rte_eth_dev_info`` and - ``rte_eth_dev`` respectively to support security operations like - ipsec inline. +* eal: both declaring and identifying devices will be streamlined in v18.11. + New functions will appear to query a specific port from buses, classes of + device and device drivers. Device declaration will be made coherent with the + new scheme of device identification. + As such, ``rte_devargs`` device representation will change. -* cryptodev: new parameters - ``rte_security_capabilities`` and - ``rte_security_ops`` will be added to ``rte_cryptodev_info`` and - ``rte_cryptodev`` respectively to support security protocol offloaded - operations. + - The enum ``rte_devtype`` was used to identify a bus and will disappear. + - Functions previously deprecated will change or disappear: -* cryptodev: the following function is deprecated starting from 17.08 and will - be removed in 17.11: + + ``rte_eal_devargs_type_count`` - - ``rte_cryptodev_create_vdev`` +* eal: The ``rte_logs`` struct and global symbol will be made private to + remove it from the externally visible ABI and allow it to be updated in the + future. -* cryptodev: the following function will be static in 17.11 and included - by all crypto drivers, therefore, will not be public: +* dpaa2: removal of ``rte_dpaa2_memsegs`` structure which has been replaced + by a pa-va search library. This structure was earlier being used for holding + memory segments used by dpaa2 driver for faster pa->va translation. This + structure would be made internal (or removed if all dependencies are cleared) + in future releases. - - ``rte_cryptodev_vdev_pmd_init`` +* mempool: starting from v20.05, the API of rte_mempool_populate_iova() + and rte_mempool_populate_virt() will change to return 0 instead + of -EINVAL when there is not enough room to store one object. The ABI + will be preserved until 20.11. -* cryptodev: the following function will have an extra parameter, passing a - statically allocated crypto driver structure, instead of calling malloc, - in 17.11: - - - ``rte_cryptodev_allocate_driver`` - -* librte_meter: The API will change to accommodate configuration profiles. - Most of the API functions will have an additional opaque parameter. +* ethdev: the legacy filter API, including + ``rte_eth_dev_filter_supported()``, ``rte_eth_dev_filter_ctrl()`` as well + as filter types MACVLAN, ETHERTYPE, FLEXIBLE, SYN, NTUPLE, TUNNEL, FDIR, + HASH and L2_TUNNEL, is superseded by the generic flow API (rte_flow) in + PMDs that implement the latter. + Target release for removal of the legacy API will be defined once most + PMDs have switched to rte_flow. -* librte_table: The ``key_mask`` parameter will be added to all the hash tables - that currently do not have it, as well as to the hash compute function prototype. - The non-"do-sig" versions of the hash tables will be removed - (including the ``signature_offset`` parameter) - and the "do-sig" versions renamed accordingly. +* ethdev: Update API functions returning ``void`` to return ``int`` with + negative errno values to indicate various error conditions (e.g. + invalid port ID, unsupported operation, failed operation): + + - ``rte_eth_dev_stop`` + - ``rte_eth_dev_close`` + +* ethdev: New offload flags ``DEV_RX_OFFLOAD_FLOW_MARK`` will be added in 19.11. + This will allow application to enable or disable PMDs from updating + ``rte_mbuf::hash::fdir``. + This scheme will allow PMDs to avoid writes to ``rte_mbuf`` fields on Rx and + thereby improve Rx performance if application wishes do so. + In 19.11 PMDs will still update the field even when the offload is not + enabled. + +* cryptodev: support for using IV with all sizes is added, J0 still can + be used but only when IV length in following structs ``rte_crypto_auth_xform``, + ``rte_crypto_aead_xform`` is set to zero. When IV length is greater or equal + to one it means it represents IV, when is set to zero it means J0 is used + directly, in this case 16 bytes of J0 need to be passed. + +* sched: To allow more traffic classes, flexible mapping of pipe queues to + traffic classes, and subport level configuration of pipes and queues + changes will be made to macros, data structures and API functions defined + in "rte_sched.h". These changes are aligned to improvements suggested in the + RFC https://mails.dpdk.org/archives/dev/2018-November/120035.html. + +* metrics: The function ``rte_metrics_init`` will have a non-void return + in order to notify errors instead of calling ``rte_exit``. + +* power: ``rte_power_set_env`` function will no longer return 0 on attempt + 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.