I want to do more posts here that are quick roundups of interesting things I’ve read, rather than rambling commentary.
- DPDK, the Data Plane Development Kit, permits a userspace application in Linux or BSD to bypass the kernel and directly interact with a network card. Handling interrupts to pass data from a 100 Gbps network card through the kernel apparently performs poorly.
- Selectel’s “Introduction to DPDK: Architecture and Principles” looks like a detailed walkthrough of how it works. (I only skimmed it on the train tonight though.)
- FD.io is a Linux Foundation project implementing a software dataplane employing vector packet processing (VPP). Its What is VPP? page is a good intro.
- networking-vpp brings support to OpenStack networking.
- Ligato and Contiv-VPP bring VPP to Kubernetes (et al.)
- I’ve run up against mentions of YANG, which is “Yet Another Next Generation” DSL for modeling network data.
- Intro to networking-vector packet processing is based on a 2018 FOSDEM talk. The Youtube video really helped things “click” for me.
By passing the kernel seems risky. I am struggling to get past that.
I know various bigger companies moved from kernel bypass for speed to just using BPF and the XDP wrapper around it (https://www.iovisor.org/technology/xdp)
An example: https://engineering.fb.com/open-source/open-sourcing-katran-a-scalable-network-load-balancer/