Expand description
Wrappers de la famille ebpf.
Cf. docs/specs/layer-0/family-ebpf.md. Couverture exhaustive des 37
sous-commandes de enum bpf_cmd (cible 6.12), chacune en fonction dédiée
typée (jamais de bpf(cmd, attr, size) générique, ADR-021 conv. 3), plus
perf_event_open et ses 12 ioctls dédiés.
On charge des programmes/BTF déjà assemblés ; on n’assemble ni ne
compile rien (logique → couche 1). RAII pour cartes/programmes/liens/BTF/
perf_event (Drop ferme le FD ; un BpfLink détache au Drop). EINTR remonté
tel quel. La plupart des opérations exigent CAP_BPF/CAP_PERFMON.
Structs§
- BpfLink
- Lien d’attache moderne (
bpf_link). Drop détache (ferme le FD). - BpfMap
- Carte eBPF (
BpfMap). Drop ferme le FD. - BpfProgram
- Programme eBPF chargé. Drop ferme le FD.
- Btf
- Objet BTF chargé. Drop ferme le FD.
- Perf
Event - Compteur/échantillonneur
perf_event. Drop ferme le FD.
Functions§
- bpf_
btf_ get_ fd_ by_ id BPF_BTF_GET_FD_BY_ID— FD d’un objet BTF par id.- bpf_
btf_ get_ next_ id BPF_BTF_GET_NEXT_ID— id de BTF suivant (None= fin).- bpf_
btf_ load BPF_BTF_LOAD— charge un blob BTF déjà formé.- bpf_
enable_ statistics BPF_ENABLE_STATS— active un type de statistiques (RAII : actif tant que le FD retourné est ouvert).- bpf_
iterator_ create BPF_ITER_CREATE— crée un itérateur depuis un lien d’itération.- bpf_
link_ create BPF_LINK_CREATE— crée un lien moderne (FD RAII, détache au Drop).- bpf_
link_ detach BPF_LINK_DETACH— détache le programme en gardant le lien.- bpf_
link_ get_ fd_ by_ id BPF_LINK_GET_FD_BY_ID— FD d’un lien par id.- bpf_
link_ get_ next_ id BPF_LINK_GET_NEXT_ID— id de lien suivant (None= fin).- bpf_
link_ update BPF_LINK_UPDATE— remplace à chaud le programme d’un lien.- bpf_
map_ create BPF_MAP_CREATE— crée une carte eBPF.- bpf_
map_ delete_ batch BPF_MAP_DELETE_BATCH— supprime un lot de clés. Retourne le nombre traité.- bpf_
map_ delete_ element BPF_MAP_DELETE_ELEM— supprime l’entréekey.- bpf_
map_ freeze BPF_MAP_FREEZE— rend la carte non modifiable depuis l’espace utilisateur.- bpf_
map_ get_ fd_ by_ id BPF_MAP_GET_FD_BY_ID— FD d’une carte par id.- bpf_
map_ get_ next_ id BPF_MAP_GET_NEXT_ID— id de carte suivant (None= fin).- bpf_
map_ get_ next_ key BPF_MAP_GET_NEXT_KEY— itère les clés.key = None⇒ première clé.- bpf_
map_ lookup_ and_ delete_ batch BPF_MAP_LOOKUP_AND_DELETE_BATCH— lit et retire un lot.- bpf_
map_ lookup_ and_ delete_ element BPF_MAP_LOOKUP_AND_DELETE_ELEM— lit puis retire (cartes Queue/Stack).- bpf_
map_ lookup_ batch BPF_MAP_LOOKUP_BATCH— lit un lot d’éléments. Retourne le nombre traité.- bpf_
map_ lookup_ element BPF_MAP_LOOKUP_ELEM— lit la valeur associée àkeydansvalue_out.- bpf_
map_ update_ batch BPF_MAP_UPDATE_BATCH— insère/remplace un lot. Retourne le nombre traité.- bpf_
map_ update_ element BPF_MAP_UPDATE_ELEM— insère ou remplace la paire(key, value).- bpf_
object_ get BPF_OBJ_GET— récupère un FD vers un objet épinglé.- bpf_
object_ get_ info_ by_ fd BPF_OBJ_GET_INFO_BY_FD— remplitinfo_out(octets écrits retournés).- bpf_
object_ pin BPF_OBJ_PIN— épingle un objet sous un cheminbpffs.- bpf_
program_ attach BPF_PROG_ATTACH— attache historique (cgroup, sk_skb, flow_dissector…).- bpf_
program_ bind_ map BPF_PROG_BIND_MAP— lie une carte à un programme (durée de vie).- bpf_
program_ detach BPF_PROG_DETACH— détache un programme historique.- bpf_
program_ get_ fd_ by_ id BPF_PROG_GET_FD_BY_ID— FD d’un programme par id (CAP_SYS_ADMIN).- bpf_
program_ get_ next_ id BPF_PROG_GET_NEXT_ID— id de programme suivant (None= fin).- bpf_
program_ load BPF_PROG_LOAD— charge un programme déjà assemblé.- bpf_
program_ query BPF_PROG_QUERY— liste les programmes attachés à une cible.- bpf_
program_ test_ run BPF_PROG_TEST_RUN— exécute le programme sur des données fournies.- bpf_
raw_ tracepoint_ open BPF_RAW_TRACEPOINT_OPEN— attache un programme à un tracepoint brut.- bpf_
task_ fd_ query BPF_TASK_FD_QUERY— interroge le programme derrière un fd perf/tracepoint.- bpf_
token_ create BPF_TOKEN_CREATE(Linux 6.9+) — jeton de délégation BPF depuis unbpffs.- perf_
event_ disable PERF_EVENT_IOC_DISABLE.- perf_
event_ enable PERF_EVENT_IOC_ENABLE.- perf_
event_ id PERF_EVENT_IOC_ID— identifiant unique de l’événement.- perf_
event_ modify_ attributes PERF_EVENT_IOC_MODIFY_ATTRIBUTES— modifie les attributs à chaud.- perf_
event_ open - Ouvre un compteur/échantillonneur de performance.
- perf_
event_ pause_ output PERF_EVENT_IOC_PAUSE_OUTPUT— met en pause/reprend l’anneau de sortie.- perf_
event_ query_ bpf PERF_EVENT_IOC_QUERY_BPF— liste les ids de programmes BPF attachés.- perf_
event_ refresh PERF_EVENT_IOC_REFRESH— réarme pourcountdébordements.- perf_
event_ reset PERF_EVENT_IOC_RESET.- perf_
event_ set_ bpf_ program PERF_EVENT_IOC_SET_BPF— attache un programme eBPF (LE PONT eBPF ↔ perf).- perf_
event_ set_ filter PERF_EVENT_IOC_SET_FILTER— pose un filtre (tracepoint).- perf_
event_ set_ output PERF_EVENT_IOC_SET_OUTPUT— redirige la sortie ;Nonedétache.- perf_
event_ set_ period PERF_EVENT_IOC_PERIOD— change la période d’échantillonnage.