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

Vincent JARDIN vincent.jardin at 6wind.com
Thu Dec 22 14:46:11 CET 2016

Le 22/12/2016 à 09:10, Chen, Jing D a écrit :
> 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.
> 2. DPDK PF + Linux VF

+ DPDK PF + Windows VF
+ DPDK PF + OS xyz VF

> 3. Linux PF + DPDK VF
> 4. Linux PF + Linux VF (it's not our scope)

So, you confirm the issue: having DPDK becoming a PF, even if SRIOV 
protocol includes version-ing, it doubles the combinatory cases.

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

I feel bad because I do recognize the strong and hard work that you have 
done on this PF development, but I feel we need first to assess if DPDK 
should become a PF or not. I know ixgbe did open the path and that they 
are some historical DPDK PF supports in Intel NICs, but before we 
generalize it, we have to make sure we are not turning this DataPlane 
development Kit into a ControlPlane Driver Kit that we are scared to 
upstream into Linux kernel. Even if "DPDK is not Linux", it does not 
mean that Linux should be ignored. In case of DPDK on other OS, same, 
their PF could be extended too.

So currently, yes, I do keep a nack't

Since DPDK PF features can be into Linux PF features too and since Linux 
(and other hypervisors) has already some tools to manage PF (see 
iproute2, etc.), why should we have an other management path with DPDK? 
DPDK is aimed to be a Dataplane Development kit, not a 
management/control plane driver kit.

Assuming you want to use DPDK PF for dataplane feature, that could be OK 
then, using:
   - configure one VF on the hypervisor from Linux's PF, let's name if 
VF_forPFtraffic, see http://dpdk.org/doc/guides/howto/flow_bifurcation.html
   - have no (or few IO)s to the PF's queue
   - assign the traffic to all VF_forPFtraffic's queues of the hypervisor,
   - run DPDK into the hypervisor's VF_forPFtraffic

Doing so, we get the same benefit of running DPDK over PF or running 
DPDK over VF_forPFtraffic, don't we? It is a benefit of:

Thank you,

More information about the dev mailing list