$ cd ../
xfrm-watch — bash

user@devops:~$ cat README.md

xfrm-watch

# Description

xfrm-watch (cpp-xfrm-watch) es un monitor de estadisticas XFRM (IPsec) del kernel Linux escrito en C++23 sin dependencias externas. Lee /proc/net/xfrm_stat (xfrm_statistics_seq_show en net/xfrm/xfrm_proc.c, enum LINUX_MIB_XFRM* de include/uapi/linux/xfrm.h) y muestra los 28 contadores del subsistema XFRM: XfrmInError, XfrmInBufferError, XfrmInHdrError, XfrmInNoStates, XfrmInStateProtoError, XfrmInStateModeError, XfrmInStateSeqError (antireplay), XfrmInStateExpired (lifetime), XfrmInStateMismatch, XfrmInStateInvalid, XfrmInTmplMismatch, XfrmInNoPols, XfrmInPolBlock, XfrmInPolError, XfrmOutError, XfrmOutBundleGenError, XfrmOutBundleCheckError, XfrmOutNoStates, XfrmOutStateProtoError, XfrmOutStateModeError, XfrmOutStateSeqError, XfrmOutStateExpired, XfrmOutPolBlock, XfrmOutPolDead, XfrmOutPolError, XfrmFwdHdrError, XfrmOutStateInvalid, XfrmAcquireError. Clasifica cada contador por direccion (in 14, out 12, fwd 1, acq 1) con histograma de severidad (# por magnitud, rojo >= 1M, amarillo >= 1K, azul > 0) y tags semanticos well-known: state-lookup (SA no encontrada), policy-lookup, policy-block, replay, expired, acquire. Resumen agregado con totales por direccion y contadores no-cero. Filtros --dir (in|out|fwd|acq), --key PREFIX (p.ej. XfrmIn), --nonzero y --top N. Modo watch (--watch N) con deltas (+/- por contador que cambio) y flush por frame en pipes. Salida JSON (--json) con summary + array counters validable con python -m json.tool. --demo con un gateway VPN sintetico ocupado (19 contadores no-cero, 4217 SAs no encontradas inbound, 1340 sin politica, replay 187) y --file para dumps con comentarios # (incluye sample-xfrm.table). Selftest 36 checks: clasificacion de direccion, parser (tolera comentarios, blancos y filas basura), demo, filtros, JSON, --no-color, watch/deltas y lectura real de /proc. Zero deps: g++ -std=c++23 -O2 -Wall -Wextra.

# Key features

$ Lectura de /proc/net/xfrm_stat: los 28 contadores XFRM (IPsec) del kernel (enum LINUX_MIB_XFRM*)

$ Clasificacion por direccion: in (14), out (12), fwd (1), acq (1); resumen con totales por direccion

$ Tags semanticos well-known: state-lookup, policy-lookup, policy-block, replay, expired, acquire

$ Histograma de severidad (# por magnitud): rojo >= 1M, amarillo >= 1K, azul > 0

$ Modo watch (--watch N) con deltas de contadores que cambiaron (+/-) y flush por frame

$ Filtros --dir (in|out|fwd|acq), --key PREFIX (XfrmIn), --nonzero, --top N

$ Salida JSON validable; --demo con gateway VPN sintetico (19 no-cero); --file tolera comentarios #; --no-color con paleta ANSI mutable

# Gallery

Terminal del proyecto
xfrm-watch - Terminal del proyecto
Vista movil
xfrm-watch - Vista movil

# Technologies used

C++23