News for hackers. Stuff that matters.
Re:BPF, XDP, Packet Filters and UDP by tptacek on Wednesday October 21, 2020 @09:49PM (#24854163)
So, someone here can correct me about this if I'm wrong, but my impression is that DPDK's architecture sort of assumes single-purpose packet-processing servers --- it's commonly deployed with polling-mode drivers, right? So apart from the fact that DPDK would have required us to run another proxy daemon in userland, which was the thing we were trying to avoid doing, it also might have been tricky to get it to behave nicely on the same machines as our Rust edge proxies.

The nice thing about XDP is, you use llvm to make a .o, you load it with iproute2, and you forget about it; your code isn't a process running on the system, but rather a part of the Linux networking stack. It's as if the kernel just shipped with a "route Fly's UDP" feature.

Re:BPF, XDP, Packet Filters and UDP by ignoramous on Thursday October 22, 2020 @07:48AM (#24857013)
Thanks.

I was going through Cloudflare's Magic Transit docs and they seem to simply use Direct Server Return (Facebook does so too for their L4 load balancer [0] instead of dealing with XDP in the return path).

Any reason fly.io doesn't but relays the packets again out via the edge?

[0] https://engineering.fb.com/open-source/open-sourcing-katran-...

Re:BPF, XDP, Packet Filters and UDP by tptacek on Thursday October 22, 2020 @10:36AM (#24858458)
It's possible that we could; my concern is our forwarding takes over IP addressing, and can forward cross-region, and that theoretically direct server return could break RPF. DSR is, of course, much easier than the flow-based response forwarding we're doing now.