Skip to content

Latest commit

 

History

History
256 lines (177 loc) · 8.85 KB

release_20_11.rst

File metadata and controls

256 lines (177 loc) · 8.85 KB

DPDK Release 20.11

New Features

  • 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.

Removed Items

API Changes

  • 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() and rte_cio_wmb() were deprecated since 20.08 and are removed in this release.
  • mem: Removed the unioned field phys_addr from the structures rte_memseg and rte_memzone. The field iova is remaining from the old unions.
  • mempool: Removed the unioned fields phys_addr and physaddr from the structures rte_mempool_memhdr and rte_mempool_objhdr. The field iova is remaining from the old unions. The flag name MEMPOOL_F_NO_PHYS_CONTIG is removed, while the aliased flag MEMPOOL_F_NO_IOVA_CONTIG is kept.
  • mbuf: Removed the functions rte_mbuf_data_dma_addr* and the macros rte_pktmbuf_mtophys*. The same functionality is still available with the functions and macros having iova in their names instead of dma_addr or mtophys.
  • mbuf: Removed the unioned field buf_physaddr from rte_mbuf. The field buf_iova is remaining from the old union.
  • mbuf: Removed the unioned field refcnt_atomic from the structures rte_mbuf and rte_mbuf_ext_shared_info. The field refcnt 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 and pci_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 and mapped_pci_res_list).
  • ethdev: Removed the kdrv field in the ethdev rte_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() and rte_rawdev_configure(), allowing limited driver type-checking and ABI compatibility.
  • rawdev: Changed the return type of the function rte_dev_info_get() and the function rte_rawdev_queue_conf_get() from void to int allowing the return of error codes from drivers.
  • bpf: RTE_BPF_XTYPE_NUM has been dropped from rte_bpf_xtype.

ABI Changes

  • ethdev changes
    • Following device operation function pointers moved from struct eth_dev_ops to struct 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.

Known Issues

Tested Platforms