xref: /dpdk/doc/guides/rel_notes/release_24_11.rst (revision 84339a739845272045ce2a5e077def38c0a2170a)
1cb9187bcSDavid Marchand.. SPDX-License-Identifier: BSD-3-Clause
2cb9187bcSDavid Marchand   Copyright 2024 The DPDK contributors
3cb9187bcSDavid Marchand
4cb9187bcSDavid Marchand.. include:: <isonum.txt>
5cb9187bcSDavid Marchand
6cb9187bcSDavid MarchandDPDK Release 24.11
7cb9187bcSDavid Marchand==================
8cb9187bcSDavid Marchand
9cb9187bcSDavid MarchandNew Features
10cb9187bcSDavid Marchand------------
11cb9187bcSDavid Marchand
12471de107SMattias Rönnblom* **Added new bit manipulation API.**
13471de107SMattias Rönnblom
14*84339a73SJohn McNamara  Extended support for bit-level operations on single 32 and 64-bit words in
15*84339a73SJohn McNamara  ``<rte_bitops.h>`` with semantically well-defined functions.
16471de107SMattias Rönnblom
17471de107SMattias Rönnblom  * ``rte_bit_[test|set|clear|assign|flip]`` functions provide excellent
18471de107SMattias Rönnblom    performance (by avoiding restricting the compiler and CPU), but give
19*84339a73SJohn McNamara    no guarantees in relation to memory ordering or atomicity.
20471de107SMattias Rönnblom
21*84339a73SJohn McNamara  * ``rte_bit_atomic_*`` provide atomic bit-level operations including
2235326b61SMattias Rönnblom    the possibility to specify memory ordering constraints.
2335326b61SMattias Rönnblom
24471de107SMattias Rönnblom  The new public API elements are polymorphic, using the _Generic-based
25471de107SMattias Rönnblom  macros (for C) and function overloading (in C++ translation units).
26471de107SMattias Rönnblom
2799a11976SMattias Rönnblom* **Added multi-word bitset API.**
2899a11976SMattias Rönnblom
29*84339a73SJohn McNamara  Introduced a new multi-word bitset API to the EAL.
30*84339a73SJohn McNamara
3199a11976SMattias Rönnblom  The RTE bitset is optimized for scenarios where the bitset size exceeds the
3299a11976SMattias Rönnblom  capacity of a single word (e.g., larger than 64 bits), but is not large
3399a11976SMattias Rönnblom  enough to justify the overhead and complexity of the more scalable,
34*84339a73SJohn McNamara  yet slower, ``<rte_bitmap.h>`` API.
3599a11976SMattias Rönnblom
36*84339a73SJohn McNamara  This addition provides an efficient and straightforward alternative
37*84339a73SJohn McNamara  for handling bitsets of intermediate size.
38*84339a73SJohn McNamara
39*84339a73SJohn McNamara* **Added a per-lcore static memory allocation facility.**
405bce9bedSMattias Rönnblom
415bce9bedSMattias Rönnblom  Added EAL API ``<rte_lcore_var.h>`` for statically allocating small,
425bce9bedSMattias Rönnblom  frequently-accessed data structures, for which one instance should exist
435bce9bedSMattias Rönnblom  for each EAL thread and registered non-EAL thread.
445bce9bedSMattias Rönnblom
455bce9bedSMattias Rönnblom  With lcore variables, data is organized spatially on a per-lcore id basis,
465bce9bedSMattias Rönnblom  rather than per library or PMD, avoiding the need for cache aligning
475bce9bedSMattias Rönnblom  (or RTE_CACHE_GUARDing) data structures, which in turn
48*84339a73SJohn McNamara  reduces CPU cache internal fragmentation and improves performance.
495bce9bedSMattias Rönnblom
505bce9bedSMattias Rönnblom  Lcore variables are similar to thread-local storage (TLS, e.g. C11 ``_Thread_local``),
51*84339a73SJohn McNamara  but decouples the values' life times from those of the threads.
525bce9bedSMattias Rönnblom
53a37e053bSMattias Rönnblom* **Extended service cores statistics.**
54a37e053bSMattias Rönnblom
55a37e053bSMattias Rönnblom  Two new per-service counters are added to the service cores framework.
56a37e053bSMattias Rönnblom
57a37e053bSMattias Rönnblom  * ``RTE_SERVICE_ATTR_IDLE_CALL_COUNT`` tracks the number of service function
58a37e053bSMattias Rönnblom    invocations where no actual work was performed.
59a37e053bSMattias Rönnblom
60*84339a73SJohn McNamara  * ``RTE_SERVICE_ATTR_ERROR_CALL_COUNT`` tracks the number of invocations
61a37e053bSMattias Rönnblom    resulting in an error.
62a37e053bSMattias Rönnblom
63a37e053bSMattias Rönnblom  The new statistics are useful for debugging and profiling.
64a37e053bSMattias Rönnblom
6580da7efbSStephen Hemminger* **Hardened rte_malloc and related functions.**
6680da7efbSStephen Hemminger
6780da7efbSStephen Hemminger  Added function attributes to ``rte_malloc`` and similar functions
6880da7efbSStephen Hemminger  that can catch some obvious bugs at compile time (with GCC 11.0 or later).
69*84339a73SJohn McNamara  For example, calling ``free`` on a pointer that was allocated with ``rte_malloc``
70*84339a73SJohn McNamara  (and vice versa); freeing the same pointer twice in the same routine or
71*84339a73SJohn McNamara  freeing an object that was not created by allocation.
7280da7efbSStephen Hemminger
73*84339a73SJohn McNamara* **Updated logging library.**
7498513036SStephen Hemminger
752773d39fSStephen Hemminger  * The log subsystem is initialized earlier in startup so all messages go through the library.
762773d39fSStephen Hemminger
779da0dc6cSStephen Hemminger  * If the application is a systemd service and the log output is being sent to standard error
789da0dc6cSStephen Hemminger    then DPDK will switch to journal native protocol.
79*84339a73SJohn McNamara    This allows more data such as severity to be sent.
809da0dc6cSStephen Hemminger
8198513036SStephen Hemminger  * The syslog option has changed.
8298513036SStephen Hemminger    By default, messages are no longer sent to syslog unless the ``--syslog`` option is specified.
8398513036SStephen Hemminger    Syslog is also supported on FreeBSD (but not on Windows).
8498513036SStephen Hemminger
8562ae1149SStephen Hemminger  * Log messages can be timestamped with ``--log-timestamp`` option.
8662ae1149SStephen Hemminger
87259f6f78SStephen Hemminger  * Log messages can be colorized with the ``--log-color`` option.
88259f6f78SStephen Hemminger
895ed98ad5SAshwin Sekhar T K* **Updated Marvell cnxk mempool driver.**
905ed98ad5SAshwin Sekhar T K
915ed98ad5SAshwin Sekhar T K  * Added mempool driver support for CN20K SoC.
925ed98ad5SAshwin Sekhar T K
9387bde5aeSRobin Jarry* **Added more ICMP message types and codes.**
9487bde5aeSRobin Jarry
95*84339a73SJohn McNamara  Added new ICMP message types and codes from RFC 792 in ``rte_icmp.h``.
9687bde5aeSRobin Jarry
97ca786defSRobin Jarry* **Added IPv6 address structure and related utilities.**
98ca786defSRobin Jarry
99ca786defSRobin Jarry  A new IPv6 address structure is now available in ``rte_ip6.h``.
100ca786defSRobin Jarry  It comes with a set of helper functions and macros.
101ca786defSRobin Jarry
10260bac722SDamodharam Ammepalli* **Added link speed lanes API.**
10360bac722SDamodharam Ammepalli
10460bac722SDamodharam Ammepalli  Added functions to query or force the link lanes configuration.
10560bac722SDamodharam Ammepalli
106be86a682SMingjin Ye* **Added Ethernet device clock frequency adjustment.**
107be86a682SMingjin Ye
108be86a682SMingjin Ye  Added the function ``rte_eth_timesync_adjust_freq``
109be86a682SMingjin Ye  to adjust the clock frequency for Ethernet devices.
110be86a682SMingjin Ye
11129e7c626SAlexander Kozyrev* **Extended flow table index features.**
11229e7c626SAlexander Kozyrev
113*84339a73SJohn McNamara  * Extended the flow table insertion type enum with the
11429e7c626SAlexander Kozyrev    ``RTE_FLOW_TABLE_INSERTION_TYPE_INDEX_WITH_PATTERN`` type.
115933f18dbSAlexander Kozyrev  * Added a function for inserting a flow rule by index with pattern:
116933f18dbSAlexander Kozyrev    ``rte_flow_async_create_by_index_with_pattern()``.
1172c52a2b3SAlexander Kozyrev  * Added a flow action to redirect packets to a particular index in a flow table:
1182c52a2b3SAlexander Kozyrev    ``RTE_FLOW_ACTION_TYPE_JUMP_TO_TABLE_INDEX``.
11929e7c626SAlexander Kozyrev
120083db2edSJie Hai* **Added support for dumping registers with names and filtering by modules.**
121083db2edSJie Hai
122083db2edSJie Hai  Added a new function ``rte_eth_dev_get_reg_info_ext()``
123083db2edSJie Hai  to filter the registers by module names and get the information
124083db2edSJie Hai  (names, values and other attributes) of the filtered registers.
125083db2edSJie Hai
126d7918d19SShai Brandes* **Updated Amazon ENA (Elastic Network Adapter) net driver.**
127d7918d19SShai Brandes
128d7918d19SShai Brandes  * Modified the PMD API that controls the LLQ header policy.
129d7918d19SShai Brandes  * Replaced ``enable_llq``, ``normal_llq_hdr`` and ``large_llq_hdr`` devargs
130*84339a73SJohn McNamara    with a new shared devarg ``llq_policy`` that maintains the same logic.
131*84339a73SJohn McNamara  * Added a validation check for Rx packet descriptor consistency.
132d7918d19SShai Brandes
13300ce4311SHyong Youb Kim* **Updated Cisco enic driver.**
13400ce4311SHyong Youb Kim
13500ce4311SHyong Youb Kim  * Added SR-IOV VF support.
136543617f4SHyong Youb Kim  * Added recent 1400/14000 and 15000 models to the supported list.
13700ce4311SHyong Youb Kim
1381bf0fd7eSNithin Dabilpuram* **Updated Marvell cnxk net driver.**
1391bf0fd7eSNithin Dabilpuram
1401bf0fd7eSNithin Dabilpuram  * Added ethdev driver support for CN20K SoC.
1411bf0fd7eSNithin Dabilpuram
142a1c2c9dbSOleksandr Kolomeiets* **Updated Napatech ntnic net driver [EXPERIMENTAL].**
143a1c2c9dbSOleksandr Kolomeiets
144a1c2c9dbSOleksandr Kolomeiets  * Updated supported version of the FPGA to 9563.55.49.
1453489b87bSDanylo Vodopianov  * Extended and fixed logging.
146*84339a73SJohn McNamara  * Added:
147*84339a73SJohn McNamara
148*84339a73SJohn McNamara    - NT flow filter initialization.
149*84339a73SJohn McNamara    - NT flow backend initialization.
150*84339a73SJohn McNamara    - Initialization of FPGA modules related to flow HW offload.
151*84339a73SJohn McNamara    - Basic handling of the virtual queues.
152*84339a73SJohn McNamara    - Flow handling support.
153*84339a73SJohn McNamara    - Statistics support.
154*84339a73SJohn McNamara    - Age flow action support.
155*84339a73SJohn McNamara    - Meter flow metering and flow policy support.
156*84339a73SJohn McNamara    - Flow actions update support.
157*84339a73SJohn McNamara    - Asynchronous flow support.
158*84339a73SJohn McNamara    - MTU update support.
159a1c2c9dbSOleksandr Kolomeiets
16036c379c8SAlexander Kozyrev* **Updated NVIDIA mlx5 net driver.**
16136c379c8SAlexander Kozyrev
16236c379c8SAlexander Kozyrev  * Added ``rte_flow_async_create_by_index_with_pattern()`` support.
163af154d7aSAlexander Kozyrev  * Added jump to flow table index support.
16436c379c8SAlexander Kozyrev
1659b170cfcSHoward Wang* **Added Realtek r8169 net driver.**
1669b170cfcSHoward Wang
1679b170cfcSHoward Wang  Added a new network PMD which supports Realtek 2.5 and 5 Gigabit
1689b170cfcSHoward Wang  Ethernet NICs.
1699b170cfcSHoward Wang
17029e89288SJunlong Wang* **Added ZTE zxdh net driver [EXPERIMENTAL].**
17129e89288SJunlong Wang
172*84339a73SJohn McNamara  Added ethdev driver support for the zxdh NX Series Ethernet Controller.
173*84339a73SJohn McNamara  This has:
17429e89288SJunlong Wang
175*84339a73SJohn McNamara  * The ability to initialize the NIC.
17629e89288SJunlong Wang  * No datapath support.
17729e89288SJunlong Wang
1780a054e8dSVidya Sagar Velumuri* **Added cryptodev queue pair reset support.**
1790a054e8dSVidya Sagar Velumuri
1800a054e8dSVidya Sagar Velumuri  A new API ``rte_cryptodev_queue_pair_reset`` is added
1810a054e8dSVidya Sagar Velumuri  to reset a particular queue pair of a device.
1820a054e8dSVidya Sagar Velumuri
1838bd4315cSGowrishankar Muthukrishnan* **Added cryptodev asymmetric EdDSA support.**
1848bd4315cSGowrishankar Muthukrishnan
1858bd4315cSGowrishankar Muthukrishnan  Added asymmetric EdDSA as referenced in `RFC 8032
1868bd4315cSGowrishankar Muthukrishnan  <https://datatracker.ietf.org/doc/html/rfc8032>`_.
1878bd4315cSGowrishankar Muthukrishnan
1884acc862bSHanxiao Li* **Added cryptodev SM4-XTS support.**
1894acc862bSHanxiao Li
1904acc862bSHanxiao Li  Added symmetric cipher algorithm ShangMi 4 (SM4) in XTS mode.
1914acc862bSHanxiao Li
1929a1d4797SBrian Dooley* **Updated IPsec_MB crypto driver.**
1939a1d4797SBrian Dooley
194*84339a73SJohn McNamara  * Added support for the SM3 algorithm.
195*84339a73SJohn McNamara  * Added support for the SM3 HMAC algorithm.
196*84339a73SJohn McNamara  * Added support for the SM4 CBC, SM4 ECB and SM4 CTR algorithms.
1978484d74bSBrian Dooley  * Bumped the minimum version requirement of Intel IPsec Multi-buffer library to v1.4.
1988484d74bSBrian Dooley    Affected PMDs: KASUMI, SNOW3G, ZUC, AESNI GCM, AESNI MB and CHACHAPOLY.
1999a1d4797SBrian Dooley
2005a74d7fdSGowrishankar Muthukrishnan* **Updated openssl crypto driver.**
2015a74d7fdSGowrishankar Muthukrishnan
2025a74d7fdSGowrishankar Muthukrishnan  * Added support for asymmetric crypto EdDSA algorithm.
2035a74d7fdSGowrishankar Muthukrishnan
204a8ebe94fSGowrishankar Muthukrishnan* **Updated Marvell cnxk crypto driver.**
205a8ebe94fSGowrishankar Muthukrishnan
206a8ebe94fSGowrishankar Muthukrishnan  * Added support for asymmetric crypto EdDSA algorithm.
207a8ebe94fSGowrishankar Muthukrishnan
208aae98b8cSAakash Sasidharan* **Added stateless IPsec processing.**
209aae98b8cSAakash Sasidharan
210aae98b8cSAakash Sasidharan  New functions were added to enable
211aae98b8cSAakash Sasidharan  providing sequence number to be used for the IPsec operation.
212aae98b8cSAakash Sasidharan
2132dff0bcdSVamsi Attunuru* **Added strict priority capability for dmadev.**
2142dff0bcdSVamsi Attunuru
2152dff0bcdSVamsi Attunuru  Added new capability flag ``RTE_DMA_CAPA_PRI_POLICY_SP``
2162dff0bcdSVamsi Attunuru  to check if the DMA device supports assigning fixed priority,
2172dff0bcdSVamsi Attunuru  allowing for better control over resource allocation and scheduling.
2182dff0bcdSVamsi Attunuru
219fca0bae9SVamsi Attunuru* **Updated Marvell cnxk DMA driver.**
220fca0bae9SVamsi Attunuru
221fca0bae9SVamsi Attunuru  * Added support for DMA queue priority configuration.
222fca0bae9SVamsi Attunuru
223384903edSAkhil Goyal* **Added Marvell cnxk RVU LF rawdev driver.**
224384903edSAkhil Goyal
225384903edSAkhil Goyal  Added a new raw device driver for Marvell cnxk based devices
226*84339a73SJohn McNamara  to allow an out-of-tree driver to manage a RVU LF device.
227384903edSAkhil Goyal  It enables operations such as sending/receiving mailbox,
228384903edSAkhil Goyal  register and notify the interrupts, etc.
229384903edSAkhil Goyal
230acc65ee3SPavan Nikhilesh* **Added event device pre-scheduling support.**
231acc65ee3SPavan Nikhilesh
232acc65ee3SPavan Nikhilesh  Added support for pre-scheduling of events to event ports
233acc65ee3SPavan Nikhilesh  to improve scheduling performance and latency.
234acc65ee3SPavan Nikhilesh
235acc65ee3SPavan Nikhilesh  * Added ``rte_event_dev_config::preschedule_type``
236acc65ee3SPavan Nikhilesh    to configure the device level pre-scheduling type.
237acc65ee3SPavan Nikhilesh
238c1bdd86dSPavan Nikhilesh  * Added ``rte_event_port_preschedule_modify``
239c1bdd86dSPavan Nikhilesh    to modify pre-scheduling type on a given event port.
240c1bdd86dSPavan Nikhilesh
2414ade669cSPavan Nikhilesh  * Added ``rte_event_port_preschedule``
2424ade669cSPavan Nikhilesh    to allow applications provide explicit pre-schedule hints to event ports.
2434ade669cSPavan Nikhilesh
24479ca24a4SAbdullah Sevincer* **Updated event device library for independent enqueue feature.**
24579ca24a4SAbdullah Sevincer
24679ca24a4SAbdullah Sevincer  Added support for independent enqueue feature.
24779ca24a4SAbdullah Sevincer  With this feature eventdev supports enqueue in any order
24879ca24a4SAbdullah Sevincer  or specifically in a different order than dequeue.
24979ca24a4SAbdullah Sevincer  The feature is intended for eventdevs supporting burst mode.
25079ca24a4SAbdullah Sevincer  Applications should use ``RTE_EVENT_PORT_CFG_INDEPENDENT_ENQ`` to enable
25179ca24a4SAbdullah Sevincer  the feature if the capability ``RTE_EVENT_DEV_CAP_INDEPENDENT_ENQ`` exists.
25279ca24a4SAbdullah Sevincer
2536e2e98d6SAbdullah Sevincer* **Updated DLB2 event driver.**
2546e2e98d6SAbdullah Sevincer
2556e2e98d6SAbdullah Sevincer  * Added independent enqueue feature.
2566e2e98d6SAbdullah Sevincer
2570dab9afeSAbdullah Sevincer* **Updated DSW event driver.**
2580dab9afeSAbdullah Sevincer
2590dab9afeSAbdullah Sevincer  * Added independent enqueue feature.
2600dab9afeSAbdullah Sevincer
26145ce5425SPavan Nikhilesh* **Updated Marvell cnxk event device driver.**
26245ce5425SPavan Nikhilesh
26345ce5425SPavan Nikhilesh  * Added eventdev driver support for CN20K SoC.
26445ce5425SPavan Nikhilesh
265e194f3cdSVladimir Medvedkin* **Added IPv4 network order lookup in the FIB library.**
266e194f3cdSVladimir Medvedkin
267*84339a73SJohn McNamara  A new flag field is introduced in the ``rte_fib_conf`` structure.
268*84339a73SJohn McNamara  This field is used to pass an extra configuration settings such as the ability
269e194f3cdSVladimir Medvedkin  to lookup IPv4 addresses in network byte order.
270e194f3cdSVladimir Medvedkin
2716addb781SVladimir Medvedkin* **Added RSS hash key generating API.**
2726addb781SVladimir Medvedkin
2736addb781SVladimir Medvedkin  A new function ``rte_thash_gen_key`` is provided to modify the RSS hash key
2746addb781SVladimir Medvedkin  to achieve better traffic distribution with RSS.
2756addb781SVladimir Medvedkin
276dd6fd75bSHuisong Li* **Added per-CPU power management QoS interface.**
277dd6fd75bSHuisong Li
278dd6fd75bSHuisong Li  Added per-CPU PM QoS interface to lower the resume latency
279*84339a73SJohn McNamara  when waking up from idle state.
280dd6fd75bSHuisong Li
281ceb5914cSRobin Jarry* **Added new API to register telemetry endpoint callbacks with private arguments.**
282ceb5914cSRobin Jarry
283ceb5914cSRobin Jarry  A new ``rte_telemetry_register_cmd_arg`` function is available to pass an opaque value to
284ceb5914cSRobin Jarry  telemetry endpoint callback.
285ceb5914cSRobin Jarry
286070db97eSPavan Nikhilesh* **Added node specific statistics.**
287070db97eSPavan Nikhilesh
288*84339a73SJohn McNamara  Added ability for a node to advertise and update multiple xstat counters,
289070db97eSPavan Nikhilesh  that can be retrieved using ``rte_graph_cluster_stats_get``.
290070db97eSPavan Nikhilesh
291cb9187bcSDavid Marchand
292cb9187bcSDavid MarchandRemoved Items
293cb9187bcSDavid Marchand-------------
294cb9187bcSDavid Marchand
295*84339a73SJohn McNamara* ethdev: Removed the ``__rte_ethdev_trace_rx_burst`` symbol, as the corresponding
296e075ca1dSAdel Belkhiri  tracepoint was split into two separate ones for empty and non-empty calls.
297e075ca1dSAdel Belkhiri
298cb9187bcSDavid Marchand
299cb9187bcSDavid MarchandAPI Changes
300cb9187bcSDavid Marchand-----------
301cb9187bcSDavid Marchand
302de899883SChengwen Feng* kvargs: reworked the process API.
303de899883SChengwen Feng
304*84339a73SJohn McNamara  * The already existing ``rte_kvargs_process`` now only handles ``key=value`` cases and
305*84339a73SJohn McNamara    rejects input where only a key is present in the parsed string.
306de899883SChengwen Feng  * ``rte_kvargs_process_opt`` has been added to behave as ``rte_kvargs_process`` in previous
307de899883SChengwen Feng    releases: it handles key=value and only-key cases.
308de899883SChengwen Feng  * Both ``rte_kvargs_process`` and ``rte_kvargs_process_opt`` reject a NULL ``kvlist`` parameter.
309de899883SChengwen Feng
310c14fba68SDavid Marchand* net: The IPv4 header structure ``rte_ipv4_hdr`` has been marked as two bytes aligned.
311c14fba68SDavid Marchand
31287bde5aeSRobin Jarry* net: The ICMP message types ``RTE_IP_ICMP_ECHO_REPLY`` and ``RTE_IP_ICMP_ECHO_REQUEST``
31387bde5aeSRobin Jarry  are marked as deprecated, and are replaced
31487bde5aeSRobin Jarry  by ``RTE_ICMP_TYPE_ECHO_REPLY`` and ``RTE_ICMP_TYPE_ECHO_REQUEST``.
31587bde5aeSRobin Jarry
316365b7f34SRobin Jarry* net: The IPv6 header structure ``rte_ipv6_hdr`` and extension structures ``rte_ipv6_routing_ext``
317365b7f34SRobin Jarry  and ``rte_ipv6_fragment_ext`` have been marked as two bytes aligned.
318365b7f34SRobin Jarry
31989b5642dSRobin Jarry* net: A new IPv6 address structure was introduced to replace ad-hoc ``uint8_t[16]`` arrays.
32089b5642dSRobin Jarry  The following libraries and symbols were modified:
32189b5642dSRobin Jarry
322*84339a73SJohn McNamara  - cmdline:
323*84339a73SJohn McNamara
32452e04a63SRobin Jarry    - ``cmdline_ipaddr_t``
325*84339a73SJohn McNamara
326*84339a73SJohn McNamara  - ethdev:
327*84339a73SJohn McNamara
328cc136750SRobin Jarry    - ``struct rte_flow_action_set_ipv6``
329cc136750SRobin Jarry    - ``struct rte_flow_item_icmp6_nd_na``
330cc136750SRobin Jarry    - ``struct rte_flow_item_icmp6_nd_ns``
331cc136750SRobin Jarry    - ``struct rte_flow_tunnel``
332*84339a73SJohn McNamara
333*84339a73SJohn McNamara  - fib:
334*84339a73SJohn McNamara
3356cb10a9bSRobin Jarry    - ``rte_fib6_add()``
3366cb10a9bSRobin Jarry    - ``rte_fib6_delete()``
3376cb10a9bSRobin Jarry    - ``rte_fib6_lookup_bulk()``
3386cb10a9bSRobin Jarry    - ``RTE_FIB6_IPV6_ADDR_SIZE`` (deprecated, replaced with ``RTE_IPV6_ADDR_SIZE``)
3396cb10a9bSRobin Jarry    - ``RTE_FIB6_MAXDEPTH`` (deprecated, replaced with ``RTE_IPV6_MAX_DEPTH``)
340*84339a73SJohn McNamara
341*84339a73SJohn McNamara  - hash:
342*84339a73SJohn McNamara
343431e6b9aSRobin Jarry    - ``struct rte_ipv6_tuple``
344*84339a73SJohn McNamara
345*84339a73SJohn McNamara  - ipsec:
346*84339a73SJohn McNamara
3479ac91e2fSRobin Jarry    - ``struct rte_ipsec_sadv6_key``
348*84339a73SJohn McNamara
349*84339a73SJohn McNamara  - lpm:
350*84339a73SJohn McNamara
351e1a06e39SRobin Jarry    - ``rte_lpm6_add()``
352e1a06e39SRobin Jarry    - ``rte_lpm6_delete()``
353e1a06e39SRobin Jarry    - ``rte_lpm6_delete_bulk_func()``
354e1a06e39SRobin Jarry    - ``rte_lpm6_is_rule_present()``
355e1a06e39SRobin Jarry    - ``rte_lpm6_lookup()``
356e1a06e39SRobin Jarry    - ``rte_lpm6_lookup_bulk_func()``
357e1a06e39SRobin Jarry    - ``RTE_LPM6_IPV6_ADDR_SIZE`` (deprecated, replaced with ``RTE_IPV6_ADDR_SIZE``)
358e1a06e39SRobin Jarry    - ``RTE_LPM6_MAX_DEPTH`` (deprecated, replaced with ``RTE_IPV6_MAX_DEPTH``)
359*84339a73SJohn McNamara
360*84339a73SJohn McNamara  - net:
361*84339a73SJohn McNamara
36289b5642dSRobin Jarry    - ``struct rte_ipv6_hdr``
363*84339a73SJohn McNamara
364*84339a73SJohn McNamara  - node:
365*84339a73SJohn McNamara
3662cfebc3fSRobin Jarry    - ``rte_node_ip6_route_add()``
367*84339a73SJohn McNamara
368*84339a73SJohn McNamara  - pipeline:
369*84339a73SJohn McNamara
3705ac1abddSRobin Jarry    - ``struct rte_swx_ipsec_sa_encap_params``
3715ac1abddSRobin Jarry    - ``struct rte_table_action_ipv6_header``
3725ac1abddSRobin Jarry    - ``struct rte_table_action_nat_params``
373*84339a73SJohn McNamara
374*84339a73SJohn McNamara  - security:
375*84339a73SJohn McNamara
3762ede1422SRobin Jarry    - ``struct rte_security_ipsec_tunnel_param``
377*84339a73SJohn McNamara
378*84339a73SJohn McNamara  - table:
379*84339a73SJohn McNamara
380e1a06e39SRobin Jarry    - ``struct rte_table_lpm_ipv6_key``
381e1a06e39SRobin Jarry    - ``RTE_LPM_IPV6_ADDR_SIZE`` (deprecated, replaced with ``RTE_IPV6_ADDR_SIZE``)
382*84339a73SJohn McNamara
383*84339a73SJohn McNamara  - rib:
384*84339a73SJohn McNamara
38559b99315SRobin Jarry    - ``rte_rib6_get_ip()``
38659b99315SRobin Jarry    - ``rte_rib6_get_nxt()``
38759b99315SRobin Jarry    - ``rte_rib6_insert()``
38859b99315SRobin Jarry    - ``rte_rib6_lookup()``
38959b99315SRobin Jarry    - ``rte_rib6_lookup_exact()``
39059b99315SRobin Jarry    - ``rte_rib6_remove()``
39159b99315SRobin Jarry    - ``RTE_RIB6_IPV6_ADDR_SIZE`` (deprecated, replaced with ``RTE_IPV6_ADDR_SIZE``)
39259b99315SRobin Jarry    - ``get_msk_part()`` (deprecated)
39359b99315SRobin Jarry    - ``rte_rib6_copy_addr()`` (deprecated, replaced with direct structure assignments)
39459b99315SRobin Jarry    - ``rte_rib6_is_equal()`` (deprecated, replaced with ``rte_ipv6_addr_eq()``)
39589b5642dSRobin Jarry
396d7918d19SShai Brandes* drivers/net/ena: Removed ``enable_llq``, ``normal_llq_hdr`` and ``large_llq_hdr`` devargs
397d7918d19SShai Brandes  and replaced it with a new shared devarg ``llq_policy`` that keeps the same logic.
398d7918d19SShai Brandes
399cb9187bcSDavid Marchand
400cb9187bcSDavid MarchandABI Changes
401cb9187bcSDavid Marchand-----------
402cb9187bcSDavid Marchand
4035ff00bbcSStephen Hemminger* eal: The maximum number of file descriptors that can be passed to a secondary process
404*84339a73SJohn McNamara  has been increased from 8 to 253 (which is the maximum possible with Unix domain sockets).
4055ff00bbcSStephen Hemminger  This allows for more queues when using software devices such as TAP and XDP.
4065ff00bbcSStephen Hemminger
407083db2edSJie Hai* ethdev: Added ``filter`` and ``names`` fields to ``rte_dev_reg_info`` structure
408083db2edSJie Hai  for filtering by modules and reporting names of registers.
409083db2edSJie Hai
4106ef8e70eSAkhil Goyal* cryptodev: The queue pair configuration structure ``rte_cryptodev_qp_conf``
4116ef8e70eSAkhil Goyal  is updated to have a new parameter to set priority of that particular queue pair.
4126ef8e70eSAkhil Goyal
413e17a4a88SAkhil Goyal* cryptodev: The list end enumerators ``RTE_CRYPTO_ASYM_XFORM_TYPE_LIST_END``
414e17a4a88SAkhil Goyal  and ``RTE_CRYPTO_RSA_PADDING_TYPE_LIST_END`` are removed
415e17a4a88SAkhil Goyal  to allow subsequent addition of new asymmetric algorithms and RSA padding types.
416e17a4a88SAkhil Goyal
4178bd4315cSGowrishankar Muthukrishnan* cryptodev: The enum ``rte_crypto_asym_xform_type`` and struct ``rte_crypto_asym_op``
4188bd4315cSGowrishankar Muthukrishnan  are updated to include new values to support EdDSA.
4198bd4315cSGowrishankar Muthukrishnan
420*84339a73SJohn McNamara* cryptodev: The ``rte_crypto_rsa_xform`` struct member to hold private key data
421*84339a73SJohn McNamara  in either exponent or quintuple format is changed from a union to a struct data type.
4220e3b2fc1SGowrishankar Muthukrishnan  This change is to support ASN.1 syntax (RFC 3447 Appendix A.1.2).
4230e3b2fc1SGowrishankar Muthukrishnan
4248a97564bSGowrishankar Muthukrishnan* cryptodev: The padding struct ``rte_crypto_rsa_padding`` is moved
4258a97564bSGowrishankar Muthukrishnan  from ``rte_crypto_rsa_op_param`` to ``rte_crypto_rsa_xform``
4268a97564bSGowrishankar Muthukrishnan  as the padding information is part of session creation
427*84339a73SJohn McNamara  instead of the per packet crypto operation.
4288a97564bSGowrishankar Muthukrishnan  This change is required to support virtio-crypto specifications.
4298a97564bSGowrishankar Muthukrishnan
430f8d8fa0eSNicolas Chautru* bbdev: The structure ``rte_bbdev_stats`` was updated to add a new parameter
431*84339a73SJohn McNamara  to optionally report the number of enqueue batches available ``enqueue_depth_avail``.
432f8d8fa0eSNicolas Chautru
433*84339a73SJohn McNamara* dmadev: Added ``nb_priorities`` field to the ``rte_dma_info`` structure
434*84339a73SJohn McNamara  and ``priority`` field to the ``rte_dma_conf`` structure
4352dff0bcdSVamsi Attunuru  to get device supported priority levels
4362dff0bcdSVamsi Attunuru  and configure required priority from the application.
4372dff0bcdSVamsi Attunuru
438*84339a73SJohn McNamara* eventdev: Added the ``preschedule_type`` field to ``rte_event_dev_config`` structure.
439acc65ee3SPavan Nikhilesh
44034e3ad3aSMattias Rönnblom* eventdev: Removed the single-event enqueue and dequeue function pointers
44134e3ad3aSMattias Rönnblom  from ``rte_event_fp_fps``.
44234e3ad3aSMattias Rönnblom
443070db97eSPavan Nikhilesh* graph: To accommodate node specific xstats counters, added ``xstat_cntrs``,
444070db97eSPavan Nikhilesh  ``xstat_desc`` and ``xstat_count`` to ``rte_graph_cluster_node_stats``,
445070db97eSPavan Nikhilesh  added new structure ``rte_node_xstats`` to ``rte_node_register`` and
446070db97eSPavan Nikhilesh  added ``xstat_off`` to ``rte_node``.
447070db97eSPavan Nikhilesh
448ba0a0e44SHuichao Cai* graph: The members ``dispatch`` and ``xstat_off`` of the structure ``rte_node``
449ba0a0e44SHuichao Cai  have been marked as ``RTE_CACHE_LINE_MIN_SIZE`` bytes aligned.
450ba0a0e44SHuichao Cai
451cb9187bcSDavid Marchand
452cb9187bcSDavid MarchandTested Platforms
453cb9187bcSDavid Marchand----------------
454cb9187bcSDavid Marchand
455cb490d9bSLingli Chen* Intel\ |reg| platforms with Intel\ |reg| NICs combinations
456cb490d9bSLingli Chen
457cb490d9bSLingli Chen  * CPU
458cb490d9bSLingli Chen
459cb490d9bSLingli Chen    * Intel Atom\ |reg| P5342 processor
460cb490d9bSLingli Chen    * Intel\ |reg| Atom\ |trade| CPU C3758 @ 2.20GHz
461cb490d9bSLingli Chen    * Intel\ |reg| Xeon\ |reg| CPU D-1553N @ 2.30GHz
462cb490d9bSLingli Chen    * Intel\ |reg| Xeon\ |reg| CPU E5-2699 v4 @ 2.20GHz
463cb490d9bSLingli Chen    * Intel\ |reg| Xeon\ |reg| D-1747NTE CPU @ 2.50GHz
464cb490d9bSLingli Chen    * Intel\ |reg| Xeon\ |reg| D-2796NT CPU @ 2.00GHz
465cb490d9bSLingli Chen    * Intel\ |reg| Xeon\ |reg| Gold 6139 CPU @ 2.30GHz
466cb490d9bSLingli Chen    * Intel\ |reg| Xeon\ |reg| Gold 6140M CPU @ 2.30GHz
467cb490d9bSLingli Chen    * Intel\ |reg| Xeon\ |reg| Gold 6252N CPU @ 2.30GHz
468cb490d9bSLingli Chen    * Intel\ |reg| Xeon\ |reg| Gold 6348 CPU @ 2.60GHz
469cb490d9bSLingli Chen    * Intel\ |reg| Xeon\ |reg| Platinum 8280M CPU @ 2.70GHz
470cb490d9bSLingli Chen    * Intel\ |reg| Xeon\ |reg| Platinum 8358 CPU @ 2.60GHz
471cb490d9bSLingli Chen    * Intel\ |reg| Xeon\ |reg| Platinum 8380 CPU @ 2.30GHz
472cb490d9bSLingli Chen    * Intel\ |reg| Xeon\ |reg| Platinum 8468H
473cb490d9bSLingli Chen    * Intel\ |reg| Xeon\ |reg| Platinum 8490H
474cb490d9bSLingli Chen
475cb490d9bSLingli Chen  * OS:
476cb490d9bSLingli Chen
477cb490d9bSLingli Chen    * Microsoft Azure Linux 3.0
478cb490d9bSLingli Chen    * Fedora 40
479cb490d9bSLingli Chen    * FreeBSD 14.1
480cb490d9bSLingli Chen    * OpenAnolis OS 8.9
481cb490d9bSLingli Chen    * openEuler 24.03 (LTS)
482cb490d9bSLingli Chen    * Red Hat Enterprise Linux Server release 9.4
483cb490d9bSLingli Chen    * Ubuntu 22.04.3
484cb490d9bSLingli Chen    * Ubuntu 22.04.4
485cb490d9bSLingli Chen    * Ubuntu 24.04
486cb490d9bSLingli Chen    * Ubuntu 24.04.1
487cb490d9bSLingli Chen
488cb490d9bSLingli Chen  * NICs:
489cb490d9bSLingli Chen
490cb490d9bSLingli Chen    * Intel\ |reg| Ethernet Controller E810-C for SFP (4x25G)
491cb490d9bSLingli Chen
492cb490d9bSLingli Chen      * Firmware version: 4.60 0x8001e8b2 1.3682.0
493cb490d9bSLingli Chen      * Device id (pf/vf): 8086:1593 / 8086:1889
494cb490d9bSLingli Chen      * Driver version(out-tree): 1.15.4 (ice)
495cb490d9bSLingli Chen      * Driver version(in-tree): 6.8.0-48-generic (Ubuntu24.04.1) /
496cb490d9bSLingli Chen        5.14.0-427.13.1.el9_4.x86_64+rt (RHEL9.4) (ice)
497cb490d9bSLingli Chen      * OS Default DDP: 1.3.36.0
498cb490d9bSLingli Chen      * COMMS DDP: 1.3.46.0
499cb490d9bSLingli Chen      * Wireless Edge DDP: 1.3.14.0
500cb490d9bSLingli Chen
501cb490d9bSLingli Chen    * Intel\ |reg| Ethernet Controller E810-C for QSFP (2x100G)
502cb490d9bSLingli Chen
503cb490d9bSLingli Chen      * Firmware version: 4.60 0x8001e8b1 1.3682.0
504cb490d9bSLingli Chen      * Device id (pf/vf): 8086:1592 / 8086:1889
505cb490d9bSLingli Chen      * Driver version(out-tree): 1.15.4 (ice)
506cb490d9bSLingli Chen      * Driver version(in-tree): 6.6.12.1-1.azl3+ice+ (Microsoft Azure Linux 3.0) (ice)
507cb490d9bSLingli Chen      * OS Default DDP: 1.3.36.0
508cb490d9bSLingli Chen      * COMMS DDP: 1.3.46.0
509cb490d9bSLingli Chen      * Wireless Edge DDP: 1.3.14.0
510cb490d9bSLingli Chen
511cb490d9bSLingli Chen    * Intel\ |reg| Ethernet Controller E810-XXV for SFP (2x25G)
512cb490d9bSLingli Chen
513cb490d9bSLingli Chen      * Firmware version: 4.60 0x8001e8b0 1.3682.0
514cb490d9bSLingli Chen      * Device id (pf/vf): 8086:159b / 8086:1889
515cb490d9bSLingli Chen      * Driver version: 1.15.4 (ice)
516cb490d9bSLingli Chen      * OS Default DDP: 1.3.36.0
517cb490d9bSLingli Chen      * COMMS DDP: 1.3.46.0
518cb490d9bSLingli Chen
519cb490d9bSLingli Chen    * Intel\ |reg| Ethernet Connection E823-C for QSFP
520cb490d9bSLingli Chen
521cb490d9bSLingli Chen      * Firmware version: 3.42 0x8001f66b 1.3682.0
522cb490d9bSLingli Chen      * Device id (pf/vf): 8086:188b / 8086:1889
523cb490d9bSLingli Chen      * Driver version: 1.15.4 (ice)
524cb490d9bSLingli Chen      * OS Default DDP: 1.3.36.0
525cb490d9bSLingli Chen      * COMMS DDP: 1.3.46.0
526cb490d9bSLingli Chen      * Wireless Edge DDP: 1.3.14.0
527cb490d9bSLingli Chen
528cb490d9bSLingli Chen    * Intel\ |reg| Ethernet Connection E823-L for QSFP
529cb490d9bSLingli Chen
530cb490d9bSLingli Chen      * Firmware version: 3.42 0x8001ea89 1.3636.0
531cb490d9bSLingli Chen      * Device id (pf/vf): 8086:124c / 8086:1889
532cb490d9bSLingli Chen      * Driver version: 1.15.4 (ice)
533cb490d9bSLingli Chen      * OS Default DDP: 1.3.36.0
534cb490d9bSLingli Chen      * COMMS DDP: 1.3.46.0
535cb490d9bSLingli Chen      * Wireless Edge DDP: 1.3.14.0
536cb490d9bSLingli Chen
537cb490d9bSLingli Chen    * Intel\ |reg| Ethernet Connection E822-L for backplane
538cb490d9bSLingli Chen
539cb490d9bSLingli Chen      * Firmware version: 3.42 0x8001eaad 1.3636.0
540cb490d9bSLingli Chen      * Device id (pf/vf): 8086:1897 / 8086:1889
541cb490d9bSLingli Chen      * Driver version: 1.15.4 (ice)
542cb490d9bSLingli Chen      * OS Default DDP: 1.3.36.0
543cb490d9bSLingli Chen      * COMMS DDP: 1.3.46.0
544cb490d9bSLingli Chen      * Wireless Edge DDP: 1.3.14.0
545cb490d9bSLingli Chen
546cb490d9bSLingli Chen    * Intel\ |reg| Ethernet Network Adapter E830-XXVDA2 for OCP
547cb490d9bSLingli Chen
548cb490d9bSLingli Chen      * Firmware version: 1.00 0x8000942a 1.3672.0
549cb490d9bSLingli Chen      * Device id (pf/vf): 8086:12d3 / 8086:1889
550cb490d9bSLingli Chen      * Driver version: 1.15.4 (ice)
551cb490d9bSLingli Chen      * OS Default DDP: 1.3.38.0
552cb490d9bSLingli Chen
553cb490d9bSLingli Chen    * Intel\ |reg| Ethernet Network Adapter E830-CQDA2
554cb490d9bSLingli Chen
555cb490d9bSLingli Chen      * Firmware version: 1.00 0x8000d294 1.3722.0
556cb490d9bSLingli Chen      * Device id (pf/vf): 8086:12d2 / 8086:1889
557cb490d9bSLingli Chen      * Driver version: 1.15.4 (ice)
558cb490d9bSLingli Chen      * OS Default DDP: 1.3.39.0
559cb490d9bSLingli Chen      * COMMS DDP: 1.3.51.0
560cb490d9bSLingli Chen      * Wireless Edge DDP: 1.3.19.0
561cb490d9bSLingli Chen
562cb490d9bSLingli Chen    * Intel\ |reg| 82599ES 10 Gigabit Ethernet Controller
563cb490d9bSLingli Chen
564cb490d9bSLingli Chen      * Firmware version: 0x000161bf
565cb490d9bSLingli Chen      * Device id (pf/vf): 8086:10fb / 8086:10ed
566cb490d9bSLingli Chen      * Driver version(out-tree): 5.21.5 (ixgbe)
567cb490d9bSLingli Chen      * Driver version(in-tree): 6.8.0-48-generic (Ubuntu24.04.1)
568cb490d9bSLingli Chen
569cb490d9bSLingli Chen    * Intel\ |reg| Ethernet Network Adapter E610-XT2
570cb490d9bSLingli Chen
571cb490d9bSLingli Chen      * Firmware version: 1.00 0x800066ae 0.0.0
572cb490d9bSLingli Chen      * Device id (pf/vf): 8086:57b0 / 8086:57ad
573cb490d9bSLingli Chen      * Driver version(out-tree): 5.21.5 (ixgbe)
574cb490d9bSLingli Chen
575cb490d9bSLingli Chen    * Intel\ |reg| Ethernet Network Adapter E610-XT4
576cb490d9bSLingli Chen
577cb490d9bSLingli Chen      * Firmware version: 1.00 0x80004ef2 0.0.0
578cb490d9bSLingli Chen      * Device id (pf/vf): 8086:57b0 / 8086:57ad
579cb490d9bSLingli Chen      * Driver version(out-tree): 5.21.5 (ixgbe)
580cb490d9bSLingli Chen
581cb490d9bSLingli Chen    * Intel\ |reg| Ethernet Converged Network Adapter X710-DA4 (4x10G)
582cb490d9bSLingli Chen
583cb490d9bSLingli Chen      * Firmware version: 9.50 0x8000f4c6 1.3682.0
584cb490d9bSLingli Chen      * Device id (pf/vf): 8086:1572 / 8086:154c
585cb490d9bSLingli Chen      * Driver version(out-tree): 2.26.8 (i40e)
586cb490d9bSLingli Chen
587cb490d9bSLingli Chen    * Intel\ |reg| Corporation Ethernet Connection X722 for 10GbE SFP+ (2x10G)
588cb490d9bSLingli Chen
589cb490d9bSLingli Chen      * Firmware version: 6.50 0x80004216 1.3597.0
590cb490d9bSLingli Chen      * Device id (pf/vf): 8086:37d0 / 8086:37cd
591cb490d9bSLingli Chen      * Driver version(out-tree): 2.26.8 (i40e)
592cb490d9bSLingli Chen      * Driver version(in-tree): 5.14.0-427.13.1.el9_4.x86_64 (RHEL9.4)(i40e)
593cb490d9bSLingli Chen
594cb490d9bSLingli Chen    * Intel\ |reg| Ethernet Converged Network Adapter XXV710-DA2 (2x25G)
595cb490d9bSLingli Chen
596cb490d9bSLingli Chen      * Firmware version:  9.50 0x8000f4e1 1.3682.0
597cb490d9bSLingli Chen      * Device id (pf/vf): 8086:158b / 8086:154c
598cb490d9bSLingli Chen      * Driver version(out-tree): 2.26.8 (i40e)
599cb490d9bSLingli Chen      * Driver version(in-tree): 6.8.0-45-generic (Ubuntu24.04.1) /
600cb490d9bSLingli Chen        5.14.0-427.13.1.el9_4.x86_64 (RHEL9.4)(i40e)
601cb490d9bSLingli Chen
602cb490d9bSLingli Chen    * Intel\ |reg| Ethernet Converged Network Adapter XL710-QDA2 (2X40G)
603cb490d9bSLingli Chen
604cb490d9bSLingli Chen      * Firmware version(PF): 9.50 0x8000f4fe 1.3682.0
605cb490d9bSLingli Chen      * Device id (pf/vf): 8086:1583 / 8086:154c
606cb490d9bSLingli Chen      * Driver version(out-tree): 2.26.8 (i40e)
607cb490d9bSLingli Chen
608cb490d9bSLingli Chen    * Intel\ |reg| Ethernet Controller I225-LM
609cb490d9bSLingli Chen
610cb490d9bSLingli Chen      * Firmware version: 1.3, 0x800000c9
611cb490d9bSLingli Chen      * Device id (pf): 8086:15f2
612cb490d9bSLingli Chen      * Driver version(in-tree): 6.8.0-48-generic (Ubuntu24.04.1)(igc)
613cb490d9bSLingli Chen
614cb490d9bSLingli Chen    * Intel\ |reg| Ethernet Controller I226-LM
615cb490d9bSLingli Chen
616cb490d9bSLingli Chen      * Firmware version: 2.14, 0x8000028c
617cb490d9bSLingli Chen      * Device id (pf): 8086:125b
618cb490d9bSLingli Chen      * Driver version(in-tree): 6.8.0-45-generic (Ubuntu24.04.1)(igc)
619