Skip to content

Observe ring buffer — drain path

kfree_skb / tcp_retransmit_skb / tcp_*_reset
        │
        ▼
  netevd_obs_event  ── ringbuf `events` (256 KiB)
        │
        ▼
  decode → filter (iface + reasons) → Coalescer
        │
        ▼
  drops.d / tcp-retransmit.d / tcp-reset.d

Fields

Field Source Notes
reason TP arg $DROP_REASON (Linux 6.8 skb_drop_reason names)
eth_proto / ip_proto TP + skb IP header $PROTOCOL
ifindex skb->skb_iif CO-RE 0 skipped when skip_unknown_ifindex
kind 1 drop / 2 rtx / 3 rst Hook directory
sport / dport skb L4 or inet_sock CO-RE $SPORT / $DPORT

Buckets that never reach min_count expire at the end of debounce_ms (they do not linger forever).

Metrics

netevd_ebpf_samples_total{kind="drop|rtx|rst"}
netevd_ebpf_hooks_total{event="drops|tcp-retransmit|tcp-reset"}
netevd_ebpf_ring_lost_total
netevd_ebpf_attached

Caps

Install systemd/netevd-ebpf.conf as /etc/systemd/system/netevd.service.d/ebpf.conf.

Still not in Community

XDP shield, cgroup deny, DNS qname, process comm — that is Netra.