DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] Guidelines for moving PMDs to new ethdev offloads API
@ 2017-12-10  5:35 Shahaf Shuler
  2017-12-10  5:52 ` Stephen Hemminger
  2017-12-10 11:23 ` Thomas Monjalon
  0 siblings, 2 replies; 4+ messages in thread
From: Shahaf Shuler @ 2017-12-10  5:35 UTC (permalink / raw)
  To: dev

In 17.11 the ethdev offloads API has changed:

                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:

                https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdpdk.org%2Fdoc%2Fguides%2Fprog_guide%2Fpoll_mode_drv.html%23hardware-offload&data=02%7C01%7Cshahafs%40mellanox.com%7Cc365451c3f934b73db5e08d53f6fe6fd%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0%7C0%7C636484672216209911&sdata=l0OkZ8m78BMsw%2F0d7bA8m80gVqlSL%2Bpcs9UplVSmlOA%3D&reserved=0



As announced in the deprecation notice, the old API is planned to be removed in 18.05:

                https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdpdk.org%2Fdoc%2Fguides%2Frel_notes%2Fdeprecation.html&data=02%7C01%7Cshahafs%40mellanox.com%7Cc365451c3f934b73db5e08d53f6fe6fd%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0%7C0%7C636484672216209911&sdata=85wB%2BoU3um%2BXegYiLAJIDYWIkvpb9WQtPSgA73zsLHI%3D&reserved=0

As agreed, all the PMDs must be converted to the new API by their maintainers.

This email will better explain the transition process.



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



* 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 and 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 (Done by application)

                - 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]



* 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 and per queue rte_eth_txconf.offloads  using DEV_TX_OFFLOAD_*

                - Transition: ETH_TXQ_FLAGS_IGNORE must be set when using the new API (Done by application)

                              PMD should ignore port offloads not set on the device configuration when using old API

                - To be removed: rte_eth_txconf.txq_flags and ETH_TXQ_FLAGS_NO*


--Shahaf

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [dpdk-dev] Guidelines for moving PMDs to new ethdev offloads API
  2017-12-10  5:35 [dpdk-dev] Guidelines for moving PMDs to new ethdev offloads API Shahaf Shuler
@ 2017-12-10  5:52 ` Stephen Hemminger
  2017-12-10  6:04   ` Shahaf Shuler
  2017-12-10 11:23 ` Thomas Monjalon
  1 sibling, 1 reply; 4+ messages in thread
From: Stephen Hemminger @ 2017-12-10  5:52 UTC (permalink / raw)
  To: Shahaf Shuler; +Cc: dev

On Sun, 10 Dec 2017 05:35:45 +0000
Shahaf Shuler <shahafs@mellanox.com> wrote:

> In 17.11 the ethdev offloads API has changed:
> 
>                 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:
> 
>                 https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdpdk.org%2Fdoc%2Fguides%2Fprog_guide%2Fpoll_mode_drv.html%23hardware-offload&data=02%7C01%7Cshahafs%40mellanox.com%7Cc365451c3f934b73db5e08d53f6fe6fd%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0%7C0%7C636484672216209911&sdata=l0OkZ8m78BMsw%2F0d7bA8m80gVqlSL%2Bpcs9UplVSmlOA%3D&reserved=0
> 
> 
> 
> As announced in the deprecation notice, the old API is planned to be removed in 18.05:
> 
>                 https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdpdk.org%2Fdoc%2Fguides%2Frel_notes%2Fdeprecation.html&data=02%7C01%7Cshahafs%40mellanox.com%7Cc365451c3f934b73db5e08d53f6fe6fd%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0%7C0%7C636484672216209911&sdata=85wB%2BoU3um%2BXegYiLAJIDYWIkvpb9WQtPSgA73zsLHI%3D&reserved=0
> 
> As agreed, all the PMDs must be converted to the new API by their maintainers.
> 
> This email will better explain the transition process.
> 
> 
> 
> 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
> 
> 
> 
> * 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 and 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 (Done by application)
> 
>                 - 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]
> 
> 
> 
> * 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 and per queue rte_eth_txconf.offloads  using DEV_TX_OFFLOAD_*
> 
>                 - Transition: ETH_TXQ_FLAGS_IGNORE must be set when using the new API (Done by application)
> 
>                               PMD should ignore port offloads not set on the device configuration when using old API
> 
>                 - To be removed: rte_eth_txconf.txq_flags and ETH_TXQ_FLAGS_NO*
> 
> 
> --Shahaf
> 

I agree with this change. but how can it be done with out breaking ABI?

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [dpdk-dev] Guidelines for moving PMDs to new ethdev offloads API
  2017-12-10  5:52 ` Stephen Hemminger
