-
Notifications
You must be signed in to change notification settings - Fork 7
Performance Benchmark
This historical benchmark simulates a volumetric UDP flood. An AMD EPYC™ 7Y43 server generated approximately 367k packets per second (188 Mbps) against a 1 vCPU AMD Ryzen 9 3900X instance protected by Auto XDP.
Treat the numbers as a recorded result, not a current performance guarantee; hardware, kernel, driver, traffic shape, and XDP mode affect the result.
- Attacker: AMD EPYC™ 7Y43 @ 2.55 GHz, approximately 367k PPS / 188 Mbps
- Target: AMD Ryzen 9 3900X @ 2.0 GHz, 1 vCPU, 1 GB RAM
- Tool:
pktgen(Linux kernel packet generator) - Attacker and target connected over the public internet
| Metric | Auto XDP off | Auto XDP on | Improvement |
|---|---|---|---|
| Softirq CPU usage | 85.9% | 3.0% | ~28× reduction |
| System responsiveness | Extremely laggy | Smooth | Significant |
| Packet handling | Kernel networking stack | Driver-level drop | — |
The result shows the expected difference between processing the flood in the kernel networking stack and dropping it at the XDP hook.
XDP off — softirq at 85.9% under flood:
XDP on — same flood, CPU drops to 3.0%:
XDP on — before attack:
XDP on — after attack:
Run on a disposable, privileged Linux host. Replace INTERFACE, TARGET_IP, and TARGET_MAC with the target values:
modprobe pktgen
PGDEV=/proc/net/pktgen/INTERFACE
echo "rem_device_all" > /proc/net/pktgen/kpktgend_0
echo "add_device INTERFACE" > /proc/net/pktgen/kpktgend_0
echo "count 10000000" > "$PGDEV"
echo "pkt_size 64" > "$PGDEV"
echo "dst TARGET_IP" > "$PGDEV"
echo "dst_mac TARGET_MAC" > "$PGDEV"
echo "clone_skb 100" > "$PGDEV"Auto XDP documentation · Repository · Releases · MPL-2.0



