Linux packet-path evidence

See where the
packet went.
Keep the receipts.

Trace SKBs through kernel functions, TC, XDP, tunnels, transforms, and drops—then replay the exact route from bounded evidence.

Follow packet

Incident / 03:17 UTC Namespace / prod-edge

The familiar report

“The load balancer sent it.
The pod never saw it.”

There are a thousand places for certainty to disappear between those two sentences. skbx turns the gap into an ordered evidence stream.

Question Where, exactly?

One packet. Five receipts.

Follow the evidence,
not the folklore.

01 / OBSERVE

Meet the packet at the hook.

BTF-discovered probes identify the real kernel function and the real struct sk_buff * argument—without guessing field layouts.

skbx plan --probe ip_rcv --json
02 / CAPTURE

Bound the observation.

Capture duration, state, packet parsing, and output are bounded. Every limit is part of the contract, not a footnote.

sudo skbx capture --duration 10 icmp
03 / HANDLE

Give evidence an address.

Every event receives a stable handle. Humans and agents can point to the same observation without paraphrasing it into fiction.

event:8c6f…  skb:17  ip_rcv
04 / REPLAY

Rebuild the route without root.

Replay groups ordered events into bounded routes, surfaces consensus and outliers, and turns a capture into a reproducible path.

skbx replay trace.jsonl --format json
05 / EXPLAIN

Trace every answer back.

Explanation starts from the handle and retrieves surrounding evidence. The engine reports what happened; AI may explain, never invent.

skbx explain trace.jsonl event:<handle>

traceq / 0.1.0

A flight recorder
needs a black box.

Append-only JSONL. Mandatory header and footer. Stable handles. Explicit reliability telemetry. If the record is incomplete, skbx says so.

trace.jsonl 5 events / 0 lost
01 "type": "capture_start", "schema": "traceq/0.1.0"
02 "event": "event:8c6f…", "probe": "ip_rcv"
03 "skb": 17, "origin": "tracked", "mark": 42
04 "verdict": "drop", "reason": "DROP_POLICY"
05 "type": "capture_end", "reserve_failures": 0
COMPLETE RECORD sha / 68e5…a9c1

Trust is observable

A missing footer
is evidence, too.

01

Loss has names.

Reserve, recursion, read, decode, enrichment, and output failures remain separate counters.

02

State has bounds.

Capture limits and rotation boundaries are emitted with the trace, so consumers know the observation window.

03

Agents get contracts.

describe, schema, doctor, and plan make capabilities inspectable before attachment.

Operational search, answered with evidence

Turn “the network is slow” into bounded questions.

Start at a machine you control. Preserve the local packet path, identify where direct evidence ends, and add another vantage only when the incident crosses that boundary.

SKB tracing HTTPS latency ISP boundary packet drops rootless replay

Agent-first by construction

Self-describing.
Deterministic.
Unimpressed by guesses.

An agent can inspect commands, capabilities, limits, invariants, and schemas before it touches the host. Machine output stays on stdout. Diagnostics stay on stderr.

Read the agent contract

Start with the host, not a hypothesis.

Trace your first packet.

$ cargo install --git https://github.com/copyleftdev/skbx --locked skbx-cli