That depends on the nic. Mellanox's bifurcated driver is very easy to share with the kernel. Intel's, not so much. Do you mind mentioning which NICs are used at FB?
Also for GP, is anyone using vpp in production?
There is not even need for a bifurcated driver. The upstream kernel has AF_XDP which Intel and Mellanox NICs support in their drivers, and DPDK has official integration for it as well: https://doc.dpdk.org/guides/nics/af_xdp.html This will make deploying DPDK significantly easier for those that need/want to use it and allows to share the same driver for pushing packets up to DPDK and into the normal kernel stack with very close to "native" (as in user space driver) DPDK performance (target is ~90-95%).
I'm aware of the xdp support, but it's brand new, and certainly nowhere near as mature as the normal mode. It doesn't even work on most NICs yet.
But I agree that once it's more mature, it will be better overall.
From the latest DPDK docs in your link:
"Current implementation only supports single queue, multi-queues feature will be added later.
Note that MTU of AF_XDP PMD is limited due to XDP lacks support for fragmentation."
That's a non-starter for many use cases, since multiple queues is a fundamental feature of DPDK.
Re:BPF at Facebook and beyond
by aloknnikhil on Friday October 11, 2019 @04:04AM
(#21222430)
Predominantly, some internal teams at Cisco. VPP and its CNI (Ligato Contiv) seem to be picking up steam off late. This is going by activity in the mailing lists. I know Yahoo Japan uses it.
http://events19.linuxfoundation.org/wp-content/uploads/2018/...
Sort of a 'virtual switch' but much more beyond that and all with a BPF data plane. Cilium provides connectivity but also security policy, load-balancing and introspection for container pods. Preferred choice in Kubernetes-based workloads.
Re: Virtual Switch implemented in BPF: see Cilium’s work to connect containers with their BPF based connectors.