3 ms·
The BPF-programmable network device
- jauntywundrkind 3y agoThis feels like it should take off quickly; there's just way too much excellent winning here not to. It'll be interesting to see who adopts this first & who adopts it strongest. There's already been a ton of performance wins by using eBPF but making the host & guest driver be a big eBPF shim is pretty next level!
- phrotoma 3y agoGiven the author works at Isovalent, I think it's a safe bet that Cilium will be among the first projects to adopt this.
- znpy 3y ago> The new device, named "netkit" Wasn’t netkit an userspace networking thing already, some ~10 years ago?
- ot 3y agoAre you thinking of netmap?
- znpy 3y agoNo i was thinking of https://www.netkit.org/ https://www.netkit.org/ But apparently it renamed and got generally restructured? I remember it as a very nice tool to learn about linux networking
- teleforce 3y agoGood old netkit. Apparently the name has changed to Khatara: https://www.kathara.org/ https://www.kathara.org/
- tuetuopay 3y agoThis is super interesting! However, I fail to see the benefits vs. an XDP probe attached to a VM's TAP interface. It already bypasses the host's stack, and can already redirect to other network devices. Those can also modify/resize the packet to add e.g. encapsulation. Perhaps those get passed a full SKB instead of a "small" packet? As with virtio offloads, guests can pass a full 64k "packet" for a full TCP buffer, instead of already segmented packets, offloading those to the physical card.
- phrotoma 3y agoHere's the video of the talk associated with linked the slide deck, I haven't finished it yet but it seems like the benefit is making the life of the bpf programmer easier by supporting something like a "filter chain" of bpf programs and some nice API's for adding / removing and semantics for combining them. Hopefully someone else can expand on this. https://youtu.be/EM09k066pB8?si=9UvNXGMcrLuNf7Q9 https://youtu.be/EM09k066pB8?si=9UvNXGMcrLuNf7Q9
- teleforce 3y agoAwesome, this can help makes VPP even faster and flexible for implementation. It can also help with nested containers to be more lightweight for networking purposes especially nested containers that are increasingly useful in network systems simulation and emulation.