[dpdk-dev] [PATCH v5 00/29] Support VFD and DPDK PF + kernel VF on i40e

Chen, Jing D jing.d.chen at intel.com
Thu Dec 22 09:10:35 CET 2016


Hi, Vincent,

> -----Original Message-----
> From: Vincent JARDIN [mailto:vincent.jardin at 6wind.com]
> Sent: Tuesday, December 20, 2016 11:19 PM
> To: Chen, Jing D <jing.d.chen at intel.com>; Thomas Monjalon
> <thomas.monjalon at 6wind.com>
> Cc: dev at dpdk.org; Yigit, Ferruh <ferruh.yigit at intel.com>; Wu, Jingjing
> <jingjing.wu at intel.com>; Zhang, Helin <helin.zhang at intel.com>
> Subject: Re: [dpdk-dev] [PATCH v5 00/29] Support VFD and DPDK PF + kernel VF on
> i40e
> 
> Le 20/12/2016 à 05:48, Chen, Jing D a écrit :
> > That's a collaboration with another team. we'll follow-up that but not guarantee
> > it will happen.
> > May I ask if my reply make it clear? Still NAC for this patch?
> 
> Yes still nack, I am not confident with this PF approach since you are
> breaking Linux PF behavior. It does not provide guarantees with PF.
> Something is missing to guarantee the compatibilities.

Let me introduce the rationale of API between PF and VF.

There is a common head file visible to both PF and VF, which includes a set of command
and data structures, which is managed by a version number. Below is an example.

Major_verion=1
Minor_verion=1
enum i40e_virtchnl_ops {
	CMD_GET_VERSION,
	CMD_RESET_VF,
	......
}

struct i40e_virtchnl_version_info {
	u32 major;
	u32 minor;
};
......

So, both PF and VF strictly follow the spec. VF send request with expected command and 
data structures to PF host. PF do sanity check and configure, finally applied to HW. 

As developing the code, it's possible to have multiple version of API occurred with 'major_verion'
or 'minor_version' changed. So, at the initialization stage, VF and PF will use a command 
'CMD_GET_VERSION' to negotiate what language (what version of API) they should use
and setup conversation. 

So, from my perspective, there is no issue here.

In the meanwhile, we have some test models ongoing to validate combination of Linux and 
DPDK drivers for VF and PF. We'll fully support below 4 cases going forward.
1. DPDK PF + DPDK VF 
2. DPDK PF + Linux VF
3. Linux PF + DPDK VF 
4. Linux PF + Linux VF (it's not our scope)

After applied this patch, i've done below test without observing compatibility issue.
1. DPDK PF + DPDK VF (middle of 16.11 and 17.02 code base). PF to support API 1.0 while VF
    to support API 1.1/1.0	
2. DPDK PF + Linux VF 1.5.14. PF to support 1.0, while Linux to support 1.1/1.0

Linux PF + DPDK VF has been tested with 1.0 API long time ago. There is some test activities
ongoing.

Finally, please give strong reasons to support your NAC.


More information about the dev mailing list