[dpdk-announce] CALL for action - Migration to the new ethdev offload API

Thomas Monjalon thomas at monjalon.net
Fri Mar 9 17:45:37 CET 2018


Hi,

In DPDK 17.11, the ethdev offloads API has changed.
A dozen drivers are not yet converted to this new API.
We are in a transition period which is planned to close with
this 18.05 release.

As a PMD maintainer or contributor, you can improve your karma
by converting your PMD in the next few weeks.
Most of the time, the work is really light.
The conversion can be done by a newcomer without any hardware.
Everybody is welcome to HELP moving forward.

If a PMD is not converted in 18.05, the Technical Board is
considering disabling broken drivers in the default configuration.

List of drivers requiring attention:
	- bonding
	- Cavium liquidio, octeontx
	- Chelsio cxgbe
	- Netcope szedata2
	- Netronome nfp
	- NXP dpaa, dpaa2
	- QLogic bnx2x, qede
	- RedHat virtio
	- VMware vmxnet3
	- Wind River avp



--------------- more details ---------------

For reference, the API changes are:
	commit cba7f53b717d ("ethdev: introduce Tx queue offloads API")
	commit ce17eddefc20 ("ethdev: introduce Rx queue offloads API")
The new API is documented in the programmer's guide:
	http://dpdk.org/doc/guides/prog_guide/poll_mode_drv.html#hardware-offload

The main concepts in the new API are:
	- All offloads are disabled by default
	- Distinction between per port and per queue offloads.
	Per port offloads needs to be set also for each queue of the port.

The transition period is using an API translation in rte_ethdev.c:
	- The old API is translated to allow using converted PMDs
	- The new API is translated to allow using not converted PMDs
	- The use of the new API is flagged to trigger the right translation

As announced several times in the past, the old API is planned to be
deprecated in 18.05. The translation from the new API may be removed
and break PMDs which are still using the old API conventions.


Below is a reminder about the transition process:

* Device capabilities - rte_eth_dev_info_get()
	- Not changing: use DEV_RX/TX_OFFLOAD_* flags
	- Old API: per-port fields rte_eth_dev_info.rx/tx_offload_capa
	- New API: added per-queue rte_eth_dev_info.rx/tx_queue_offload_capa

* Rx offloads
	- Not changing: offload disabled by default
	- Old API: per-port rte_eth_conf.rxmode.[bit-fields]
	- New API: per-port rte_eth_conf.rxmode.offloads using DEV_RX_OFFLOAD_*
	           per-queue rte_eth_rxconf.offloads using DEV_RX_OFFLOAD_*
	- Transition: rte_eth_conf.rxmode.ignore_offload_bitfield must be set
	              when using the new API
	- To be removed: rte_eth_conf.rxmode.[
		header_split, hw_ip_checksum, hw_vlan_filter, hw_vlan_strip,
		hw_vlan_extend, jumbo_frame, hw_strip_crc, enable_scatter,
		enable_lro, hw_timestamp, security, ignore_offload_bitfield]    

* Tx offloads
	- Old API: enabled by default
	           per-queue rte_eth_txconf.txq_flags using ETH_TXQ_FLAGS_NO*
	- New API: disabled by default
	           per-port rte_eth_conf.txmode.offloads using DEV_TX_OFFLOAD_*
	           per-queue rte_eth_txconf.offloads using DEV_TX_OFFLOAD_*
	- Transition: ETH_TXQ_FLAGS_IGNORE must be set when using the new API
	              PMD ignores per-port mismatch when using old per-queue API
	- To be removed: rte_eth_txconf.txq_flags and ETH_TXQ_FLAGS_*



--------------- previous call by Ferruh ---------------

08/03/2018 16:49, Ferruh Yigit:
> Following is the list of PMDs that didn't switch (or didn't send a patch to
> switch) to new offloading API [1].
> 
> According to the Tech-Board decision, the old offloading API will be depreciated
> in this release (18.05) [2].
> 
> *This may break the PMDs with old offloading API support!*
> 
> Please prioritize this work. The deadline is integration deadline.
> 
> For some PMDs (like liquidio) it is just for jumbo frame support and a few lines
> of code change that should be straight forward.
> 
> Thanks,
> ferruh
>  
> [1]
> avp
> bnx2x
> bonding
> cxgbe
> dpaa ?
> dpaa2
> liquidio ?
> nfp
> octeontx
> qede
> szedata2
> virtio
> vmxnet3
> 
> [2]
> Tech board meeting minutes not releases yet.
> Deprecation notice: https://dpdk.org/commit/3004d3454192





More information about the announce mailing list