skbx answers two different questions without mixing them:
- Observation: which kernel networking functions handled this SKB?
- Explanation: what does the captured route imply?
Observation is native, deterministic for recorded input, and evidence-backed. Explanation is downstream and optional. An agent can only explain events present in a trace.
The protocol is traceq/0.1.0. A trace is append-only JSONL:
capture_start
event
event
...
capture_end
The footer is mandatory. Missing footer means the artifact is incomplete. The footer carries kernel loss, user-space decode failures, output failures and the stop reason. This prevents a partial trace from silently looking authoritative.
capability probe
→ deterministic probe plan
→ attach
→ bounded ring-buffer drain
→ validate fixed-size record
→ resolve immutable evidence handle
→ stream event
→ finalize reliability footer
→ deterministic replay/summary
- Same JSONL input produces byte-identical replay summaries.
- Live capture is bounded by duration and event count by default.
- Kernel loss and decoding loss are never folded into ordinary events.
- Machine output on stdout is never mixed with diagnostics on stderr.
- All write errors propagate.
- State keyed by SKB or PID has a declared maximum size and eviction policy.
- Source addresses are evidence; symbol names are enrichment and may be
unavailable when
kptr_restricthides kernel addresses. - Unsupported capability is explicit, never approximated silently.
The planner parses the running kernel's BTF with btf-rs, locates
struct sk_buff * in the first five ABI argument positions, intersects the
result with attachable symbols, and selects the corresponding eBPF program.
An exact request absent from BTF stays visible as unavailable. No function is
attached based only on its name.
- one fixed-size ring-buffer reservation per observed function call;
- no packet allocation in kernel space;
- no unbounded kernel map;
- buffered userspace writes;
- streaming aggregation with bounded maps;
- deterministic
BTreeMapordering only at summary boundaries.
The kernel hot path never performs JSON encoding, symbolization or process filesystem reads.
The evidence-backed surface includes BTF-discovered SKB and non-SKB probes, individual and kprobe-multi attachment, split-BTF modules, tuple and tunnel decoding, lineage across clone/copy/COW and XDP frame transport, TC/XDP program observation, helper/map evidence, typed metadata and filters, atomic BTF dumps, loss telemetry, schema, doctor, plan, capture, replay, and explain.
The authoritative status is the executable pwru parity matrix, not a prose roadmap. Future work starts as an observation request and moves into the supported matrix only after unit, contract, and relevant live-kernel evidence exist.