DPDK announcements
 help / color / mirror / Atom feed
From: Thomas Monjalon <thomas@monjalon.net>
To: announce@dpdk.org
Cc: Ferruh Yigit <ferruh.yigit@intel.com>, techboard@dpdk.org
Subject: [dpdk-announce] CALL for action - Migration to the new ethdev offload API
Date: Fri, 09 Mar 2018 17:45:37 +0100	[thread overview]
Message-ID: <40047986.CZafATPF0V@xps> (raw)
In-Reply-To: <c3ef6a69-436d-88dc-0c0c-d52e733cf10d@intel.com>

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

           reply	other threads:[~2018-03-09 16:45 UTC|newest]

Thread overview: expand[flat|nested]  mbox.gz  Atom feed
 [parent not found: <c3ef6a69-436d-88dc-0c0c-d52e733cf10d@intel.com>]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=40047986.CZafATPF0V@xps \
    --to=thomas@monjalon.net \
    --cc=announce@dpdk.org \
    --cc=ferruh.yigit@intel.com \
    --cc=techboard@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).