[dpdk-dev] [PATCH V5 2/2] net/tap: use new Rx offloads API

Shahaf Shuler shahafs at mellanox.com
Wed Mar 14 06:49:48 CET 2018


Tuesday, March 13, 2018 1:57 PM, Ferruh Yigit:
> >
> > Again - the application should follow the API which currently dictates how
> to set port offload. It is not depends on the rx_queue_offloads capabilities.
> > For example, PMD which don't support queue offloads can still have
> verification for the API that each port offload is set also on the queue
> offloads.
> 
> I am not agree with this part, why to dictate application to set queue offloads
> if it already knows device doesn't support queue specific offloads?

I agree we can make a small change in the API to not force the application to set the port offloads in the queue configuration. It makes sense. 
The change will be:
"port offloads should be set on the port configuration. Queue offloads should be set on the queue configuration" 

> 
> In some of the existing PMD patches, to switch to new offloading API, PMD
> sets [rt]x_queue_offload_capa as same as [rt]x_offload_capa, 

Well this is just wrong. Unless those PMDs support all the offloads in a queue level. 

The logic is "every queue offload can be counted as port offload", because such offload can be set on each and every queue.
The other way around is not correct, port offload cannot be counted as queue offload.

So if such PMDs has offloads which are supported only on the port level they cannot be declared as queue offloads. 


>in that case
> application can't know if queue specific offloads are supported or not and
> application may try to set queue offloads, this forces PMD to verify them.
> 
> You confirmed [rt]x_queue_offload_capa is the way for application to know
> if device supports queue specific offloads or not. If these values always set to
> [rt]x_offload_capa, application losts this capability.
> 
> Instead:
> - PMD that doesn't support queue specific offloads should set
> [rt]x_queue_offload_capa to 0
> - When [rt]x_queue_offload_capa is 0, application should be free to set
> queue offloads whatever it wants

I don't agree, when queue_offload_capa is 0 the expected behavior from application is not to set any offload (if we do the change in the API that you are pushing to).
PMDs can verify it or not, but if capability is not set the application should not set the offload. This is how the API should be defined. 

> - When [rt]x_queue_offload_capa is 0, PMD should be free to verify queue
> offloads but most probably shouldn't verify them since we don't know what
> application will send.
> 
> - When [rt]x_queue_offload_capa is != 0, applications should set queue
> offloads at least "[rt]x_queue_offload = [rt]x_offload"

If we do the change you are pushing it is not needed. 
Application will set the port offload in the port configuration, and the queue offload in the queue configuration. 
No need to make special treatment based on the offloads_capa. 

> - When [rt]x_queue_offload_capa is != 0, PMD should verify the queue
> offloads
> 


More information about the dev mailing list