doc: announce deprecation in crypto queue pair start/stop
[dpdk.git] / doc / guides / rel_notes / deprecation.rst
1 ABI and API Deprecation
2 =======================
3
4 See the :doc:`guidelines document for details of the ABI policy </contributing/versioning>`.
5 API and ABI deprecation notices are to be posted here.
6
7
8 Deprecation Notices
9 -------------------
10
11 * eal: both declaring and identifying devices will be streamlined in v18.05.
12   New functions will appear to query a specific port from buses, classes of
13   device and device drivers. Device declaration will be made coherent with the
14   new scheme of device identification.
15   As such, ``rte_devargs`` device representation will change.
16
17   - removal of ``name`` and ``args`` fields.
18   - The enum ``rte_devtype`` was used to identify a bus and will disappear.
19   - Functions previously deprecated will change or disappear:
20
21     + ``rte_eal_devargs_type_count``
22     + ``rte_eal_devargs_parse`` will change its format and use.
23
24 * pci: Several exposed functions are misnamed.
25   The following functions are deprecated starting from v17.11 and are replaced:
26
27   - ``eal_parse_pci_BDF`` replaced by ``rte_pci_addr_parse``
28   - ``eal_parse_pci_DomBDF`` replaced by ``rte_pci_addr_parse``
29   - ``rte_eal_compare_pci_addr`` replaced by ``rte_pci_addr_cmp``
30
31 * eal: a new set of mbuf mempool ops name APIs for user, platform and best
32   mempool names have been defined in ``rte_mbuf`` in v18.02. The uses of
33   ``rte_eal_mbuf_default_mempool_ops`` shall be replaced by
34   ``rte_mbuf_best_mempool_ops``.
35   The following function is now redundant and it is target to be deprecated
36   in 18.05:
37
38   - ``rte_eal_mbuf_default_mempool_ops``
39
40 * mbuf: The opaque ``mbuf->hash.sched`` field will be updated to support generic
41   definition in line with the ethdev TM and MTR APIs. Currently, this field
42   is defined in librte_sched in a non-generic way. The new generic format
43   will contain: queue ID, traffic class, color. Field size will not change.
44
45 * ethdev: a new Tx and Rx offload API was introduced on 17.11.
46   In the new API, offloads are divided into per-port and per-queue offloads.
47   Offloads are disabled by default and enabled per application request.
48
49   In later releases the old offloading API will be deprecated, which will include:
50   - removal of ``ETH_TXQ_FLAGS_NO*`` flags.
51   - removal of ``txq_flags`` field from ``rte_eth_txconf`` struct.
52   - removal of the offloads bit-field from ``rte_eth_rxmode`` struct.
53
54 * ethdev: the legacy filter API, including
55   ``rte_eth_dev_filter_supported()``, ``rte_eth_dev_filter_ctrl()`` as well
56   as filter types MACVLAN, ETHERTYPE, FLEXIBLE, SYN, NTUPLE, TUNNEL, FDIR,
57   HASH and L2_TUNNEL, is superseded by the generic flow API (rte_flow) in
58   PMDs that implement the latter.
59   Target release for removal of the legacy API will be defined once most
60   PMDs have switched to rte_flow.
61
62 * i40e: The default flexible payload configuration which extracts the first 16
63   bytes of the payload for RSS will be deprecated starting from 18.02. If
64   required the previous behavior can be configured using existing flow
65   director APIs. There is no ABI/API break. This change will just remove a
66   global configuration setting and require explicit configuration.
67
68 * pdump: As we changed to use generic IPC, some changes in APIs and structure
69   are expected in subsequent release.
70
71   - ``rte_pdump_set_socket_dir`` will be removed;
72   - The parameter, ``path``, of ``rte_pdump_init`` will be removed;
73   - The enum ``rte_pdump_socktype`` will be removed.
74
75 * cryptodev: The following changes will be made in the library
76   for 18.08:
77
78   - Removal of ``sym`` structure in ``rte_cryptodev_info`` structure,
79     containing fields not relevant anymore since the session mempool
80     is not internal in the crypto device anymore.
81   - Replacement of ``pci_dev`` field with the more generic ``rte_device``
82     structure.
83   - Functions ``rte_cryptodev_queue_pair_attach_sym_session()`` and
84     ``rte_cryptodev_queue_pair_dettach_sym_session()`` will be deprecated from
85     18.05 and removed in 18.08, as there are no drivers doing anything useful
86     with them.
87   - Functions ``rte_cryptodev_queue_pair_start()`` and
88     ``rte_cryptodev_queue_pair_stop()`` will be deprecated from 18.05
89     and removed in 18.08, as there are no drivers doing anything useful
90     with them.