This is the compact file/function map for active debugging on current master.
Use it when forwarding is broken, throughput collapses after startup, or the
XDP shim and Rust helper disagree about who owns the packet.
- XDP redirect and fallback decisions:
- Go lifecycle, capability gate, and helper control:
- Rust control loop and worker bring-up:
- Rust AF_XDP forwarding hot path:
- Session installation and NAT reverse lookup:
- Go-side HA/session-sync bridge:
Look at:
Questions:
- Did Go choose
xdp_userspace_progorxdp_main_prog? - Is the capability gate forcing legacy fallback?
- Is the XDP shim redirecting, cpumap-passing, tail-calling, or dropping?
Look at:
Questions:
- Did bootstrap maps get programmed correctly?
- Did the helper apply the snapshot and arm forwarding?
- Did AF_XDP bind or rebind fail after a link cycle?
Look at:
Questions:
- Is the helper parsing the authoritative 5-tuple from metadata or from the mutated frame?
- Is reverse NAT lookup hitting
nat_reverse_index? - Are rebuilt L4 ports coming from the session tuple or from stale frame bytes?
Look at:
Questions:
- Is TX backpressure starving RX fill-ring replenishment?
- Are
pending_tx_localorpending_tx_preparedgrowing without draining? - Are completions being reaped fast enough to recycle frames?
Look at:
Questions:
- Is the fill ring draining to zero?
- Are AF_XDP RX buffer allocation errors climbing?
- Are we spinning in backpressure without refilling?
Look at:
Questions:
- Is forwarding armed on the actual primary?
- Are session deltas being drained from Rust and mirrored into Go/cluster sync?
- Is owner RG being preserved or falling back to zone-based sync?
- Did Go arm userspace forwarding?
- Did the XDP shim redirect this packet to AF_XDP?
- Did the Rust worker parse the expected tuple?
- Was there a session hit, shared hit, or NAT-reverse hit?
- Did NAT and FIB resolution produce a valid egress?
- Did TX enqueue and drain without starving fill-ring recycle?
Use:
That workflow gives you:
- runtime mode detection
- sustained-throughput detection
- perf capture on the active userspace firewall
- synchronized firewall-side and server-side tcpdump when
iperf3collapses