Updated Broadcom bnxt driver.
Updated the Broadcom bnxt driver with new features and improvements, including:
- Added support for 200G PAM4 link speed.
Updated Cisco enic driver.
- Added support for VF representors with single-queue Tx/Rx and flow API
- Added support for egress PORT_ID action
- Added support for non-zero priorities for group 0 flows
- Added support for VXLAN decap combined with VLAN pop
Extended flow-perf application.
- Started supporting user order instead of bit mask: Now the user can create any structure of rte_flow using flow performance application with any order, moreover the app also now starts to support inner items matching as well.
- Added header modify actions.
- Added flag action.
- Added raw encap/decap actions.
- Added VXLAN encap/decap actions.
- Added ICMP and ICMP6 matching items.
- Added option to set port mask for insertion/deletion:
--portmask=N
where N represents the hexadecimal bitmask of ports used.
Updated the pipeline library for alignment with the P4 language.
Added new Software Switch (SWX) pipeline type that provides more flexibility through API and feature alignment with the P4 language.
- The packet headers, meta-data, actions, tables and pipelines are dynamically defined instead of selected from pre-defined set.
- The actions and the pipeline are defined with instructions.
- Extern objects and functions can be plugged into the pipeline.
- Transaction-oriented table updates.
- build macros: The macros defining
RTE_MACHINE_CPUFLAG_*
are removed. The information provided by these macros is available through standard compiler macros. - eal: The
rte_logs
struct and global symbol was made private and is no longer part of the API. - eal: Made the
rte_dev_event
structure private to the EAL as no public API used it. - eal:
rte_cio_rmb()
andrte_cio_wmb()
were deprecated since 20.08 and are removed in this release. - mem: Removed the unioned field
phys_addr
from the structuresrte_memseg
andrte_memzone
. The fieldiova
is remaining from the old unions. - mempool: Removed the unioned fields
phys_addr
andphysaddr
from the structuresrte_mempool_memhdr
andrte_mempool_objhdr
. The fieldiova
is remaining from the old unions. The flag nameMEMPOOL_F_NO_PHYS_CONTIG
is removed, while the aliased flagMEMPOOL_F_NO_IOVA_CONTIG
is kept. - mbuf: Removed the functions
rte_mbuf_data_dma_addr*
and the macrosrte_pktmbuf_mtophys*
. The same functionality is still available with the functions and macros havingiova
in their names instead ofdma_addr
ormtophys
. - mbuf: Removed the unioned field
buf_physaddr
fromrte_mbuf
. The fieldbuf_iova
is remaining from the old union. - mbuf: Removed the unioned field
refcnt_atomic
from the structuresrte_mbuf
andrte_mbuf_ext_shared_info
. The fieldrefcnt
is remaining from the old unions. - pci: Removed the
rte_kernel_driver
enum defined in rte_dev.h and replaced with a private enum in the PCI subsystem. - pci: Removed the PCI resources map API from the public API
(
pci_map_resource
andpci_unmap_resource
) and moved it to the PCI bus driver along with the PCI resources lists and associated structures (pci_map
,pci_msix_table
,mapped_pci_resource
andmapped_pci_res_list
). - ethdev: Removed the
kdrv
field in the ethdevrte_eth_dev_data
structure as it gave no useful abstracted information to the applications. - ethdev:
rte_eth_rx_descriptor_done()
API has been deprecated. - Renamed internal ethdev APIs:
_rte_eth_dev_callback_process()
->rte_eth_dev_callback_process()
_rte_eth_dev_reset
->rte_eth_dev_internal_reset()
- rawdev: Added a structure size parameter to the functions
rte_rawdev_queue_setup()
,rte_rawdev_queue_conf_get()
,rte_rawdev_info_get()
andrte_rawdev_configure()
, allowing limited driver type-checking and ABI compatibility. - rawdev: Changed the return type of the function
rte_dev_info_get()
and the functionrte_rawdev_queue_conf_get()
fromvoid
toint
allowing the return of error codes from drivers. - bpf:
RTE_BPF_XTYPE_NUM
has been dropped fromrte_bpf_xtype
.
ethdev
changes- Following device operation function pointers moved
from
struct eth_dev_ops
tostruct rte_eth_dev
:eth_rx_queue_count_t rx_queue_count;
eth_rx_descriptor_done_t rx_descriptor_done;
eth_rx_descriptor_status_t rx_descriptor_status;
eth_tx_descriptor_status_t tx_descriptor_status;
struct eth_dev_ops
is no more accessible by applications, which was already internal data structure.ethdev
internal functions are marked with__rte_internal
tag.
- Following device operation function pointers moved
from