The point of this benchmark plan is to compare networking paths under agent-shaped traffic, not just ideal lab streams.
- kernel TCP baseline
- kernel TCP +
io_uring - kernel TCP +
io_uringzero-copy Rx if available AF_XDPon selected queuesRDMAfor bulk lanes
The point of the comparison is not to crown one universal winner. It is to identify which path wins for which workload shape and at what operational cost.
- payloads:
256 Bto8 KB - request fan-out:
1to32 - response streaming: optional
- focus: tail latency and CPU cost
- likely path winner: kernel TCP, then
io_uringwhere supported
Release blocker for wider claims:
- explicitly prove
AF_XDPis not slower than Path A for sub-512 BRPCs before recommending it for hot small-message services - record
XDPredirect overhead and compare it to socket-path wakeup and copy cost - treat
64 B,128 B,256 B, and512 Bas mandatory comparison points, not optional extras
- payloads:
1 KBto64 KB - mixed reads and writes
- bursty arrivals
- focus: queue pressure and copy overhead
- likely path winner: kernel TCP or
AF_XDP, depending on service heat and queue stability
- payloads:
64 KBto4 MB - repeated transfer patterns
- focus: throughput and host CPU per GB
- likely path winner:
RDMAif setup and fabric costs are acceptable
- single flow vs many concurrent flows
- one NUMA node vs cross-NUMA placement
- IRQ and worker CPU alignment
- zero-copy enabled vs disabled
- memory pre-registration vs on-demand registration
- TLS on vs off for kernel RPC path
perf statperf recordethtool -Sbpftool prog show/proc/softirqssar -n DEV- NIC vendor counters
bpftraceguardian and latency-preemption scripts for bounded-autonomy validation
- lower p99 latency on Class A without exploding complexity
- lower CPU cost on Class B hot services
- clear throughput and CPU win on Class C bulk movement
- stable behavior under burst and fan-out
AF_XDPmust not regress sub-512 Bp99 latency relative to Path A without a clearly justified CPU savings story- guardian intervention must be shown not to violate tail-latency SLOs on protected service classes
For every run, record:
- kernel version
- NIC model
- firmware version
- driver versions
- queue counts
- RSS/XPS settings
- IRQ placement
- workload class
- median, p99, and max latency
- throughput
- CPU utilization by core
- dropped packets or CQ errors
ice+ kernel TCPice+io_uringice+AF_XDPice+irdma
Then repeat for:
bnxt_en+ kernel TCPbnxt_en+ XDP path if supported as neededbnxt_refor RoCE bulk path
The repo should not claim safe bounded autonomy without showing observability around guardian intervention. Minimum evidence:
- trace when guardian decisions preempt or clamp dataplane actions
- correlate intervention windows with service latency histograms
- prove fail-safe entry does not destroy protected control-plane traffic
Starter scripts live in: