This patch enables building the e1000 driver for Windows. I tested using two Windows VM on top of VMware Fusion, creating two e1000 devices with device ID 0x10D3 (8274L), verifying rx/tx works correctly using dpdk-testpmd.exe rxonly and txonly mode. Signed-off-by: William Tu <u9012063@gmail.com> Acked-by: Haiyue Wang <haiyue.wang@intel.com> Acked-by: Pallavi Kadam <pallavi.kadam@intel.com> Tested-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com> Tested-by: Pallavi Kadam <pallavi.kadam@intel.com>
523 lines
20 KiB
ReStructuredText
523 lines
20 KiB
ReStructuredText
.. SPDX-License-Identifier: BSD-3-Clause
|
|
Copyright 2021 The DPDK contributors
|
|
|
|
.. include:: <isonum.txt>
|
|
|
|
DPDK Release 21.11
|
|
==================
|
|
|
|
.. **Read this first.**
|
|
|
|
The text in the sections below explains how to update the release notes.
|
|
|
|
Use proper spelling, capitalization and punctuation in all sections.
|
|
|
|
Variable and config names should be quoted as fixed width text:
|
|
``LIKE_THIS``.
|
|
|
|
Build the docs and view the output file to ensure the changes are correct::
|
|
|
|
ninja -C build doc
|
|
xdg-open build/doc/guides/html/rel_notes/release_21_11.html
|
|
|
|
|
|
New Features
|
|
------------
|
|
|
|
.. This section should contain new features added in this release.
|
|
Sample format:
|
|
|
|
* **Add a title in the past tense with a full stop.**
|
|
|
|
Add a short 1-2 sentence description in the past tense.
|
|
The description should be enough to allow someone scanning
|
|
the release notes to understand the new feature.
|
|
|
|
If the feature adds a lot of sub-features you can use a bullet list
|
|
like this:
|
|
|
|
* Added feature foo to do something.
|
|
* Enhanced feature bar to do something else.
|
|
|
|
Refer to the previous release notes for examples.
|
|
|
|
Suggested order in release notes items:
|
|
* Core libs (EAL, mempool, ring, mbuf, buses)
|
|
* Device abstraction libs and PMDs (ordered alphabetically by vendor name)
|
|
- ethdev (lib, PMDs)
|
|
- cryptodev (lib, PMDs)
|
|
- eventdev (lib, PMDs)
|
|
- etc
|
|
* Other libs
|
|
* Apps, Examples, Tools (if significant)
|
|
|
|
This section is a comment. Do not overwrite or remove it.
|
|
Also, make sure to start the actual text at the margin.
|
|
=======================================================
|
|
|
|
* **Enabled new devargs parser.**
|
|
|
|
* Enabled devargs syntax
|
|
``bus=X,paramX=x/class=Y,paramY=y/driver=Z,paramZ=z``
|
|
* Added bus-level parsing of the devargs syntax.
|
|
* Kept compatibility with the legacy syntax as parsing fallback.
|
|
|
|
* **Updated EAL hugetlbfs mount handling for Linux.**
|
|
|
|
* Modified to allow ``--huge-dir`` option to specify a sub-directory
|
|
within a hugetlbfs mountpoint.
|
|
|
|
* **Added dmadev library.**
|
|
|
|
* Added a DMA device framework for management and provision of
|
|
hardware and software DMA devices.
|
|
* Added generic API which support a number of different DMA
|
|
operations.
|
|
* Added multi-process support.
|
|
|
|
* **Added IDXD dmadev driver implementation.**
|
|
|
|
The IDXD dmadev driver provide device drivers for the Intel DSA devices.
|
|
This device driver can be used through the generic dmadev API.
|
|
|
|
* **Added IOAT dmadev driver implementation.**
|
|
|
|
The Intel I/O Acceleration Technology (IOAT) dmadev driver provides a device
|
|
driver for Intel IOAT devices such as Crystal Beach DMA (CBDMA) on Ice Lake,
|
|
Skylake and Broadwell. This device driver can be used through the generic dmadev API.
|
|
|
|
* **Added support to get all MAC addresses of a device.**
|
|
|
|
Added ``rte_eth_macaddrs_get`` to allow user to retrieve all Ethernet
|
|
addresses assigned to given ethernet port.
|
|
|
|
* **Added new RSS offload types for IPv4/L4 checksum in RSS flow.**
|
|
|
|
Added macros ETH_RSS_IPV4_CHKSUM and ETH_RSS_L4_CHKSUM, now IPv4 and
|
|
TCP/UDP/SCTP header checksum field can be used as input set for RSS.
|
|
|
|
* **Added L2TPv2 and PPP protocol support in flow API.**
|
|
|
|
Added flow pattern items and header formats of L2TPv2 and PPP protocol.
|
|
|
|
* **Added flow flex item.**
|
|
|
|
The configurable flow flex item provides the capability to introduce
|
|
an arbitrary user-specified network protocol header,
|
|
configure the hardware accordingly, and perform match on this header
|
|
with desired patterns and masks.
|
|
|
|
* **Added ethdev support to control delivery of Rx metadata from the HW to the PMD.**
|
|
|
|
A new API, ``rte_eth_rx_metadata_negotiate()``, was added.
|
|
The following parts of Rx metadata were defined:
|
|
|
|
* ``RTE_ETH_RX_METADATA_USER_FLAG``
|
|
* ``RTE_ETH_RX_METADATA_USER_MARK``
|
|
* ``RTE_ETH_RX_METADATA_TUNNEL_ID``
|
|
|
|
* **Added an API to get a proxy port to manage "transfer" flows.**
|
|
|
|
A new API, ``rte_flow_pick_transfer_proxy()``, was added.
|
|
|
|
* **Updated af_packet ethdev driver.**
|
|
|
|
* Default VLAN strip behavior was changed. VLAN tag won't be stripped
|
|
unless ``DEV_RX_OFFLOAD_VLAN_STRIP`` offload is enabled.
|
|
|
|
* **Added API to get device configuration in ethdev.**
|
|
|
|
Added an ethdev API which can help users get device configuration.
|
|
|
|
* **Updated AF_XDP PMD.**
|
|
|
|
* Disabled secondary process support.
|
|
|
|
* **Updated Amazon ENA PMD.**
|
|
|
|
Updated the Amazon ENA PMD. The new driver version (v2.5.0) introduced
|
|
bug fixes and improvements, including:
|
|
|
|
* Support for the tx_free_thresh and rx_free_thresh configuration parameters.
|
|
* NUMA aware allocations for the queue helper structures.
|
|
* Watchdog's feature which is checking for missing Tx completions.
|
|
|
|
* **Updated Broadcom bnxt PMD.**
|
|
|
|
* Added flow offload support for Thor.
|
|
* Implement support for tunnel offload.
|
|
* Updated HWRM API to version 1.10.2.44
|
|
|
|
* **Updated Intel e1000 emulated driver.**
|
|
|
|
* Added Intel e1000 support on Windows.
|
|
|
|
* **Updated Intel iavf driver.**
|
|
|
|
* Added Intel iavf support on Windows.
|
|
* Added IPv4 and L4 (TCP/UDP/SCTP) checksum hash support in RSS flow.
|
|
* Added PPPoL2TPv2oUDP RSS hash based on inner IP address and TCP/UDP port.
|
|
|
|
* **Updated Intel ice driver.**
|
|
|
|
* Added 1PPS out support by a devargs.
|
|
* Added IPv4 and L4 (TCP/UDP/SCTP) checksum hash support in RSS flow.
|
|
* Added DEV_RX_OFFLOAD_TIMESTAMP support.
|
|
* Added timesync API support under scalar path.
|
|
|
|
* **Updated Intel ixgbe driver.**
|
|
|
|
* Added Intel ixgbe support on Windows.
|
|
|
|
* **Updated Marvell cnxk ethdev driver.**
|
|
|
|
* Added rte_flow support for dual VLAN insert and strip actions.
|
|
* Added rte_tm support.
|
|
* Added support for Inline IPsec for CN9K event mode and CN10K
|
|
poll mode and event mode.
|
|
* Added support for ingress meter for CN10K platform.
|
|
|
|
* **Updated Mellanox mlx5 driver.**
|
|
|
|
Updated the Mellanox mlx5 driver with new features and improvements, including:
|
|
|
|
* Added implicit mempool registration to avoid data path hiccups (opt-out).
|
|
* Added NIC offloads for the PMD on Windows (TSO, VLAN strip, CRC keep).
|
|
|
|
* **Updated Solarflare network PMD.**
|
|
|
|
Updated the Solarflare ``sfc_efx`` driver with changes including:
|
|
|
|
* Added port representors support on SN1000 SmartNICs
|
|
* Added flow API transfer proxy support
|
|
|
|
* **Updated Marvell cnxk crypto PMD.**
|
|
|
|
* Added AES-CBC SHA1-HMAC support in lookaside protocol (IPsec) for CN10K.
|
|
* Added Transport mode support in lookaside protocol (IPsec) for CN10K.
|
|
* Added UDP encapsulation support in lookaside protocol (IPsec) for CN10K.
|
|
* Added support for lookaside protocol (IPsec) offload for CN9K.
|
|
* Added support for ZUC algorithm with 256-bit key length for CN10K.
|
|
* Added support for CN98xx dual block.
|
|
* Added inner checksum support in lookaside protocol (IPsec) for CN10K.
|
|
|
|
* **Added support for event crypto adapter on Marvell CN10K and CN9K.**
|
|
|
|
* Added event crypto adapter OP_FORWARD mode support.
|
|
|
|
* **Updated NXP dpaa_sec crypto PMD.**
|
|
|
|
* Added DES-CBC, AES-XCBC-MAC, AES-CMAC and non-HMAC algo support.
|
|
* Added PDCP short MAC-I support.
|
|
* Added raw vector datapath API support.
|
|
|
|
* **Updated NXP dpaa2_sec crypto PMD.**
|
|
|
|
* Added PDCP short MAC-I support.
|
|
* Added raw vector datapath API support.
|
|
|
|
* **Updated the ACC100 bbdev PMD.**
|
|
|
|
Added support for more comprehensive CRC options.
|
|
|
|
* **Updated the turbo_sw bbdev PMD.**
|
|
|
|
Added support for more comprehensive CRC options.
|
|
|
|
* **Added NXP LA12xx baseband PMD.**
|
|
|
|
* Added a new baseband PMD driver for NXP LA12xx Software defined radio.
|
|
* See the :doc:`../bbdevs/la12xx` for more details.
|
|
|
|
* **Updated IPsec library.**
|
|
|
|
* Added support for more AEAD algorithms AES_CCM, CHACHA20_POLY1305
|
|
and AES_GMAC.
|
|
* Added support for NAT-T / UDP encapsulated ESP.
|
|
* Added support for SA telemetry.
|
|
* Added support for setting a non default starting ESN value.
|
|
|
|
* **Added multi-process support for testpmd.**
|
|
|
|
Added command-line options to specify total number of processes and
|
|
current process ID. Each process owns subset of Rx and Tx queues.
|
|
|
|
* **Updated test-crypto-perf application with new cases.**
|
|
|
|
* Added support for asymmetric crypto throughput performance measurement.
|
|
Only modex is supported for now.
|
|
* Added support for lookaside IPsec protocol offload throughput measurement.
|
|
|
|
* **Added lookaside protocol (IPsec) tests in dpdk-test.**
|
|
|
|
* Added known vector tests (AES-GCM 128, 192, 256).
|
|
* Added tests to verify error reporting with ICV corruption.
|
|
* Added tests to verify IV generation.
|
|
* Added tests to verify UDP encapsulation.
|
|
* Added tests to verify UDP encapsulation ports.
|
|
* Added tests to validate packets soft expiry.
|
|
* Added tests to validate packets hard expiry.
|
|
* Added tests to verify tunnel header verification in IPsec inbound.
|
|
* Added tests to verify inner checksum.
|
|
|
|
* **Revised packet capture framework.**
|
|
|
|
* New dpdk-dumpcap program that has most of the features
|
|
of the wireshark dumpcap utility including:
|
|
capture of multiple interfaces, filtering,
|
|
and stopping after number of bytes, packets.
|
|
* New library for writing pcapng packet capture files.
|
|
* Enhancements to the pdump library to support:
|
|
* Packet filter with BPF.
|
|
* Pcapng format with timestamps and meta-data.
|
|
* Fixes packet capture with stripped VLAN tags.
|
|
|
|
|
|
Removed Items
|
|
-------------
|
|
|
|
.. This section should contain removed items in this release. Sample format:
|
|
|
|
* Add a short 1-2 sentence description of the removed item
|
|
in the past tense.
|
|
|
|
This section is a comment. Do not overwrite or remove it.
|
|
Also, make sure to start the actual text at the margin.
|
|
=======================================================
|
|
|
|
* eal: Removed the deprecated function ``rte_get_master_lcore()``
|
|
and the iterator macro ``RTE_LCORE_FOREACH_SLAVE``.
|
|
|
|
* eal: The old api arguments that were deprecated for
|
|
blacklist/whitelist are removed. Users must use the new
|
|
block/allow list arguments.
|
|
|
|
* mbuf: Removed offload flag ``PKT_RX_EIP_CKSUM_BAD``.
|
|
``PKT_RX_OUTER_IP_CKSUM_BAD`` should be used as a replacement.
|
|
|
|
* ethdev: Removed the port mirroring API. A more fine-grain flow API
|
|
action ``RTE_FLOW_ACTION_TYPE_SAMPLE`` should be used instead.
|
|
The structures ``rte_eth_mirror_conf`` and ``rte_eth_vlan_mirror`` and
|
|
the functions ``rte_eth_mirror_rule_set`` and
|
|
``rte_eth_mirror_rule_reset`` along with the associated macros
|
|
``ETH_MIRROR_*`` are removed.
|
|
|
|
* ethdev: Removed ``rte_eth_rx_descriptor_done`` API function and its
|
|
driver callback. It is replaced by the more complete function
|
|
``rte_eth_rx_descriptor_status``.
|
|
|
|
* ethdev: Removed deprecated ``shared`` attribute of the
|
|
``struct rte_flow_action_count``. Shared counters should be managed
|
|
using indirect actions API (``rte_flow_action_handle_create`` etc).
|
|
|
|
* i40e: Removed i40evf driver.
|
|
iavf already became the default VF driver for i40e devices,
|
|
so there is no need to maintain i40evf.
|
|
|
|
|
|
API Changes
|
|
-----------
|
|
|
|
.. This section should contain API changes. Sample format:
|
|
|
|
* sample: Add a short 1-2 sentence description of the API change
|
|
which was announced in the previous releases and made in this release.
|
|
Start with a scope label like "ethdev:".
|
|
Use fixed width quotes for ``function_names`` or ``struct_names``.
|
|
Use the past tense.
|
|
|
|
This section is a comment. Do not overwrite or remove it.
|
|
Also, make sure to start the actual text at the margin.
|
|
=======================================================
|
|
|
|
* kvargs: The experimental function ``rte_kvargs_strcmp()`` has been
|
|
removed. Its usages have been replaced by a new function
|
|
``rte_kvargs_get_with_value()``.
|
|
|
|
* cmdline: ``cmdline_stdin_exit()`` now frees the ``cmdline`` structure.
|
|
Calls to ``cmdline_free()`` after it need to be deleted from applications.
|
|
|
|
* cmdline: Made ``cmdline`` structure definition hidden on Linux and FreeBSD.
|
|
|
|
* cmdline: Made ``rdline`` structure definition hidden. Functions are added
|
|
to dynamically allocate and free it, and to access user data in callbacks.
|
|
|
|
* mempool: Added ``RTE_MEMPOOL_F_NON_IO`` flag to give a hint to DPDK components
|
|
that objects from this pool will not be used for device IO (e.g. DMA).
|
|
|
|
* mempool: The mempool flags ``MEMPOOL_F_*`` will be deprecated in the future.
|
|
Newly added flags with ``RTE_MEMPOOL_F_`` prefix should be used instead.
|
|
|
|
* mempool: Helper macro ``MEMPOOL_HEADER_SIZE()`` is deprecated.
|
|
The replacement macro ``RTE_MEMPOOL_HEADER_SIZE()`` is internal only.
|
|
|
|
* mempool: Macro to register mempool driver ``MEMPOOL_REGISTER_OPS()`` is
|
|
deprecated. Use replacement ``RTE_MEMPOOL_REGISTER_OPS()``.
|
|
|
|
* mempool: The mempool API macros ``MEMPOOL_PG_*`` are deprecated and
|
|
will be removed in DPDK 22.11.
|
|
|
|
* net: Renamed ``s_addr`` and ``d_addr`` fields of ``rte_ether_hdr`` structure
|
|
to ``src_addr`` and ``dst_addr``, respectively.
|
|
|
|
* net: Added ``version`` and ``ihl`` bit-fields to ``struct rte_ipv4_hdr``.
|
|
Existing ``version_ihl`` field is kept for backward compatibility.
|
|
|
|
* ethdev: Added items and actions ``PORT_REPRESENTOR``, ``REPRESENTED_PORT`` to
|
|
flow API.
|
|
|
|
* ethdev: Deprecated items and actions ``PF``, ``VF``, ``PHY_PORT``, ``PORT_ID``.
|
|
Suggested items and actions ``PORT_REPRESENTOR``, ``REPRESENTED_PORT`` instead.
|
|
|
|
* ethdev: Deprecated the use of attributes ``ingress`` / ``egress`` combined
|
|
with ``transfer``. See items ``PORT_REPRESENTOR``, ``REPRESENTED_PORT``.
|
|
|
|
* ethdev: ``rte_flow_action_modify_data`` structure updated, immediate data
|
|
array is extended, data pointer field is explicitly added to union, the
|
|
action behavior is defined in more strict fashion and documentation updated.
|
|
The immediate value behavior has been changed, the entire immediate field
|
|
should be provided, and offset for immediate source bitfield is assigned
|
|
from destination one.
|
|
|
|
* cryptodev: The API rte_cryptodev_pmd_is_valid_dev is modified to
|
|
rte_cryptodev_is_valid_dev as it can be used by the application as
|
|
well as PMD to check whether the device is valid or not.
|
|
|
|
* cryptodev: The rte_cryptodev_pmd.* files are renamed as cryptodev_pmd.*
|
|
as it is for drivers only and should be private to DPDK, and not
|
|
installed for app use.
|
|
|
|
* cryptodev: A ``reserved`` byte from structure ``rte_crypto_op`` was
|
|
renamed to ``aux_flags`` to indicate warnings and other information from
|
|
the crypto/security operation. This field will be used to communicate
|
|
events such as soft expiry with IPsec in lookaside mode.
|
|
|
|
* cryptodev: The field ``dataunit_len`` of the ``struct rte_crypto_cipher_xform``
|
|
moved to the end of the structure and extended to ``uint32_t``.
|
|
|
|
* cryptodev: The structure ``rte_crypto_vec`` was updated to add ``tot_len``
|
|
field to support total buffer length to facilitate protocol offload case.
|
|
|
|
* cryptodev: The structure ``rte_crypto_sym_vec`` was updated to add
|
|
``dest_sgl`` to support out of place processing.
|
|
|
|
* bbdev: Added device info related to data byte endianness processing.
|
|
|
|
* eventdev: Moved memory used by timer adapters to hugepage. This will prevent
|
|
TLB misses if any and aligns to memory structure of other subsystems.
|
|
|
|
|
|
ABI Changes
|
|
-----------
|
|
|
|
.. This section should contain ABI changes. Sample format:
|
|
|
|
* sample: Add a short 1-2 sentence description of the ABI change
|
|
which was announced in the previous releases and made in this release.
|
|
Start with a scope label like "ethdev:".
|
|
Use fixed width quotes for ``function_names`` or ``struct_names``.
|
|
Use the past tense.
|
|
|
|
This section is a comment. Do not overwrite or remove it.
|
|
Also, make sure to start the actual text at the margin.
|
|
=======================================================
|
|
|
|
* ethdev: Input parameters for ``eth_rx_queue_count_t`` was changed.
|
|
Instead of pointer to ``rte_eth_dev`` and queue index, now it accepts pointer
|
|
to internal queue data as input parameter. While this change is transparent
|
|
to user, it still counts as an ABI change, as ``eth_rx_queue_count_t``
|
|
is used by public inline function ``rte_eth_rx_queue_count``.
|
|
|
|
* ethdev: Made ``rte_eth_dev``, ``rte_eth_dev_data``, ``rte_eth_rxtx_callback``
|
|
private data structures. ``rte_eth_devices[]`` can't be accessed directly
|
|
by user any more. While it is an ABI breakage, this change is intended
|
|
to be transparent for both users (no changes in user app is required) and
|
|
PMD developers (no changes in PMD is required).
|
|
|
|
* security: ``rte_security_set_pkt_metadata`` and ``rte_security_get_userdata``
|
|
routines used by inline outbound and inline inbound security processing were
|
|
made inline and enhanced to do simple 64-bit set/get for PMDs that do not
|
|
have much processing in PMD specific callbacks but just 64-bit set/get.
|
|
This avoids a per packet function pointer jump overhead for such PMDs.
|
|
|
|
* security: A new option ``iv_gen_disable`` was added in structure
|
|
``rte_security_ipsec_sa_options`` to disable IV generation inside PMD,
|
|
so that application can provide its own IV and test known test vectors.
|
|
|
|
* security: A new option ``tunnel_hdr_verify`` was added in structure
|
|
``rte_security_ipsec_sa_options`` to indicate whether outer header
|
|
verification need to be done as part of inbound IPsec processing.
|
|
|
|
* security: A new option ``udp_ports_verify`` was added in structure
|
|
``rte_security_ipsec_sa_options`` to indicate whether UDP ports
|
|
verification need to be done as part of inbound IPsec processing.
|
|
|
|
* security: A new structure ``rte_security_ipsec_lifetime`` was added to
|
|
replace ``esn_soft_limit`` in IPsec configuration structure
|
|
``rte_security_ipsec_xform`` to allow applications to configure SA soft
|
|
and hard expiry limits. Limits can be either in number of packets or bytes.
|
|
|
|
* security: The new options ``ip_csum_enable`` and ``l4_csum_enable`` were added
|
|
in structure ``rte_security_ipsec_sa_options`` to indicate whether inner
|
|
packet IPv4 header checksum and L4 checksum need to be offloaded to
|
|
security device.
|
|
|
|
* security: A new structure ``esn`` was added in structure
|
|
``rte_security_ipsec_xform`` to set an initial ESN value. This permits
|
|
application to start from an arbitrary ESN value for debug and SA lifetime
|
|
enforcement purposes.
|
|
|
|
* security: A new structure ``udp`` was added in structure
|
|
``rte_security_ipsec_xform`` to allow setting the source and destination ports
|
|
for UDP encapsulated IPsec traffic.
|
|
|
|
* bbdev: Added capability related to more comprehensive CRC options,
|
|
shifting values of the ``enum rte_bbdev_op_ldpcdec_flag_bitmasks``.
|
|
|
|
* eventdev: New variables ``rx_event_buf_count`` and ``rx_event_buf_size``
|
|
were added in structure ``rte_event_eth_rx_adapter_stats`` to get additional
|
|
status.
|
|
|
|
* eventdev: A new structure ``rte_event_fp_ops`` has been added which is now used
|
|
by the fastpath inline functions. The structures ``rte_eventdev``,
|
|
``rte_eventdev_data`` have been made internal. ``rte_eventdevs[]`` can't be
|
|
accessed directly by user any more. This change is transparent to both
|
|
applications and PMDs.
|
|
|
|
* eventdev: Re-arranged fields in ``rte_event_timer`` to remove holes.
|
|
|
|
|
|
Known Issues
|
|
------------
|
|
|
|
.. This section should contain new known issues in this release. Sample format:
|
|
|
|
* **Add title in present tense with full stop.**
|
|
|
|
Add a short 1-2 sentence description of the known issue
|
|
in the present tense. Add information on any known workarounds.
|
|
|
|
This section is a comment. Do not overwrite or remove it.
|
|
Also, make sure to start the actual text at the margin.
|
|
=======================================================
|
|
|
|
|
|
Tested Platforms
|
|
----------------
|
|
|
|
.. This section should contain a list of platforms that were tested
|
|
with this release.
|
|
|
|
The format is:
|
|
|
|
* <vendor> platform with <vendor> <type of devices> combinations
|
|
|
|
* List of CPU
|
|
* List of OS
|
|
* List of devices
|
|
* Other relevant details...
|
|
|
|
This section is a comment. Do not overwrite or remove it.
|
|
Also, make sure to start the actual text at the margin.
|
|
=======================================================
|