@ 2017-12-10  6:04   ` Shahaf Shuler
  0 siblings, 0 replies; 4+ messages in thread
From: Shahaf Shuler @ 2017-12-10  6:04 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: dev

Sunday, December 10, 2017 7:52 AM, Stephen Hemminger:
> 
> On Sun, 10 Dec 2017 05:35:45 +0000
> Shahaf Shuler <shahafs@mellanox.com> wrote:
> 
> > In 17.11 the ethdev offloads API has changed:
> >
> >                 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:
> >
> >
> https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdpd
> k.org%2Fdoc%2Fguides%2Fprog_guide%2Fpoll_mode_drv.html%23hardwar
> e-
> offload&data=02%7C01%7Cshahafs%40mellanox.com%7Cc365451c3f934b73d
> b5e08d53f6fe6fd%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0%7C0%7C636
> 484672216209911&sdata=l0OkZ8m78BMsw%2F0d7bA8m80gVqlSL%2Bpcs9Up
> lVSmlOA%3D&reserved=0
> >
> >
> >
> > As announced in the deprecation notice, the old API is planned to be
> removed in 18.05:
> >
> >
> https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdpd
> k.org%2Fdoc%2Fguides%2Frel_notes%2Fdeprecation.html&data=02%7C01%
> 7Cshahafs%40mellanox.com%7Cc365451c3f934b73db5e08d53f6fe6fd%7Ca65
> 2971c7d2e4d9ba6a4d149256f461b%7C0%7C0%7C636484672216209911&sdata
> =85wB%2BoU3um%2BXegYiLAJIDYWIkvpb9WQtPSgA73zsLHI%3D&reserved=
> 0
> >

[.. ] 

> 
> I agree with this change. but how can it be done with out breaking ABI?

Not sure I understand. 
The new API has already been accepted on 17.11. 
you mean the deprecation in 18.05?  This also been accepted during 17.11 release. 

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [dpdk-dev] Guidelines for moving PMDs to new ethdev offloads API
  2017-12-10  5:35 [dpdk-dev] Guidelines for moving PMDs to new ethdev offloads API Shahaf Shuler
  2017-12-10  5:52 ` Stephen Hemminger
@ 2017-12-10 11:23 ` Thomas Monjalon
  1 sibling, 0 replies; 4+ messages in thread
From: Thomas Monjalon @ 2017-12-10 11:23 UTC (permalink / raw)
  To: Declan Doherty, John W. Linville, Michal Krawczyk, John Miller,
	Ajit Khaparde, Jerin Jacob, Shijith Thotton, Santosh Shukla,
	Rahul Lakkireddy, John Daley, Wenzhuo Lu, Konstantin Ananyev,
	Jingjing Wu, Beilei Xing, Xiao Wang, Qi Zhang, Jacek Siuda,
	Tomasz Duszynski, Matej Vido, Alejandro Lucero, Hemant Agrawal,
	Shreyansh Jain, Harish Patil, Rasesh Mody, Andrew Rybchenko,
	Shrikrishna Khare, Yuanhan Liu, Maxime Coquelin, Allain Legacy,
	Pascal Mazon, Gaetan Rivet, Jasvinder Singh
  Cc: dev, Shahaf Shuler, Ferruh Yigit

Hi,
Re-sending Shahaf's email to maintainers
(and without Outlook formatting)

Please, maintainers of networking PMD,
*start the transition work as soon as possible*.
We will ping you individually if no progress is seen.
Thank you

---

In 17.11 the ethdev offloads API has changed:
	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

As announced in the deprecation notice, the old API is planned to be
removed in 18.05:
	http://dpdk.org/doc/guides/rel_notes/deprecation.html
As agreed, all the PMDs must be converted to the new API by their maintainers.
This email will better explain the transition process.

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

* 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_*

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2017-12-10 11:23 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-12-10  5:35 [dpdk-dev] Guidelines for moving PMDs to new ethdev offloads API Shahaf Shuler
2017-12-10  5:52 ` Stephen Hemminger
2017-12-10  6:04   ` Shahaf Shuler
2017-12-10 11:23 ` Thomas Monjalon

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