Also wondering, why not just use DPDK?
An eBPF loophole: Using XDP for egress traffic
11–20 of 81 posts
Re: An eBPF loophole: Using XDP for egress traffic
#12Also wondering, why not just use DPDK?
Maybe more importantly: they're not building a middlebox. DPDK ultra-high performance comes in part from polling. It's always running. XDP is just an extension to the existing network driver.
Re: An eBPF loophole: Using XDP for egress traffic
#13Re: An eBPF loophole: Using XDP for egress traffic
#14Hi HN, Shivansh (founder) here, happy to answer any questions folks might have about the implementation and the benchmarks!
One of the things that struck me when reading this with only general knowledge of the linux kernel is: What makes things so terrible? Is iptables really that bad? Is something serialized to a single core somewhere in the other 3 scenarios? Is the CPU at 100% in all cases? Is this TCP or UDP traffic? How many threads is iperf using? It would be cool to see the CPU utilization of all 4 scenarios, along with CPU flamegraphs.
Re: An eBPF loophole: Using XDP for egress traffic
#15Hi HN, Shivansh (founder) here, happy to answer any questions folks might have about the implementation and the benchmarks!
I come from a very different world (optimizing the FreeBSD kernel for the Netflix CDN, running on bare metal) but performance leaps like this are fascinating to me. One of the things that struck me when reading this with only general knowledge of the linux kernel is: What makes things so terrible? Is iptables really that bad? Is something serialized to a single core somewhere in the other 3 scenarios? Is the CPU at 1…
Re: An eBPF loophole: Using XDP for egress traffic
#16Why doesn’t checksum offload in the NIC take care of that?
Re: An eBPF loophole: Using XDP for egress traffic
#17I understand they are attached to the phrase "loophole" but it feels fairly like they are using it as designed to me?
Re: An eBPF loophole: Using XDP for egress traffic
#18I'll definitely be coming to check you all out at Kubecon.
Re: An eBPF loophole: Using XDP for egress traffic
#19Re: An eBPF loophole: Using XDP for egress traffic
#20XDP (eXpress Data Path) is the fastest packet processing framework in linux - but it only works for incoming (ingress) traffic. We discovered how to use it for outgoing (egress) traffic by exploiting a loophole in how the linux kernel determines packet direction. Our technique delivers 10x better performance than current solutions, works with existing Docker/Kubernetes containers, and requires zero kernel modificatio…
Forgive me of my ignorance, but is XDP faster than DPDK for packet processing? It seems like DPDK has had a lot of work done for hardware optimizations that allow speeds that I can’t recall XDP being able to do. I have not looked too deeply into this though, so I’m very open to being wrong!
You can't compare the efficiency of the frameworks without talking about the specific setups on the host. The major advantage of XDP is that it is completely baked into the kernel. All you need to do is bring your eBPF program and attach it. DPDK requires a great deal of setup and user space libraries to work.