3 ms·
> Because it's necessary for any reasonable performance. This is simply not true [1] [2]. [1] - http://dpdk.org/ http://dpdk.org/ [2] - http://info.iet.unipi
by q3k 10y ago
> Because it's necessary for any reasonable performance.
This is simply not true [1] [2].
[1] - http://dpdk.org/ http://dpdk.org/
[2] - http://info.iet.unipi.it/~luigi/netmap/ http://info.iet.unipi.it/~luigi/netmap/
- loeg 10y agoBoth userspace stacks bypass several standard kernel interfaces to achieve good performance. If you want to integrate with normal kernel configuration (interface, routing, etc) and BSD sockets, then maybe you do need to be in the kernel. (Maybe it's possible to improve user<->kernel interfaces to reach good performance in userspace with standard kernel configuration, but we aren't there yet.)
- zx2c4 10y agoI love DPDK. Super fun. I've actually made a few projects with it. But this is for creating closed network systems, not for integrating into Linux's networking infrastructure. If somebody would like to produce a WireGuard implementation (library, I guess) for DPDK, I'd be super happy about this, and I'm sure it'd find some specialized users. But for everything else, there's the ordinary design.
- q3k 10y agoIt is absolutely possible to create DPDK applications that send/receive data into the Linux network stack using KNI [1]. I'm not sure if I'm qualified to say whether DPDK is “for” something, but the means to achieve this exist. [1] - http://dpdk.org/doc/guides-16.04/prog_guide/kernel_nic_interface.html http://dpdk.org/doc/guides-16.04/prog_guide/kernel_nic_inter...
- jpgvm 10y agoHowever it's basically true. You need to be running specific hardware and/or drivers to make use of kernel bypass. You most definitely will never be able to use DPDK on the average laptop. For a VPN that intends end-user device deployment it's kind of silly to require specific hardware.