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