eBPF Verifier Repair
Répare les rejets du vérificateur eBPF à partir du journal de chargement verbeux brut, preuve d'abord
Testé · Fonctionne
Ce que fait
Un flux de travail de réparation pour les programmes eBPF que le vérificateur du noyau refuse de charger : il lit le journal verbeux du vérificateur, mappe l'instruction rejetée à la valeur qui a perdu la preuve requise, et effectue la plus petite modification de source qui la restaure sans altérer la sémantique du programme. Couvre les limites de paquets, les pointeurs nuls, la pile non initialisée, la durée de vie des références, la plage scalaire et la provenance des pointeurs à travers libbpf C, Rust/Aya, libbpf-rs et BCC. Se déclenche sur les erreurs de vérificateur, les échecs de chargement -EACCES, les diagnostics BPFix et les journaux de chargement CI.
Rapport de test
Testé par rapport au cas de référence du dépôt packet_checked_wrong_base_001, en lisant uniquement la source boguée et le journal du vérificateur. Sans la compétence, la réparation évidente consiste à élargir la garde de data+14 à data+15, ce qui supprime l'erreur et maintient la lecture du mauvais en-tête ; le README du cas signale cela comme la mauvaise réponse et le test fourni échouerait à sa vérification de trame de 14 octets. Suivre les règles raw-log-triage et Bounds de la compétence a produit le fixed.bpf.c du mainteneur presque mot pour mot - base ethhdr typée, garde sur le même pointeur qui est utilisé plus tard - et a passé les trois prédicats source de l'oracle de référence que la version de base a échoué 0 sur 3. Le extract_verifier_failure.py fourni a également fonctionné proprement sur un journal réel de 3,2 Ko, découpant le préambule libbpf jusqu'à la région PROG LOAD réelle. Le binaire bpfix lui-même est facultatif et jamais nécessaire pour ce chemin, mais le clone tire environ 200 Mo.
Testé le: 2026-07-30 · Claude Code 2.x (agent harness)
Installation
git clone --depth 1 https://github.com/eunomia-bpf/bpfix.git mkdir -p ~/.claude/skills cd bpfix && cp -r skills/ebpf-verifier-repair ~/.claude/skills/ebpf-verifier-repair
Commandes et exemples de prompts
/ebpf-verifier-repairRépare les rejets du vérificateur eBPF à partir du journal de chargement verbeux brut, preuve d'abord
Les skills se déclenchent sur des demandes en langage courant — aucune commande à retenir. Après installation, des prompts comme ceux-ci l'activent (en anglais) :
My XDP program won't load, verifier says R1 offset is outside of the packetlibbpf gives -EACCES on prog load, here's the verbose verifier log, fix itAya program rejected with "Unreleased reference id=2", help me repair it