XDP-related project ideas for students
Table of Contents
This file seeks to collect ideas for smaller, self-contained projects suitable for completing for a student as part of a bachelor or master's thesis. Or just as a starting project for someone who wants to contribute to XDP but doesn't know where to start.
Feel free to pick up any of these projects and start working on it. You can ask questions by opening an issue.
Got an idea for a suitable project? Open a pull request with your idea added to this file.
Userspace projects
Improve the XDP tutorial
The XDP tutorial is our go-to introduction to XDP, but it can always use improving! Try running through the tutorial and think about anything that might be missing; then implement that as an addition to the tutorial. Look at the tutorial issues for inspiration, or just try to think of something for yourself!
Add XDP support to a userspace application
Some applications can benefit from accelerating their network support using XDP. This could be by adding AF_XDP support to get packets quickly into userspace, or by thinking about how the application could split (parts of) its network processing into an XDP program running in the kernel (and communicate with it via maps).
Add new tools to the xdp-tools repository
The XDP-tools repository contains tools that will be shipped by distributions as a collection of small useful tools related to XDP. Can you think of anything that might be missing here? Look at the existing tools and improve one of those, or maybe add a whole new one?
Ideas:
- Look in samples/bpf in the kernel tree and port utilities from there; the xdp_monitor utility could be useful in a more general form.
Kernel projects
Improve the programs in samples/bpf or BPF selftests
There are several ideas for improvements to the programs in the samples/bpf directory of the kernel source tree, or the BPF selftests. See: