XDP has become the high-performance networking sweetheart. User-space programs will be able to read and write network packet data directly, and make decisions about how to treat a packet before it reaches the kernel level, using this mechanism. In other words, while user-space handles some of the overhead, the kernel is primarily responsible for the majority of these decisions and actions.
XDP isn’t a language. Instead, XDP uses the eBPF programming language to gain access to the lower-level kernel hook. That hook is then implemented by the network device driver within the ingress traffic processing function, before a socket buffer can be allocated for the incoming packet.
Let’s look at how these two work together. This outstanding example comes from Jeremy Erickson, who is a senior R&D developer with Duo (which is now a part of Cisco). We’ll illustrate Erickson’s example by way of Ubuntu 20.04. So in order to follow along, you should have a Ubuntu instance at the ready. What we’re going to do is demonstrate XDP and eBPF working together with the help of C and Python. It’s actually quite an interesting little experiment.
Understanding XDP: An in Kernel Alternative To The Network Stack. Xdp provides a bare metal packet processing at the lowest level. The xdp programs are written as an ebpf program that will be attached to the driver hook. This is similar to dpdk but unlike dpdk the interface will not be detached from the driver.
can Linux route at line-rate between two network interfaces? That’s the question we will try to answer in the next few minutes.
Gwyn brings you a bucket load of Linux news this month. Rocky Linux release candidate is now out, and it seems to be cementing itself as a worthy CentOS replacement. Linux Kernel 5.12 has been released, and although mainly small fixes, there’s a couple of things worth your time, such as an Intel GPU fix. Plasma Mobile has been updated, giving a fresh coat of paint to several mobile applications. Fedora 34 is out and brings a few new improvements, as does Firefox 88 and Ubuntu 21.04, while the Pop!_OS desktop experience, Cosmic, shows us a different view.
Looking to develop real-time applications? **[Hire Dedicated Linux Developer](https://hourlydeveloper.io/hire-dedicated-linux-developer/ "Hire Dedicated Linux Developer")** from **[HourlyDeveloper.io](https://hourlydeveloper.io/...
Often in my, now 20 years, networking career, I had to do some form of network performance testing. Use-cases varied, from troubleshooting…Building a high performance — Linux Based Traffic generator with DPDK