From fc22b3d6507c6745911b9dfcc68f1e665ae13dbc Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Mon, 15 Apr 2024 21:43:11 +0200 Subject: Adding upstream version 4.22.0. Signed-off-by: Daniel Baumann --- po/fr/man2/bpf.2.po | 3069 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 3069 insertions(+) create mode 100644 po/fr/man2/bpf.2.po (limited to 'po/fr/man2/bpf.2.po') diff --git a/po/fr/man2/bpf.2.po b/po/fr/man2/bpf.2.po new file mode 100644 index 00000000..9ff854d4 --- /dev/null +++ b/po/fr/man2/bpf.2.po @@ -0,0 +1,3069 @@ +# French translation of manpages +# This file is distributed under the same license as the manpages-l10n package. +# Copyright © of this file: +# Christophe Blaess , 1996-2003. +# Stéphan Rafin , 2002. +# Thierry Vignaud , 1999,2002. +# François Micaux, 2002. +# Alain Portal , 2003-2008. +# Jean-Philippe Guérard , 2005-2006. +# Jean-Luc Coulon (f5ibh) , 2006-2007. +# Julien Cristau , 2006-2007. +# Thomas Huriaux , 2006-2008. +# Nicolas François , 2006-2008. +# Florentin Duneau , 2006-2010. +# Simon Paillard , 2006, 2013. +# Denis Barbier , 2006,2010. +# David Prévot , 2010, 2013, 2014. +# Cédric Boutillier , 2011, 2012, 2013. +# Frédéric Hantrais , 2013, 2014. +# Jean-Philippe MENGUAL , 2020-2023. +msgid "" +msgstr "" +"Project-Id-Version: manpages-l10n 4.21.0\n" +"POT-Creation-Date: 2024-03-01 16:53+0100\n" +"PO-Revision-Date: 2024-03-13 08:50+0100\n" +"Last-Translator: Jean-Philippe MENGUAL \n" +"Language-Team: French \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Lokalize 22.12.3\n" + +#. type: TH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "bpf" +msgstr "bpf" + +#. type: TH +#: archlinux fedora-40 fedora-rawhide mageia-cauldron +#, no-wrap +msgid "2023-11-01" +msgstr "1 novembre 2023" + +#. type: TH +#: archlinux fedora-40 fedora-rawhide mageia-cauldron +#, no-wrap +msgid "Linux man-pages 6.06" +msgstr "Pages du manuel de Linux 6.06" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "NAME" +msgstr "NOM" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "bpf - perform a command on an extended BPF map or program" +msgstr "bpf - Lancer une commande sur une mappe ou un programme BPF" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "SYNOPSIS" +msgstr "SYNOPSIS" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<#include Elinux/bpf.hE>\n" +msgstr "B<#include Elinux/bpf.hE>\n" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "BIB<, union bpf_attr *>IB<, unsigned int >IB<);>\n" +msgstr "BIB<, union bpf_attr *>IB<, unsigned int >IB<);>\n" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "DESCRIPTION" +msgstr "DESCRIPTION" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The B() system call performs a range of operations related to extended " +"Berkeley Packet Filters. Extended BPF (or eBPF) is similar to the original " +"(\"classic\") BPF (cBPF) used to filter network packets. For both cBPF and " +"eBPF programs, the kernel statically analyzes the programs before loading " +"them, in order to ensure that they cannot harm the running system." +msgstr "" +"L'appel système B() effectue une série d'opérations liées aux Berkeley " +"Packet Filters étendus (« filtres de paquets Berkeley »). BPF étendu (ou " +"eBPF) est identique au BPF « classique » originel (cBPF) utilisé pour " +"filtrer les paquets réseau. Pour les programmes tant cBPF qu’eBPF, le noyau " +"analyse de manière statique les programmes avant de les charger, afin de " +"garantir qu'ils ne puissent pas mettre en danger le système en cours " +"d’exécution." + +#. See 'enum bpf_func_id' in include/uapi/linux/bpf.h +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"eBPF extends cBPF in multiple ways, including the ability to call a fixed " +"set of in-kernel helper functions (via the B opcode extension " +"provided by eBPF) and access shared data structures such as eBPF maps." +msgstr "" +"eBPF étend cBPF de plusieurs manières, notamment par la possibilité " +"d'appeler un ensemble fixé de fonctions d'aide du noyau (à l’aide de " +"l'extension d’opcode B fournie par eBPF) et d'accéder aux " +"structures de données partagées telles que les mappes eBPF." + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "Extended BPF Design/Architecture" +msgstr "Conception/architecture de BPF étendu" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"eBPF maps are a generic data structure for storage of different data types. " +"Data types are generally treated as binary blobs, so a user just specifies " +"the size of the key and the size of the value at map-creation time. In " +"other words, a key/value for a given map can have an arbitrary structure." +msgstr "" +"Les mappes eBPF sont des structures de données génériques pour stocker " +"différents types de données. Les types de données sont généralement traités " +"comme des blobs binaires, donc l'utilisateur indique seulement la taille de " +"la clé et celle de la valeur au moment de la création de la mappe. En " +"d'autres termes, la clé/valeur d'une mappe donnée peut avoir une structure " +"arbitraire." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"A user process can create multiple maps (with key/value-pairs being opaque " +"bytes of data) and access them via file descriptors. Different eBPF " +"programs can access the same maps in parallel. It's up to the user process " +"and eBPF program to decide what they store inside maps." +msgstr "" +"Un processus utilisateur peut créer plusieurs mappes (dont les paires clé/" +"valeur sont des octets de données opaques) et y accéder par les descripteurs " +"de fichier. Différents programmes eBPF peuvent accéder aux mêmes mappes en " +"parallèle. Il appartient au processus utilisateur et au programme eBPF de " +"décider ce qu'ils stockent dans leurs mappes." + +#. Defined by the kernel constant MAX_TAIL_CALL_CNT in include/linux/bpf.h +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"There's one special map type, called a program array. This type of map " +"stores file descriptors referring to other eBPF programs. When a lookup in " +"the map is performed, the program flow is redirected in-place to the " +"beginning of another eBPF program and does not return back to the calling " +"program. The level of nesting has a fixed limit of 32, so that infinite " +"loops cannot be crafted. At run time, the program file descriptors stored " +"in the map can be modified, so program functionality can be altered based on " +"specific requirements. All programs referred to in a program-array map must " +"have been previously loaded into the kernel via B(). If a map lookup " +"fails, the current program continues its execution. See " +"B below for further details." +msgstr "" +"Il existe un type de mappe spécial appelé un tableau de programmes " +"(« program array »). Ce type de mappe stocke des descripteurs de fichiers " +"qui renvoient à d'autres programmes eBPF. Quand une recherche est effectuée " +"sur la mappe, le flux du programme est redirigé directement au début d'un " +"autre programme eBPF et il ne renvoie rien au programme appelant. Le niveau " +"de redirections est de 32 pour éviter de créer des boucles infinies. Au " +"moment de l'exécution, les descripteurs de fichier du programme stockés dans " +"la mappe peuvent être modifiés, donc la fonctionnalité de programme peut " +"être modifiée sur la base d'exigences spécifiques. Tous les programmes " +"auxquels renvoie une mappe tableau de programmes (program-array) doivent " +"avoir été précédemment chargés dans le noyau avec B(). Si une recherche " +"de mappe échoue, le programme en cours poursuit son exécution. Voir " +"B ci-dessous pour des détails." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Generally, eBPF programs are loaded by the user process and automatically " +"unloaded when the process exits. In some cases, for example, B(8), " +"the program will continue to stay alive inside the kernel even after the " +"process that loaded the program exits. In that case, the tc subsystem holds " +"a reference to the eBPF program after the file descriptor has been closed by " +"the user-space program. Thus, whether a specific program continues to live " +"inside the kernel depends on how it is further attached to a given kernel " +"subsystem after it was loaded via B()." +msgstr "" +"Généralement, les programmes eBPF sont chargés par le processus de " +"l'utilisateur et déchargés automatiquement quand le processus se termine. " +"Dans certains cas, par exemple B(8), le programme restera en vie " +"dans le noyau même après que le processus qui l'a chargé est fini. Dans ce " +"cas, le sous-système B garde une référence au programme eBPF après que " +"le descripteur de fichier est fermé par le programme de l'espace " +"utilisateur. Ainsi, la survie d'un programme spécifique dans le noyau dépend " +"de la manière dont il a été rattaché à un sous-système donné du noyau après " +"qu'il a été chargé par B()." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Each eBPF program is a set of instructions that is safe to run until its " +"completion. An in-kernel verifier statically determines that the eBPF " +"program terminates and is safe to execute. During verification, the kernel " +"increments reference counts for each of the maps that the eBPF program uses, " +"so that the attached maps can't be removed until the program is unloaded." +msgstr "" +"Chaque programme eBPF est un ensemble d'instructions qu'on peut exécuter en " +"sécurité jusqu'à leur fin. Un vérificateur interne au noyau détermine de " +"manière statique ce que le programme eBPF interrompt et s'il peut être " +"exécuté en toute sécurité. Pendant la vérification, le noyau ajoute un " +"numéro de référence de manière incrémentale pour chacune des mappes " +"utilisées par le programme eBPF, si bien que les mappes qui y sont " +"rattachées ne peuvent pas être supprimées avant que le programme soit " +"déchargé." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"eBPF programs can be attached to different events. These events can be the " +"arrival of network packets, tracing events, classification events by network " +"queueing disciplines (for eBPF programs attached to a B(8) classifier), " +"and other types that may be added in the future. A new event triggers " +"execution of the eBPF program, which may store information about the event " +"in eBPF maps. Beyond storing data, eBPF programs may call a fixed set of in-" +"kernel helper functions." +msgstr "" +"Les programmes eBPF peuvent être rattachés à différents événements. Ces " +"événements peuvent être l'arrivée de paquets réseaux, le traçage " +"d'événements, la classification d'événements en disciplines de files " +"d'attente réseau (pour les programmes eBPF rattachés à un classificateur " +"B(8)), et d'autres types qui pourront être ajoutés dans le futur. Un " +"nouvel événement provoque l'exécution d'un programme eBPF, qui peut stocker " +"des informations sur l’évènement dans des mappes eBPF. Par-delà les données " +"stockées, les programmes eBPF peuvent appeler un ensemble fixé de fonctions " +"d'aide internes au noyau." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The same eBPF program can be attached to multiple events and different eBPF " +"programs can access the same map:" +msgstr "" +"Un même programme eBPF peut être rattaché à plusieurs événements (évt) et " +"divers programmes eBPF peuvent accéder à la même mappe :" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "" +"tracing tracing tracing packet packet packet\n" +"event A event B event C on eth0 on eth1 on eth2\n" +" | | | | | \\[ha]\n" +" | | | | v |\n" +" --E tracing E-- tracing socket tc ingress tc egress\n" +" prog_1 prog_2 prog_3 classifier action\n" +" | | | | prog_4 prog_5\n" +" |--- -----| |------| map_3 | |\n" +" map_1 map_2 --| map_4 |--\n" +msgstr "" +"traçage traçage traçage paquet paquet paquet\n" +" évt A évt B évt C sur eth0 sur eth1 sur eth2\n" +" | | | | | \\[ha]\n" +" | | | | v |\n" +" --E traçage E-- traçage socket tc ingress tc egress\n" +" prog_1 prog_2 prog_3 classifieur action\n" +" | | | | prog_4 prog_5\n" +" |--- -----| |------| mappe_3 | |\n" +" mappe_1 mappe_2 --| mappe_4 |--\n" + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "Arguments" +msgstr "Arguments" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The operation to be performed by the B() system call is determined by " +"the I argument. Each operation takes an accompanying argument, " +"provided via I, which is a pointer to a union of type I (see " +"below). The unused fields and padding must be zeroed out before the call. " +"The I argument is the size of the union pointed to by I." +msgstr "" +"L'opération à effectuer par l'appel système B() est déterminée par le " +"paramètre I. Chaque opération prend un paramètre, fourni par I, " +"qui est un pointeur vers une union de type I (voir ci-dessous). " +"Les champs inutilisés et de remplissage doivent être mis à zéro avant " +"l'appel. Le paramètre I est la taille de l'union vers laquelle pointe " +"I." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "The value provided in I is one of the following:" +msgstr "La valeur fournie dans I est une parmi :" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B" +msgstr "B" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Create a map and return a file descriptor that refers to the map. The close-" +"on-exec file descriptor flag (see B(2)) is automatically enabled for " +"the new file descriptor." +msgstr "" +"Créer une mappe et renvoyer un descripteur de fichier qui s'y rapporte. Le " +"drapeau de descripteur de fichier I (voir B(2)) est " +"automatiquement activé pour le nouveau descripteur de fichier." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B" +msgstr "B" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Look up an element by key in a specified map and return its value." +msgstr "" +"Chercher un élément par clé dans une mappe spécifiée et renvoyer sa valeur." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B" +msgstr "B" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Create or update an element (key/value pair) in a specified map." +msgstr "" +"Créer ou mettre à jour un élément (paire clé/valeur) dans une mappe " +"spécifiée." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B" +msgstr "B" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Look up and delete an element by key in a specified map." +msgstr "Chercher et effacer un élément par clé dans une mappe spécifiée." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B" +msgstr "B" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Look up an element by key in a specified map and return the key of the next " +"element." +msgstr "" +"Chercher un élément par clé dans une mappe spécifiée et renvoyer la clé de " +"l'élément suivant." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B" +msgstr "B" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Verify and load an eBPF program, returning a new file descriptor associated " +"with the program. The close-on-exec file descriptor flag (see B(2)) " +"is automatically enabled for the new file descriptor." +msgstr "" +"Vérifier et charger un programme eBPF, en renvoyant un nouveau descripteur " +"de fichier associé au programme. Le drapeau de descripteur de fichier " +"I (voir B(2)) est activé automatiquement pour le " +"nouveau descripteur de fichier." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The I union consists of various anonymous structures that are used " +"by different B() commands:" +msgstr "" +"L'union I consiste dans diverses structures anonymes utilisées par " +"différentes commandes B() :" + +#. commit 2541517c32be2531e0da59dfd7efc1ce844644f5 +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-tumbleweed +#, no-wrap +msgid "" +"union bpf_attr {\n" +" struct { /* Used by BPF_MAP_CREATE */\n" +" __u32 map_type;\n" +" __u32 key_size; /* size of key in bytes */\n" +" __u32 value_size; /* size of value in bytes */\n" +" __u32 max_entries; /* maximum number of entries\n" +" in a map */\n" +" };\n" +"\\&\n" +" struct { /* Used by BPF_MAP_*_ELEM and BPF_MAP_GET_NEXT_KEY\n" +" commands */\n" +" __u32 map_fd;\n" +" __aligned_u64 key;\n" +" union {\n" +" __aligned_u64 value;\n" +" __aligned_u64 next_key;\n" +" };\n" +" __u64 flags;\n" +" };\n" +"\\&\n" +" struct { /* Used by BPF_PROG_LOAD */\n" +" __u32 prog_type;\n" +" __u32 insn_cnt;\n" +" __aligned_u64 insns; /* \\[aq]const struct bpf_insn *\\[aq] */\n" +" __aligned_u64 license; /* \\[aq]const char *\\[aq] */\n" +" __u32 log_level; /* verbosity level of verifier */\n" +" __u32 log_size; /* size of user buffer */\n" +" __aligned_u64 log_buf; /* user supplied \\[aq]char *\\[aq]\n" +" buffer */\n" +" __u32 kern_version;\n" +" /* checked when prog_type=kprobe\n" +" (since Linux 4.1) */\n" +" };\n" +"} __attribute__((aligned(8)));\n" +msgstr "" +"union bpf_attr {\n" +" struct { /* Utilisé par BPF_MAP_CREATE */\n" +" __u32 map_type;\n" +" __u32 key_size; /* taille de la clé en octets */\n" +" __u32 value_size; /* taille de la valeur en octets */\n" +" __u32 max_entries; /* nombre maximal d'entrées\n" +" dans une mappe */\n" +" };\n" +"\\&\n" +" struct { /* Utilisé par les commandes BPF_MAP_*_ELEM et\n" +" BPF_MAP_GET_NEXT_KEY */\n" +" __u32 map_fd;\n" +" __aligned_u64 key;\n" +" union {\n" +" __aligned_u64 value;\n" +" __aligned_u64 next_key;\n" +" };\n" +" __u64 flags;\n" +" };\n" +"\\&\n" +" struct { /* Utilisé par BPF_PROG_LOAD */\n" +" __u32 prog_type;\n" +" __u32 insn_cnt;\n" +" __aligned_u64 insns; /* \\[aq]const struct bpf_insn *\\[aq] */\n" +" __aligned_u64 license; /* \\[aq]const char *\\[aq] */\n" +" __u32 log_level; /* niveau de bavardage du vérificateur */\n" +" __u32 log_size; /* taille du tampon utilisateur */\n" +" __aligned_u64 log_buf; /* l'utilisateur a fourni \\[aq]char *\\[aq]\n" +" de tampon */\n" +" __u32 kern_version;\n" +" /* vérifier quand prog_type=kprobe\n" +" (depuis Linux 4.1) */\n" +" };\n" +"} __attribute__((aligned(8)));\n" + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "eBPF maps" +msgstr "mappes eBPF" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Maps are a generic data structure for storage of different types of data. " +"They allow sharing of data between eBPF kernel programs, and also between " +"kernel and user-space applications." +msgstr "" +"Les mappes sont des structures de données génériques pour stocker différents " +"types de données. Elles permettent de partager des données entre des " +"programmes eBPF du noyau, mais aussi entre les applications du noyau et de " +"l'espace utilisateur." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Each map type has the following attributes:" +msgstr "Chaque type de mappe a les attributs suivants :" + +#. type: IP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "\\[bu]" +msgstr "-" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "type" +msgstr "type" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "maximum number of elements" +msgstr "nombre maximal d'éléments" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "key size in bytes" +msgstr "taille de la clé en octets" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "value size in bytes" +msgstr "valeur de la clé en octets" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The following wrapper functions demonstrate how various B() commands " +"can be used to access the maps. The functions use the I argument to " +"invoke different operations." +msgstr "" +"Les fonctions enveloppe suivantes montrent la manière dont diverses " +"commandes B() peuvent être utilisées pour accéder aux mappes. Les " +"fonctions utilisent le paramètre I pour appeler différentes opérations." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The B command creates a new map, returning a new file " +"descriptor that refers to the map." +msgstr "" +"La commande B crée une nouvelle mappe, renvoyant un nouveau " +"descripteur de fichier qui s'y rapporte." + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-tumbleweed +#, no-wrap +msgid "" +"int\n" +"bpf_create_map(enum bpf_map_type map_type,\n" +" unsigned int key_size,\n" +" unsigned int value_size,\n" +" unsigned int max_entries)\n" +"{\n" +" union bpf_attr attr = {\n" +" .map_type = map_type,\n" +" .key_size = key_size,\n" +" .value_size = value_size,\n" +" .max_entries = max_entries\n" +" };\n" +"\\&\n" +" return bpf(BPF_MAP_CREATE, &attr, sizeof(attr));\n" +"}\n" +msgstr "" +"int\n" +"bpf_create_map(enum bpf_map_type map_type,\n" +" unsigned int key_size,\n" +" unsigned int value_size,\n" +" unsigned int max_entries)\n" +"{\n" +" union bpf_attr attr = {\n" +" .map_type = map_type,\n" +" .key_size = key_size,\n" +" .value_size = value_size,\n" +" .max_entries = max_entries\n" +" };\n" +"\\&\n" +" return bpf(BPF_MAP_CREATE, &attr, sizeof(attr));\n" +"}\n" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The new map has the type specified by I, and attributes as " +"specified in I, I, and I. On success, " +"this operation returns a file descriptor. On error, -1 is returned and " +"I is set to B, B, or B." +msgstr "" +"La nouvelle mappe possède le type indiqué avec I et les attributs " +"indiqués dans I, I et I. En cas de " +"succès, cette opération renvoie un descripteur de fichier. En cas d'erreur, " +"B<-1> est renvoyé et I est positionné sur B, B ou " +"B." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The I and I attributes will be used by the verifier " +"during program loading to check that the program is calling " +"B() helper functions with a correctly initialized I " +"and to check that the program doesn't access the map element I beyond " +"the specified I. For example, when a map is created with a " +"I of 8 and the eBPF program calls" +msgstr "" +"Les attributs I et I seront utilisés par le " +"vérificateur lors du chargement du programme pour vérifier que le programme " +"appelle les fonctions d'aide B() avec une I " +"correctement initialisée et pour vérifier que le programme n'accède pas à " +"une I de l'élément de la mappe au-delà de la I indiquée. " +"Par exemple, quand une mappe est créée avec I de B<8> et que le " +"programme eBPF appelle un" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "bpf_map_lookup_elem(map_fd, fp - 4)\n" +msgstr "bpf_map_lookup_elem(map_fd, fp - 4)\n" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "the program will be rejected, since the in-kernel helper function" +msgstr "le programme sera rejeté, puisque la fonction d'aide du noyau" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "bpf_map_lookup_elem(map_fd, void *key)\n" +msgstr "bpf_map_lookup_elem(map_fd, void *key)\n" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"expects to read 8 bytes from the location pointed to by I, but the " +"I (where I is the top of the stack) starting address will " +"cause out-of-bounds stack access." +msgstr "" +"s'attend à lire 8 octets à l'endroit où pointe I, mais l'adresse de " +"départ I (où I est le haut de la pile) crée un accès de la " +"pile hors limites." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Similarly, when a map is created with a I of 1 and the eBPF " +"program contains" +msgstr "" +"De même, lorsqu'une mappe est créée avec une I de B<1> et que le " +"programme eBPF contient" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "" +"value = bpf_map_lookup_elem(...);\n" +"*(u32 *) value = 1;\n" +msgstr "" +"value = bpf_map_lookup_elem(...);\n" +"*(u32 *) value = 1;\n" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"the program will be rejected, since it accesses the I pointer beyond " +"the specified 1 byte I limit." +msgstr "" +"le programme sera rejeté puisqu'il accède au pointeur I au-delà de la " +"la limite I d’un octet spécifiée." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Currently, the following values are supported for I:" +msgstr "" +"Actuellement, les valeurs suivantes sont prises en charge par I :" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "" +"enum bpf_map_type {\n" +" BPF_MAP_TYPE_UNSPEC, /* Reserve 0 as invalid map type */\n" +" BPF_MAP_TYPE_HASH,\n" +" BPF_MAP_TYPE_ARRAY,\n" +" BPF_MAP_TYPE_PROG_ARRAY,\n" +" BPF_MAP_TYPE_PERF_EVENT_ARRAY,\n" +" BPF_MAP_TYPE_PERCPU_HASH,\n" +" BPF_MAP_TYPE_PERCPU_ARRAY,\n" +" BPF_MAP_TYPE_STACK_TRACE,\n" +" BPF_MAP_TYPE_CGROUP_ARRAY,\n" +" BPF_MAP_TYPE_LRU_HASH,\n" +" BPF_MAP_TYPE_LRU_PERCPU_HASH,\n" +" BPF_MAP_TYPE_LPM_TRIE,\n" +" BPF_MAP_TYPE_ARRAY_OF_MAPS,\n" +" BPF_MAP_TYPE_HASH_OF_MAPS,\n" +" BPF_MAP_TYPE_DEVMAP,\n" +" BPF_MAP_TYPE_SOCKMAP,\n" +" BPF_MAP_TYPE_CPUMAP,\n" +" BPF_MAP_TYPE_XSKMAP,\n" +" BPF_MAP_TYPE_SOCKHASH,\n" +" BPF_MAP_TYPE_CGROUP_STORAGE,\n" +" BPF_MAP_TYPE_REUSEPORT_SOCKARRAY,\n" +" BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE,\n" +" BPF_MAP_TYPE_QUEUE,\n" +" BPF_MAP_TYPE_STACK,\n" +" /* See /usr/include/linux/bpf.h for the full list. */\n" +"};\n" +msgstr "" +"enum bpf_map_type {\n" +" BPF_MAP_TYPE_UNSPEC, /* Réserver 0 comme type de mappe non valable */\n" +" BPF_MAP_TYPE_HASH,\n" +" BPF_MAP_TYPE_ARRAY,\n" +" BPF_MAP_TYPE_PROG_ARRAY,\n" +" BPF_MAP_TYPE_PERF_EVENT_ARRAY,\n" +" BPF_MAP_TYPE_PERCPU_HASH,\n" +" BPF_MAP_TYPE_PERCPU_ARRAY,\n" +" BPF_MAP_TYPE_STACK_TRACE,\n" +" BPF_MAP_TYPE_CGROUP_ARRAY,\n" +" BPF_MAP_TYPE_LRU_HASH,\n" +" BPF_MAP_TYPE_LRU_PERCPU_HASH,\n" +" BPF_MAP_TYPE_LPM_TRIE,\n" +" BPF_MAP_TYPE_ARRAY_OF_MAPS,\n" +" BPF_MAP_TYPE_HASH_OF_MAPS,\n" +" BPF_MAP_TYPE_DEVMAP,\n" +" BPF_MAP_TYPE_SOCKMAP,\n" +" BPF_MAP_TYPE_CPUMAP,\n" +" BPF_MAP_TYPE_XSKMAP,\n" +" BPF_MAP_TYPE_SOCKHASH,\n" +" BPF_MAP_TYPE_CGROUP_STORAGE,\n" +" BPF_MAP_TYPE_REUSEPORT_SOCKARRAY,\n" +" BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE,\n" +" BPF_MAP_TYPE_QUEUE,\n" +" BPF_MAP_TYPE_STACK,\n" +" /* Voir /usr/include/linux/bpf.h pour la liste complète. */\n" +"};\n" + +#. FIXME We need an explanation of why one might choose each of +#. these map implementations +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"I selects one of the available map implementations in the kernel. " +"For all map types, eBPF programs access maps with the same " +"B() and B() helper functions. " +"Further details of the various map types are given below." +msgstr "" +"I sélectionne une des implémentations de mappe disponibles dans le " +"noyau. Pour tous les types de mappe, les programmes eBPF accèdent aux mappes " +"avec les mêmes fonctions d'aide B() et " +"B(). Vous trouverez ci-dessous plus de détails sur les " +"différents types de mappes." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The B command looks up an element with a given I " +"in the map referred to by the file descriptor I." +msgstr "" +"La commande B cherche un élément avec une I donnée " +"dans la mappe à laquelle se rapporte le descripteur de fichier I." + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-tumbleweed +#, no-wrap +msgid "" +"int\n" +"bpf_lookup_elem(int fd, const void *key, void *value)\n" +"{\n" +" union bpf_attr attr = {\n" +" .map_fd = fd,\n" +" .key = ptr_to_u64(key),\n" +" .value = ptr_to_u64(value),\n" +" };\n" +"\\&\n" +" return bpf(BPF_MAP_LOOKUP_ELEM, &attr, sizeof(attr));\n" +"}\n" +msgstr "" +"int\n" +"bpf_lookup_elem(int fd, const void *key, void *value)\n" +"{\n" +" union bpf_attr attr = {\n" +" .map_fd = fd,\n" +" .key = ptr_to_u64(key),\n" +" .value = ptr_to_u64(value),\n" +" };\n" +"\\&\n" +" return bpf(BPF_MAP_LOOKUP_ELEM, &attr, sizeof(attr));\n" +"}\n" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If an element is found, the operation returns zero and stores the element's " +"value into I, which must point to a buffer of I bytes." +msgstr "" +"Si un élément est trouvé, l'opération renvoie zéro et stocke la valeur de " +"l'élément dans I, qui doit pointer vers un tampon de I " +"octets." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If no element is found, the operation returns -1 and sets I to " +"B." +msgstr "" +"Si aucun élément n'est trouvé, l'opération renvoie B<-1> et I est " +"positionné sur B." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The B command creates or updates an element with a " +"given I in the map referred to by the file descriptor I." +msgstr "" +"La commande B crée ou met à jour un élément avec une " +"I donnée dans la mappe à laquelle se rapporte le descripteur de " +"fichier I." + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-tumbleweed +#, no-wrap +msgid "" +"int\n" +"bpf_update_elem(int fd, const void *key, const void *value,\n" +" uint64_t flags)\n" +"{\n" +" union bpf_attr attr = {\n" +" .map_fd = fd,\n" +" .key = ptr_to_u64(key),\n" +" .value = ptr_to_u64(value),\n" +" .flags = flags,\n" +" };\n" +"\\&\n" +" return bpf(BPF_MAP_UPDATE_ELEM, &attr, sizeof(attr));\n" +"}\n" +msgstr "" +"int\n" +"bpf_update_elem(int fd, const void *key, const void *value,\n" +" uint64_t flags)\n" +"{\n" +" union bpf_attr attr = {\n" +" .map_fd = fd,\n" +" .key = ptr_to_u64(key),\n" +" .value = ptr_to_u64(value),\n" +" .flags = flags,\n" +" };\n" +"\\&\n" +" return bpf(BPF_MAP_UPDATE_ELEM, &attr, sizeof(attr));\n" +"}\n" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "The I argument should be specified as one of the following:" +msgstr "" +"Le paramètre I devrait être formé d'une des manières suivantes :" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B" +msgstr "B" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Create a new element or update an existing element." +msgstr "Créer un nouvel élément ou mettre à jour un élément existant." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B" +msgstr "B" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Create a new element only if it did not exist." +msgstr "Créer un nouvel élément seulement s'il n'existe pas." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B" +msgstr "B" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Update an existing element." +msgstr "Mettre à jour un élément existant." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"On success, the operation returns zero. On error, -1 is returned and " +"I is set to B, B, B, or B. B " +"indicates that the number of elements in the map reached the I " +"limit specified at map creation time. B will be returned if " +"I specifies B and the element with I already exists " +"in the map. B will be returned if I specifies B " +"and the element with I doesn't exist in the map." +msgstr "" +"En cas de succès, l'opération renvoie zéro. En cas d'erreur, B<-1> est " +"renvoyé et I est positionné sur B, B, B ou " +"B. B indique que le nombre d'éléments de la mappe a atteint " +"la limite I spécifiée au moment de la création de la mappe. " +"B sera renvoyé si I spécifie B et si l'élément " +"contenant I existe déjà sur la mappe. B sera renvoyé si " +"I spécifie B et si l'élément contenant I n'existe pas " +"sur la mappe." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The B command deletes the element whose key is I " +"from the map referred to by the file descriptor I." +msgstr "" +"La commande B efface l'élément dont la clé est I " +"sur la mappe à laquelle se rapporte le descripteur de fichier I." + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-tumbleweed +#, no-wrap +msgid "" +"int\n" +"bpf_delete_elem(int fd, const void *key)\n" +"{\n" +" union bpf_attr attr = {\n" +" .map_fd = fd,\n" +" .key = ptr_to_u64(key),\n" +" };\n" +"\\&\n" +" return bpf(BPF_MAP_DELETE_ELEM, &attr, sizeof(attr));\n" +"}\n" +msgstr "" +"int\n" +"bpf_delete_elem(int fd, const void *key)\n" +"{\n" +" union bpf_attr attr = {\n" +" .map_fd = fd,\n" +" .key = ptr_to_u64(key),\n" +" };\n" +"\\&\n" +" return bpf(BPF_MAP_DELETE_ELEM, &attr, sizeof(attr));\n" +"}\n" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"On success, zero is returned. If the element is not found, -1 is returned " +"and I is set to B." +msgstr "" +"S'il réussit, cet appel système renvoie B<0>. Si l'élément n'est pas trouvé, " +"B<-1> est renvoyé et I est positionné sur B." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The B command looks up an element by I in the map " +"referred to by the file descriptor I and sets the I pointer to " +"the key of the next element." +msgstr "" +"La commande B recherche un élément par I sur la " +"mappe à laquelle se réfère le descripteur de fichier I et elle définit " +"le pointeur I vers la clé du prochain élément." + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-tumbleweed +#, no-wrap +msgid "" +"int\n" +"bpf_get_next_key(int fd, const void *key, void *next_key)\n" +"{\n" +" union bpf_attr attr = {\n" +" .map_fd = fd,\n" +" .key = ptr_to_u64(key),\n" +" .next_key = ptr_to_u64(next_key),\n" +" };\n" +"\\&\n" +" return bpf(BPF_MAP_GET_NEXT_KEY, &attr, sizeof(attr));\n" +"}\n" +msgstr "" +"int\n" +"bpf_get_next_key(int fd, const void *key, void *next_key)\n" +"{\n" +" union bpf_attr attr = {\n" +" .map_fd = fd,\n" +" .key = ptr_to_u64(key),\n" +" .next_key = ptr_to_u64(next_key),\n" +" };\n" +"\\&\n" +" return bpf(BPF_MAP_GET_NEXT_KEY, &attr, sizeof(attr));\n" +"}\n" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If I is found, the operation returns zero and sets the I " +"pointer to the key of the next element. If I is not found, the " +"operation returns zero and sets the I pointer to the key of the " +"first element. If I is the last element, -1 is returned and I " +"is set to B. Other possible I values are B, " +"B, B, and B. This method can be used to iterate over " +"all elements in the map." +msgstr "" +"Si I est trouvée, l'opération renvoie zéro et I pointe vers " +"la clé de l'élément suivant. Si I n'est pas trouvée, l'opération " +"renvoie zéro et I pointe vers la clé du premier élément. Si I " +"est le dernier élément, B<-1> est renvoyé et I est positionné sur " +"B. Les autres valeurs possibles de I sont B, " +"B, B et B. Cette méthode peut être utilisée pour " +"itérer entre tous les éléments d'une mappe." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B" +msgstr "B" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Delete the map referred to by the file descriptor I. When the user-" +"space program that created a map exits, all maps will be deleted " +"automatically (but see NOTES)." +msgstr "" +"Effacer la mappe à laquelle se réfère le descripteur de fichier I. " +"Quand le programme de l'espace utilisateur ayant créé la mappe se termine, " +"toutes les mappes sont effacées automatiquement (mais voir REMARQUES)." + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "eBPF map types" +msgstr "Types de mappe eBPF" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "The following map types are supported:" +msgstr "Les types de mappe suivants sont pris en charge :" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B" +msgstr "B" + +#. commit 0f8e4bd8a1fc8c4185f1630061d0a1f2d197a475 +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Hash-table maps have the following characteristics:" +msgstr "" +"Les mappes table de hachage (hash-table) présentent les caractéristiques " +"suivantes :" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Maps are created and destroyed by user-space programs. Both user-space and " +"eBPF programs can perform lookup, update, and delete operations." +msgstr "" +"Les mappes sont créées et détruites par les programmes dans l'espace " +"utilisateur. Tant les programmes eBPF que ceux de l'espace utilisateur " +"peuvent effectuer des opérations de recherche, de mise à jour et " +"d'effacement." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "The kernel takes care of allocating and freeing key/value pairs." +msgstr "Le noyau se charge d'allouer et de libérer les paires clé/valeur." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The B() helper will fail to insert new element when the " +"I limit is reached. (This ensures that eBPF programs cannot " +"exhaust memory.)" +msgstr "" +"L'aide B() échouera si vous insérez un nouvel élément quand " +"la limite I est atteinte (cela garantit que les programmes eBPF " +"ne peuvent pas épuiser la mémoire)." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "B() replaces existing elements atomically." +msgstr "B() remplace atomiquement les éléments existants." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Hash-table maps are optimized for speed of lookup." +msgstr "" +"Les mappes table de hachage (hash-table) sont optimisées pour accélérer la " +"recherche." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B" +msgstr "B" + +#. commit 28fbcfa08d8ed7c5a50d41a0433aad222835e8e3 +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Array maps have the following characteristics:" +msgstr "Les mappes tableau (array) présentent les caractéristiques suivantes :" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Optimized for fastest possible lookup. In the future the verifier/JIT " +"compiler may recognize lookup() operations that employ a constant key and " +"optimize it into constant pointer. It is possible to optimize a non-" +"constant key into direct pointer arithmetic as well, since pointers and " +"I are constant for the life of the eBPF program. In other " +"words, B() may be 'inlined' by the verifier/JIT " +"compiler while preserving concurrent access to this map from user space." +msgstr "" +"Elles sont optimisées pour une recherche plus rapide. À l'avenir, le " +"compilateur du vérificateur/JIT pourrait reconnaître les opérations " +"B() qui utilisent une clé constante et l'optimiser dans un pointeur " +"constant. Il est également possible d'optimiser une clé non constante dans " +"un pointeur arithmétique direct, car les pointeurs et les I sont " +"constants durant toute la vie des programmes eBPF. En d'autres termes, " +"B() peut être mise « inline » par le compilateur du " +"vérificateur/JIT tout en préservant l'accès concurrent à cette mappe à " +"partir de l'espace utilisateur." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "All array elements pre-allocated and zero initialized at init time" +msgstr "" +"Tous les éléments du tableau sont préalloués et initialisés à zéro au moment " +"de l'initialisation" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "The key is an array index, and must be exactly four bytes." +msgstr "" +"La clé est un indice de tableau et doit être exactement de quatre octets." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"B() fails with the error B, since elements cannot " +"be deleted." +msgstr "" +"B() échoue avec l'erreur B, car les éléments ne " +"peuvent pas être effacés." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"B() replaces elements in a B fashion; for " +"atomic updates, a hash-table map should be used instead. There is however " +"one special case that can also be used with arrays: the atomic built-in " +"B<__sync_fetch_and_add()> can be used on 32 and 64 bit atomic counters. For " +"example, it can be applied on the whole value itself if it represents a " +"single counter, or in case of a structure containing multiple counters, it " +"could be used on individual counters. This is quite often useful for " +"aggregation and accounting of events." +msgstr "" +"B() remplace les éléments de manière B ; pour " +"des mises à jour atomiques, vous devriez plutôt utiliser une mappe table de " +"hachage (hash-table). Toutefois, il existe un cas particulier qui peut aussi " +"être utilisé avec les tableaux : le B<__sync_fetch_and_add()> interne " +"atomique peut être utilisé sur des compteurs atomiques en 32 ou 64 bits. Par " +"exemple, il peut s'appliquer sur la valeur entière si elle représente un " +"compteur unique ou, si une structure contient plusieurs compteurs, il " +"pourrait être utilisé sur des compteurs individuels. Cela est très souvent " +"utile pour agréger et compter des événements." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Among the uses for array maps are the following:" +msgstr "Voici quelques cas d'usage des mappes tableau (array) :" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"As \"global\" eBPF variables: an array of 1 element whose key is (index) 0 " +"and where the value is a collection of 'global' variables which eBPF " +"programs can use to keep state between events." +msgstr "" +"Sous forme de variables eBPF « globales » : un tableau d’un élément dont la " +"clé (indice) est B<0> et dont la valeur est un ensemble de variables " +"« globales » que les programmes eBPF peuvent utiliser pour conserver leur " +"état entre les événements." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Aggregation of tracing events into a fixed set of buckets." +msgstr "" +"Agrégation d'événements de traçage dans un ensemble fixe de « buckets »." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Accounting of networking events, for example, number of packets and packet " +"sizes." +msgstr "" +"Comptabilité des événements réseaux, par exemple le nombre de paquets et " +"leur taille." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B (since Linux 4.2)" +msgstr "B (depuis Linux 4.2)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"A program array map is a special kind of array map whose map values contain " +"only file descriptors referring to other eBPF programs. Thus, both the " +"I and I must be exactly four bytes. This map is used " +"in conjunction with the B() helper." +msgstr "" +"Une mappe tableau de programmes est un type spécial de mappe tableau dont " +"les valeurs ne contiennent que des descripteurs de fichier qui se rapportent " +"à d'autres programmes eBPF. Ainsi, tant I que I " +"doivent être d'exactement quatre octets. Cette mappe est utilisée en " +"association avec l'aide B()." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"This means that an eBPF program with a program array map attached to it can " +"call from kernel side into" +msgstr "" +"Cela signifie qu'un programme eBPF auquel est rattaché un tableau de " +"programmes (program array) peut appeler à partir du noyau" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "" +"void bpf_tail_call(void *context, void *prog_map,\n" +" unsigned int index);\n" +msgstr "" +"void bpf_tail_call(void *context, void *prog_map,\n" +" unsigned int index);\n" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"and therefore replace its own program flow with the one from the program at " +"the given program array slot, if present. This can be regarded as kind of a " +"jump table to a different eBPF program. The invoked program will then reuse " +"the same stack. When a jump into the new program has been performed, it " +"won't return to the old program anymore." +msgstr "" +"et donc remplacer le flux de son propre programme par celui du programme sur " +"la tranche du tableau de programmes donné s'il y en a un. Vous pouvez " +"considérer cela comme un saut de tableau vers un autre programme eBPF. Le " +"programme appelé réutilisera ensuite la même pile. Quand un saut vers un " +"nouveau programme a été fait, il ne renverra plus à l'ancien programme." + +#. MAX_TAIL_CALL_CNT +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"If no eBPF program is found at the given index of the program array (because " +"the map slot doesn't contain a valid program file descriptor, the specified " +"lookup index/key is out of bounds, or the limit of 32 nested calls has been " +"exceed), execution continues with the current eBPF program. This can be " +"used as a fall-through for default cases." +msgstr "" +"Si aucun programme eBPF n'est trouvé sur l'indice donné du tableau de " +"programmes (car la tranche de la mappe ne contient pas de descripteur de " +"fichier de programme valable, la recherche d'indice/clé indiquée dépasse la " +"plage ou la limite de 32 appels en interne a été dépassée), l'exécution " +"continue avec le programme eBPF actuel. Cela peut être utilisé comme " +"solution de repli pour les cas par défaut." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"A program array map is useful, for example, in tracing or networking, to " +"handle individual system calls or protocols in their own subprograms and use " +"their identifiers as an individual map index. This approach may result in " +"performance benefits, and also makes it possible to overcome the maximum " +"instruction limit of a single eBPF program. In dynamic environments, a user-" +"space daemon might atomically replace individual subprograms at run-time " +"with newer versions to alter overall program behavior, for instance, if " +"global policies change." +msgstr "" +"Une mappe tableau de programmes sert, par exemple, à tracer ou mettre en " +"réseau, à gérer des appels système individuels ou des protocoles dans leurs " +"propres sous-programmes et à utiliser leurs identifiants comme identifiant " +"individuel de mappe. Cette approche peut apporter des gains de performance " +"et permet de dépasser la limite du nombre d'instructions d'un programme " +"eBPF. Dans des environnements dynamiques, un démon de l'espace utilisateur " +"pourrait remplacer de manière atomique des sous-programmes au moment de leur " +"exécution par de nouvelles versions, pour modifier le comportement général " +"d'un programme, par exemple, si les règles globales changent." + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "eBPF programs" +msgstr "Programmes eBPF" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The B command is used to load an eBPF program into the " +"kernel. The return value for this command is a new file descriptor " +"associated with this eBPF program." +msgstr "" +"La commande B est utilisée pour charger un programme eBPF " +"dans le noyau. Le code de retour de cette commande est un nouveau " +"descripteur de fichier associé à ce programme eBPF." + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-tumbleweed +#, no-wrap +msgid "" +"char bpf_log_buf[LOG_BUF_SIZE];\n" +"\\&\n" +"int\n" +"bpf_prog_load(enum bpf_prog_type type,\n" +" const struct bpf_insn *insns, int insn_cnt,\n" +" const char *license)\n" +"{\n" +" union bpf_attr attr = {\n" +" .prog_type = type,\n" +" .insns = ptr_to_u64(insns),\n" +" .insn_cnt = insn_cnt,\n" +" .license = ptr_to_u64(license),\n" +" .log_buf = ptr_to_u64(bpf_log_buf),\n" +" .log_size = LOG_BUF_SIZE,\n" +" .log_level = 1,\n" +" };\n" +"\\&\n" +" return bpf(BPF_PROG_LOAD, &attr, sizeof(attr));\n" +"}\n" +msgstr "" +"char bpf_log_buf[LOG_BUF_SIZE];\n" +"\\&\n" +"int\n" +"bpf_prog_load(enum bpf_prog_type type,\n" +" const struct bpf_insn *insns, int insn_cnt,\n" +" const char *license)\n" +"{\n" +" union bpf_attr attr = {\n" +" .prog_type = type,\n" +" .insns = ptr_to_u64(insns),\n" +" .insn_cnt = insn_cnt,\n" +" .license = ptr_to_u64(license),\n" +" .log_buf = ptr_to_u64(bpf_log_buf),\n" +" .log_size = LOG_BUF_SIZE,\n" +" .log_level = 1,\n" +" };\n" +"\\&\n" +" return bpf(BPF_PROG_LOAD, &attr, sizeof(attr));\n" +"}\n" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "I is one of the available program types:" +msgstr "I est un des types de programme suivants :" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "" +"enum bpf_prog_type {\n" +" BPF_PROG_TYPE_UNSPEC, /* Reserve 0 as invalid\n" +" program type */\n" +" BPF_PROG_TYPE_SOCKET_FILTER,\n" +" BPF_PROG_TYPE_KPROBE,\n" +" BPF_PROG_TYPE_SCHED_CLS,\n" +" BPF_PROG_TYPE_SCHED_ACT,\n" +" BPF_PROG_TYPE_TRACEPOINT,\n" +" BPF_PROG_TYPE_XDP,\n" +" BPF_PROG_TYPE_PERF_EVENT,\n" +" BPF_PROG_TYPE_CGROUP_SKB,\n" +" BPF_PROG_TYPE_CGROUP_SOCK,\n" +" BPF_PROG_TYPE_LWT_IN,\n" +" BPF_PROG_TYPE_LWT_OUT,\n" +" BPF_PROG_TYPE_LWT_XMIT,\n" +" BPF_PROG_TYPE_SOCK_OPS,\n" +" BPF_PROG_TYPE_SK_SKB,\n" +" BPF_PROG_TYPE_CGROUP_DEVICE,\n" +" BPF_PROG_TYPE_SK_MSG,\n" +" BPF_PROG_TYPE_RAW_TRACEPOINT,\n" +" BPF_PROG_TYPE_CGROUP_SOCK_ADDR,\n" +" BPF_PROG_TYPE_LWT_SEG6LOCAL,\n" +" BPF_PROG_TYPE_LIRC_MODE2,\n" +" BPF_PROG_TYPE_SK_REUSEPORT,\n" +" BPF_PROG_TYPE_FLOW_DISSECTOR,\n" +" /* See /usr/include/linux/bpf.h for the full list. */\n" +"};\n" +msgstr "" +"enum bpf_prog_type {\n" +" BPF_PROG_TYPE_UNSPEC, /* Réserver 0 comme type de programme\n" +" non valable */\n" +" BPF_PROG_TYPE_SOCKET_FILTER,\n" +" BPF_PROG_TYPE_KPROBE,\n" +" BPF_PROG_TYPE_SCHED_CLS,\n" +" BPF_PROG_TYPE_SCHED_ACT,\n" +" BPF_PROG_TYPE_TRACEPOINT,\n" +" BPF_PROG_TYPE_XDP,\n" +" BPF_PROG_TYPE_PERF_EVENT,\n" +" BPF_PROG_TYPE_CGROUP_SKB,\n" +" BPF_PROG_TYPE_CGROUP_SOCK,\n" +" BPF_PROG_TYPE_LWT_IN,\n" +" BPF_PROG_TYPE_LWT_OUT,\n" +" BPF_PROG_TYPE_LWT_XMIT,\n" +" BPF_PROG_TYPE_SOCK_OPS,\n" +" BPF_PROG_TYPE_SK_SKB,\n" +" BPF_PROG_TYPE_CGROUP_DEVICE,\n" +" BPF_PROG_TYPE_SK_MSG,\n" +" BPF_PROG_TYPE_RAW_TRACEPOINT,\n" +" BPF_PROG_TYPE_CGROUP_SOCK_ADDR,\n" +" BPF_PROG_TYPE_LWT_SEG6LOCAL,\n" +" BPF_PROG_TYPE_LIRC_MODE2,\n" +" BPF_PROG_TYPE_SK_REUSEPORT,\n" +" BPF_PROG_TYPE_FLOW_DISSECTOR,\n" +" /* Voir /usr/include/linux/bpf.h pour la liste complète. */\n" +"};\n" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "For further details of eBPF program types, see below." +msgstr "Pour plus de détails sur le type de programme eBPF, voir ci-dessous." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "The remaining fields of I are set as follows:" +msgstr "Les autres champs de I sont définis comme suit :" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "I is an array of I instructions." +msgstr "I est un tableau d'instructions I." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"I is the number of instructions in the program referred to by " +"I." +msgstr "" +"I est le nombre d'instructions du programme auquel se rapporte " +"I." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"I is a license string, which must be GPL compatible to call helper " +"functions marked I. (The licensing rules are the same as for " +"kernel modules, so that also dual licenses, such as \"Dual BSD/GPL\", may be " +"used.)" +msgstr "" +"I est une chaîne de licence, qui doit être compatible GPL pour " +"appeler les fonctions d'aide marquées comme I (les règles de " +"licence sont les mêmes que celles pour les modules du noyau, pour que même " +"des licences duales, telles que « Dual BSD/GPL », puissent être utilisées)." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"I is a pointer to a caller-allocated buffer in which the in-kernel " +"verifier can store the verification log. This log is a multi-line string " +"that can be checked by the program author in order to understand how the " +"verifier came to the conclusion that the eBPF program is unsafe. The format " +"of the output can change at any time as the verifier evolves." +msgstr "" +"I est un pointeur vers un tampon alloué à l’appelant (caller-" +"allocated) où le vérificateur du noyau peut stocker le journal de sa " +"vérification. Ce journal est une chaîne de plusieurs lignes qui peut être " +"vérifiée par l'auteur du programme pour comprendre la manière par laquelle " +"le vérificateur est arrivé à la conclusion que le programme eBPF n'est pas " +"sûr. Le format de sortie peut changer n'importe quand puisque le " +"vérificateur évolue." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"I size of the buffer pointed to by I. If the size of the " +"buffer is not large enough to store all verifier messages, -1 is returned " +"and I is set to B." +msgstr "" +"I dimensionne le tampon vers lequel pointe I. Si la " +"taille du tampon n'est pas assez grande pour stocker tous les messages du " +"vérificateur, B<-1> est renvoyé et I est positionné sur B." + +#. type: Plain text +#: archlinux fedora-40 fedora-rawhide mageia-cauldron +msgid "" +"I verbosity level of the verifier. A value of zero means that " +"the verifier will not provide a log; in this case, I must be a null " +"pointer, and I must be zero." +msgstr "" +"Le niveau de précisions I du vérificateur. Une valeur de zéro " +"signifie que le vérificateur ne génèrera aucun journal ; dans ce cas " +"I doit être un pointeur NULL et I doit valoir zéro." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Applying B(2) to the file descriptor returned by B " +"will unload the eBPF program (but see NOTES)." +msgstr "" +"Le fait d'appliquer B(2) au descripteur de fichier renvoyé par " +"B déchargera le programme eBPF (mais voir les REMARQUES)." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Maps are accessible from eBPF programs and are used to exchange data between " +"eBPF programs and between eBPF programs and user-space programs. For " +"example, eBPF programs can process various events (like kprobe, packets) and " +"store their data into a map, and user-space programs can then fetch data " +"from the map. Conversely, user-space programs can use a map as a " +"configuration mechanism, populating the map with values checked by the eBPF " +"program, which then modifies its behavior on the fly according to those " +"values." +msgstr "" +"Les mappes sont accessibles à partir des programmes eBPF et elles sont " +"utilisées pour échanger des données entre des programmes eBPF et entre des " +"programmes eBPF et d'autres de l'espace utilisateur. Par exemple, des " +"programmes eBPF peuvent traiter divers événements (comme kprobe, packets) et " +"stocker leurs données dans une mappe, et les programmes de l'espace " +"utilisateur peuvent alors récupérer ces données dans la mappe. Inversement, " +"des programmes de l'espace utilisateur peuvent utiliser une mappe en tant " +"que mécanisme de configuration, la mappe étant peuplée par des valeurs " +"vérifiées par le programme eBPF qui modifie ensuite son comportement à la " +"volée en fonction de ces valeurs. " + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "eBPF program types" +msgstr "Types de programme eBPF" + +# +#. FIXME +#. Somewhere in this page we need a general introduction to the +#. bpf_context. For example, how does a BPF program access the +#. context? +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The eBPF program type (I) determines the subset of kernel helper " +"functions that the program may call. The program type also determines the " +"program input (context)\\[em]the format of I (which is " +"the data blob passed into the eBPF program as the first argument)." +msgstr "" +"Le type de programme eBPF (I) détermine le sous-ensemble de " +"fonctions d'aide du noyau que peut appeler le programme. Le type de " +"programme détermine également le format d'entrée du programme (contexte) –" +" le format de I (qui est le blob de données passé au " +"programme eBPF en tant que premier paramètre)." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"For example, a tracing program does not have the exact same subset of helper " +"functions as a socket filter program (though they may have some helpers in " +"common). Similarly, the input (context) for a tracing program is a set of " +"register values, while for a socket filter it is a network packet." +msgstr "" +"Par exemple, un programme de traçage n'a pas exactement le même sous-jeu de " +"fonctions d'aide qu'un programme de filtrage de socket (bien qu'ils peuvent " +"en avoir en commun). De même l'entrée (le contexte) d'un programme de " +"traçage est un jeu de valeurs de registre, alors que ce sera un paquet " +"réseau pour le filtrage de socket." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The set of functions available to eBPF programs of a given type may increase " +"in the future." +msgstr "" +"Le jeu de fonctions disponibles pour les programmes eBPF d'un type donné " +"pourra augmenter dans le futur." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "The following program types are supported:" +msgstr "Les types de programmes suivants sont pris en charge :" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B (since Linux 3.19)" +msgstr "B (depuis Linux 3.19)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Currently, the set of functions for B is:" +msgstr "" +"Actuellement, le jeu de fonctions pour B est :" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "" +"bpf_map_lookup_elem(map_fd, void *key)\n" +" /* look up key in a map_fd */\n" +"bpf_map_update_elem(map_fd, void *key, void *value)\n" +" /* update key/value */\n" +"bpf_map_delete_elem(map_fd, void *key)\n" +" /* delete key in a map_fd */\n" +msgstr "" +"bpf_map_lookup_elem(map_fd, void *key)\n" +" /* rechercher la clé dans une map_fd */\n" +"bpf_map_update_elem(map_fd, void *key, void *value)\n" +" /* mettre à jour la clé/valeur */\n" +"bpf_map_delete_elem(map_fd, void *key)\n" +" /* effacer la clé d'une map_fd */\n" + +# +#. FIXME: We need some text here to explain how the program +#. accesses __sk_buff. +#. See 'struct __sk_buff' and commit 9bac3d6d548e5 +#. Alexei commented: +#. Actually now in case of SOCKET_FILTER, SCHED_CLS, SCHED_ACT +#. the program can now access skb fields. +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "The I argument is a pointer to a I." +msgstr "" +"Le paramètre I est un pointeur vers une I." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B (since Linux 4.1)" +msgstr "B (depuis Linux 4.1)" + +#. commit 94caee8c312d96522bcdae88791aaa9ebcd5f22c +#. commit a8cb5f556b567974d75ea29c15181c445c541b1f +#. FIXME Document this program type +#. Describe allowed helper functions for this program type +#. Describe bpf_context for this program type +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "[To be documented]" +msgstr "[À documenter]" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B (since Linux 4.1)" +msgstr "B (depuis Linux 4.1)" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B (since Linux 4.1)" +msgstr "B (depuis Linux 4.1)" + +#. type: SS +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "Events" +msgstr "Événements" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Once a program is loaded, it can be attached to an event. Various kernel " +"subsystems have different ways to do so." +msgstr "" +"Une fois qu'un programme est chargé, il peut être rattaché à un événement. " +"Divers sous-systèmes du noyau ont plusieurs manières de le faire." + +#. commit 89aa075832b0da4402acebd698d0411dcc82d03e +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Since Linux 3.19, the following call will attach the program I to " +"the socket I, which was created by an earlier call to B(2):" +msgstr "" +"Depuis Linux 3.19, l'appel suivant rattachera le programme I au " +"socket I, qui a été précédemment créé par un appel B(2) :" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "" +"setsockopt(sockfd, SOL_SOCKET, SO_ATTACH_BPF,\n" +" &prog_fd, sizeof(prog_fd));\n" +msgstr "" +"setsockopt(sockfd, SOL_SOCKET, SO_ATTACH_BPF,\n" +" &prog_fd, sizeof(prog_fd));\n" + +#. commit 2541517c32be2531e0da59dfd7efc1ce844644f5 +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Since Linux 4.1, the following call may be used to attach the eBPF program " +"referred to by the file descriptor I to a perf event file " +"descriptor, I, that was created by a previous call to " +"B(2):" +msgstr "" +"Depuis Linux 4.1, l'appel suivant peut être utilisé pour rattacher un " +"programme eBPF auquel se rapporte le descripteur de fichier I à un " +"descripteur de fichier d'événement I, I, créé par un appel " +"précédent à B(2) :" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "ioctl(event_fd, PERF_EVENT_IOC_SET_BPF, prog_fd);\n" +msgstr "ioctl(event_fd, PERF_EVENT_IOC_SET_BPF, prog_fd);\n" + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "RETURN VALUE" +msgstr "VALEUR RENVOYÉE" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "For a successful call, the return value depends on the operation:" +msgstr "" +"Pour qu'un appel réussisse, le code de retour dépend de l'opération\\ :" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "The new file descriptor associated with the eBPF map." +msgstr "Le nouveau descripteur de fichier associé à la mappe eBPF." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "The new file descriptor associated with the eBPF program." +msgstr "Le nouveau descripteur de fichier associé au programme eBPF." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "All other commands" +msgstr "Toutes les autres commandes\\ :" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Zero." +msgstr "Zéro." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "On error, -1 is returned, and I is set to indicate the error." +msgstr "" +"En cas d'erreur, la valeur de retour est B<-1> et I est définie pour " +"préciser l'erreur." + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "ERRORS" +msgstr "ERREURS" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B" +msgstr "B" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The eBPF program is too large or a map reached the I limit " +"(maximum number of elements)." +msgstr "" +"Le programme eBPF est trop grand ou une mappe a atteint la limite " +"I (nombre maximal d'éléments)." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B" +msgstr "B" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"For B, even though all program instructions are valid, the " +"program has been rejected because it was deemed unsafe. This may be because " +"it may have accessed a disallowed memory region or an uninitialized stack/" +"register or because the function constraints don't match the actual types or " +"because there was a misaligned memory access. In this case, it is " +"recommended to call B() again with I and examine " +"I for the specific reason provided by the verifier." +msgstr "" +"Pour B, même si toutes les instructions du programme sont " +"valables, le programme a été rejeté car il a été considéré comme non sûr. " +"Cela est possible s'il a eu un accès à une zone de la mémoire interdite ou à " +"une pile ou un registre non initialisé, ou parce que les contraintes de la " +"fonction ne correspondent pas aux types réels, ou qu'il y a eu un accès " +"mémoire non aligné. Dans ce cas, il est recommandé d'appeler B() à " +"nouveau, avec I et d'examiner le I pour connaître la " +"raison exacte fournie par le vérificateur." + +#. type: TP +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-tumbleweed +#, no-wrap +msgid "B" +msgstr "B" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-tumbleweed +msgid "" +"For B, indicates that needed resources are blocked. This " +"happens when the verifier detects pending signals while it is checking the " +"validity of the bpf program. In this case, just call B() again with " +"the same parameters." +msgstr "" +"Pour B, indique que les ressources nécessaires sont bloquées. " +"Cela se produit quand le vérificateur détecte des signaux en attente alors " +"qu'il vérifie la validité du programme bpf. Dans ce cas, appeler à nouveau " +"simplement B() avec les mêmes paramètres." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B" +msgstr "B" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "I is not an open file descriptor." +msgstr "I n'est pas un descripteur de fichier ouvert." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B" +msgstr "B" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"One of the pointers (I or I or I or I) is " +"outside the accessible address space." +msgstr "" +"Un des pointeurs (I ou I ou I ou I) dépasse " +"l'espace d'adressage accessible." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B" +msgstr "B" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "The value specified in I is not recognized by this kernel." +msgstr "La valeur indiquée dans I n'est pas reconnue par ce noyau." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "For B, either I or attributes are invalid." +msgstr "" +"Pour B, soit I, soit les attributs ne sont pas " +"autorisés." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"For B commands, some of the fields of I that " +"are not used by this command are not set to zero." +msgstr "" +"Pour des commandes B, certains champs de I " +"non utilisés par cette commande n'ont pas été positionnés sur zéro." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"For B, indicates an attempt to load an invalid program. eBPF " +"programs can be deemed invalid due to unrecognized instructions, the use of " +"reserved fields, jumps out of range, infinite loops or calls of unknown " +"functions." +msgstr "" +"Pour B, indique une tentative de charger un programme non " +"valable. Les programmes eBPF peuvent être jugés non valables du fait " +"d'instructions non reconnues, de l'utilisation de champs réservés, de " +"dépassements de plage, de boucles infinies ou d'appels à des fonctions " +"inconnues." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B" +msgstr "B" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"For B or B, indicates that the " +"element with the given I was not found." +msgstr "" +"Pour B ou B, indique qu'un élément " +"avec la I donnée n'a pas été trouvé." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B" +msgstr "B" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Cannot allocate sufficient memory." +msgstr "Ne peut pas allouer suffisamment de mémoire." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B" +msgstr "B" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The call was made without sufficient privilege (without the B " +"capability)." +msgstr "" +"L'appel a été fait sans privilèges suffisants (sans la capacité " +"B)." + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "STANDARDS" +msgstr "STANDARDS" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "Linux." +msgstr "Linux." + +#. type: SH +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "HISTORY" +msgstr "HISTORIQUE" + +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-leap-15-6 opensuse-tumbleweed +msgid "Linux 3.18." +msgstr "Linux 3.18." + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "NOTES" +msgstr "NOTES" + +#. commit 1be7f75d1668d6296b80bf35dcf6762393530afc +#. [Linux 5.6] mtk: The list of available functions is, I think, governed +#. by the check in net/core/filter.c::bpf_base_func_proto(). +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Prior to Linux 4.4, all B() commands require the caller to have the " +"B capability. From Linux 4.4 onwards, an unprivileged user " +"may create limited programs of type B and " +"associated maps. However they may not store kernel pointers within the maps " +"and are presently limited to the following helper functions:" +msgstr "" +"Avant Linux 4.4, toutes les commandes B() exigeaient que l'appelant ait " +"la capacité B. Depuis Linux 4.4 jusqu'à présent, un " +"utilisateur non privilégié peut créer des programmes limités de type " +"B et mappes associées. Toutefois, ils ne " +"peuvent pas stocker des pointeurs du noyau dans les mappes et ils sont " +"actuellement limités aux fonctions d'aide suivantes :" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "get_random" +msgstr "get_random" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "get_smp_processor_id" +msgstr "get_smp_processor_id" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "tail_call" +msgstr "tail_call" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "ktime_get_ns" +msgstr "ktime_get_ns" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Unprivileged access may be blocked by writing the value 1 to the file I." +msgstr "" +"Un accès sans privilèges peut être bloqué en écrivant la valeur B<1> dans le " +"fichier I." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"eBPF objects (maps and programs) can be shared between processes. For " +"example, after B(2), the child inherits file descriptors referring to " +"the same eBPF objects. In addition, file descriptors referring to eBPF " +"objects can be transferred over UNIX domain sockets. File descriptors " +"referring to eBPF objects can be duplicated in the usual way, using " +"B(2) and similar calls. An eBPF object is deallocated only after all " +"file descriptors referring to the object have been closed." +msgstr "" +"Les objets eBPF (les mappes et les programmes) peuvent être partagés entre " +"les processus. Par exemple, après B(2), l'enfant récupère les " +"descripteurs de fichier qui se rapportent aux mêmes objets eBPF. De plus, " +"les descripteurs de fichier qui se rapportent aux objets eBPF peuvent être " +"transférés à travers des sockets de domaine UNIX. Les descripteurs de " +"fichier qui se rapportent aux objets eBPF peuvent être dupliqués de la " +"manière habituelle, en utilisant B(2) ou des appels similaires. Un " +"objet eBPF n'est désalloué qu'après que tous les descripteurs de fichier qui " +"se rapportent à l'objet sont fermés." + +#. There are also examples for the tc classifier, in the iproute2 +#. project, in examples/bpf +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"eBPF programs can be written in a restricted C that is compiled (using the " +"B compiler) into eBPF bytecode. Various features are omitted from " +"this restricted C, such as loops, global variables, variadic functions, " +"floating-point numbers, and passing structures as function arguments. Some " +"examples can be found in the I files in the kernel " +"source tree." +msgstr "" +"Les programmes eBPF peuvent être écrits en C restreint compilé en bytecode " +"eBPF (en utilisant le compilateur B). Diverses fonctionnalités sont " +"absentes de ce C restreint, telles que les boucles, les variables globales, " +"les fonctions variadiques, les nombres décimaux et le passage de structures " +"comme paramètres d'une fonction. Vous pouvez trouver des exemples dans les " +"fichiers I de l'arborescence des sources du noyau." + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The kernel contains a just-in-time (JIT) compiler that translates eBPF " +"bytecode into native machine code for better performance. Before Linux " +"4.15, the JIT compiler is disabled by default, but its operation can be " +"controlled by writing one of the following integer strings to the file I:" +msgstr "" +"Le noyau contient un compilateur « just-in-time (JIT) » qui traduit du " +"bytecode eBPF en langage machine natif pour de meilleures performances. " +"Avant Linux 4.15, le compilateur JIT est désactivé par défaut, mais ce qu'il " +"fait peut être contrôlé en écrivant une des chaînes suivantes d’entiers dans " +"le fichier I :" + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<0>" +msgstr "B<0>" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Disable JIT compilation (default)." +msgstr "Désactiver la compilation JIT (par défaut)." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<1>" +msgstr "B<1>" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "Normal compilation." +msgstr "Compilation normale." + +#. type: TP +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "B<2>" +msgstr "B<2>" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Debugging mode. The generated opcodes are dumped in hexadecimal into the " +"kernel log. These opcodes can then be disassembled using the program " +"I provided in the kernel source tree." +msgstr "" +"Mode débogage. Les opcodes générés sont écrits en hexadécimal dans le " +"journal du noyau. Ces opcodes peuvent alors être désassemblés avec le " +"programme I fourni dans l'arborescence des " +"sources du noyau." + +#. commit 290af86629b25ffd1ed6232c4e9107da031705cb +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Since Linux 4.15, the kernel may configured with the " +"B option. In this case, the JIT compiler is " +"always enabled, and the I is initialized to 1 and is " +"immutable. (This kernel configuration option was provided as a mitigation " +"for one of the Spectre attacks against the BPF interpreter.)" +msgstr "" +"Depuis Linux 4.15, le noyau peut être configuré avec l'option " +"B. Dans ce cas, le compilateur JIT est toujours " +"activé et I est positionné sur B<1> et immuable (cette " +"option de configuration du noyau est fournie pour contrer une des attaques " +"Spectre contre l'interpréteur BPF)." + +#. Last reviewed in Linux 4.18-rc by grepping for BPF_ALU64 in arch/ +#. and by checking the documentation for bpf_jit_enable in +#. Documentation/sysctl/net.txt +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"The JIT compiler for eBPF is currently available for the following " +"architectures:" +msgstr "" +"Le compilateur JIT pour eBPF est actuellement disponible pour les " +"architectures suivantes :" + +#. commit 0a14842f5a3c0e88a1e59fac5c3025db39721f74 +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "x86-64 (since Linux 3.18; cBPF since Linux 3.0);" +msgstr "x86-64 (depuis Linux 3.18 ; cBPF depuis Linux 3.0) ;" + +#. commit ddecdfcea0ae891f782ae853771c867ab51024c2 +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "ARM32 (since Linux 3.18; cBPF since Linux 3.4);" +msgstr "ARM32 (depuis Linux 3.18 ; cBPF depuis Linux 3.4) ;" + +#. commit 2809a2087cc44b55e4377d7b9be3f7f5d2569091 +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "SPARC 32 (since Linux 3.18; cBPF since Linux 3.5);" +msgstr "SPARC 32 (depuis Linux 3.18 ; cBPF depuis Linux 3.5) ;" + +#. commit e54bcde3d69d40023ae77727213d14f920eb264a +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "ARM-64 (since Linux 3.18);" +msgstr "ARM-64 (depuis Linux 3.18) ;;" + +#. commit c10302efe569bfd646b4c22df29577a4595b4580 +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "s390 (since Linux 4.1; cBPF since Linux 3.7);" +msgstr "s390 (depuis Linux 4.1 ; cBPF depuis Linux 3.7) ;" + +#. commit 0ca87f05ba8bdc6791c14878464efc901ad71e99 +#. commit 156d0e290e969caba25f1851c52417c14d141b24 +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "PowerPC 64 (since Linux 4.8; cBPF since Linux 3.1);" +msgstr "PowerPC 64 (depuis Linux 4.8 ; cBPF depuis Linux 3.1) ;" + +#. commit 7a12b5031c6b947cc13918237ae652b536243b76 +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "SPARC 64 (since Linux 4.12);" +msgstr "SPARC 64 (depuis Linux 4.12) ;" + +#. commit 03f5781be2c7b7e728d724ac70ba10799cc710d7 +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "x86-32 (since Linux 4.18);" +msgstr "x86-32 (depuis Linux 4.18) ;" + +#. commit c6610de353da5ca6eee5b8960e838a87a90ead0c +#. commit f381bf6d82f032b7410185b35d000ea370ac706b +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "MIPS 64 (since Linux 4.18; cBPF since Linux 3.16);" +msgstr "MIPS 64 (depuis Linux 4.18 ; cBPF depuis Linux 3.16) ;" + +#. commit 2353ecc6f91fd15b893fa01bf85a1c7a823ee4f2 +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "riscv (since Linux 5.1)." +msgstr "riscv (depuis Linux 5.1)." + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "EXAMPLES" +msgstr "EXEMPLES" + +#. == atomic64_add +#. type: Plain text +#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron +#: opensuse-tumbleweed +#, no-wrap +msgid "" +"/* bpf+sockets example:\n" +" * 1. create array map of 256 elements\n" +" * 2. load program that counts number of packets received\n" +" * r0 = skb-Edata[ETH_HLEN + offsetof(struct iphdr, protocol)]\n" +" * map[r0]++\n" +" * 3. attach prog_fd to raw socket via setsockopt()\n" +" * 4. print number of received TCP/UDP packets every second\n" +" */\n" +"int\n" +"main(int argc, char *argv[])\n" +"{\n" +" int sock, map_fd, prog_fd, key;\n" +" long long value = 0, tcp_cnt, udp_cnt;\n" +"\\&\n" +" map_fd = bpf_create_map(BPF_MAP_TYPE_ARRAY, sizeof(key),\n" +" sizeof(value), 256);\n" +" if (map_fd E 0) {\n" +" printf(\"failed to create map \\[aq]%s\\[aq]\\en\", strerror(errno));\n" +" /* likely not run as root */\n" +" return 1;\n" +" }\n" +"\\&\n" +" struct bpf_insn prog[] = {\n" +" BPF_MOV64_REG(BPF_REG_6, BPF_REG_1), /* r6 = r1 */\n" +" BPF_LD_ABS(BPF_B, ETH_HLEN + offsetof(struct iphdr, protocol)),\n" +" /* r0 = ip-Eproto */\n" +" BPF_STX_MEM(BPF_W, BPF_REG_10, BPF_REG_0, -4),\n" +" /* *(u32 *)(fp - 4) = r0 */\n" +" BPF_MOV64_REG(BPF_REG_2, BPF_REG_10), /* r2 = fp */\n" +" BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, -4), /* r2 = r2 - 4 */\n" +" BPF_LD_MAP_FD(BPF_REG_1, map_fd), /* r1 = map_fd */\n" +" BPF_CALL_FUNC(BPF_FUNC_map_lookup_elem),\n" +" /* r0 = map_lookup(r1, r2) */\n" +" BPF_JMP_IMM(BPF_JEQ, BPF_REG_0, 0, 2),\n" +" /* if (r0 == 0) goto pc+2 */\n" +" BPF_MOV64_IMM(BPF_REG_1, 1), /* r1 = 1 */\n" +" BPF_XADD(BPF_DW, BPF_REG_0, BPF_REG_1, 0, 0),\n" +" /* lock *(u64 *) r0 += r1 */\n" +" BPF_MOV64_IMM(BPF_REG_0, 0), /* r0 = 0 */\n" +" BPF_EXIT_INSN(), /* return r0 */\n" +" };\n" +"\\&\n" +" prog_fd = bpf_prog_load(BPF_PROG_TYPE_SOCKET_FILTER, prog,\n" +" sizeof(prog) / sizeof(prog[0]), \"GPL\");\n" +"\\&\n" +" sock = open_raw_sock(\"lo\");\n" +"\\&\n" +" assert(setsockopt(sock, SOL_SOCKET, SO_ATTACH_BPF, &prog_fd,\n" +" sizeof(prog_fd)) == 0);\n" +"\\&\n" +" for (;;) {\n" +" key = IPPROTO_TCP;\n" +" assert(bpf_lookup_elem(map_fd, &key, &tcp_cnt) == 0);\n" +" key = IPPROTO_UDP;\n" +" assert(bpf_lookup_elem(map_fd, &key, &udp_cnt) == 0);\n" +" printf(\"TCP %lld UDP %lld packets\\en\", tcp_cnt, udp_cnt);\n" +" sleep(1);\n" +" }\n" +"\\&\n" +" return 0;\n" +"}\n" +msgstr "" +"/* Exemple de bpf+sockets :\n" +" * 1. Créer une mappe tableau de 256 éléments\n" +" * 2. Charger le programme qui compte le nombre de paquets reçus\n" +" * r0 = skb-Edata[ETH_HLEN + offsetof(struct iphdr, protocol)]\n" +" * map[r0]++\n" +" * 3. Rattacher prog_fd au socket brut à l’aide de setsockopt()\n" +" * 4. Afficher le nombre de paquets TCP/UDP reçus toutes les secondes\n" +" */\n" +"int\n" +"main(int argc, char *argv[])\n" +"{\n" +" int sock, map_fd, prog_fd, key;\n" +" long long value = 0, tcp_cnt, udp_cnt;\n" +"\\&\n" +" map_fd = bpf_create_map(BPF_MAP_TYPE_ARRAY, sizeof(key),\n" +" sizeof(value), 256);\n" +" if (map_fd E 0) {\n" +" printf(\"impossible de créer la projection \\[aq]%s\\[aq]\\en\", strerror(errno));\n" +" /* probablement non lancé en tant que root */\n" +" return 1;\n" +" }\n" +" struct bpf_insn prog[] = {\n" +" BPF_MOV64_REG(BPF_REG_6, BPF_REG_1), /* r6 = r1 */\n" +" BPF_LD_ABS(BPF_B, ETH_HLEN + offsetof(struct iphdr, protocol)),\n" +" /* r0 = ip-Eproto */\n" +" BPF_STX_MEM(BPF_W, BPF_REG_10, BPF_REG_0, -4),\n" +" /* *(u32 *)(fp - 4) = r0 */\n" +" BPF_MOV64_REG(BPF_REG_2, BPF_REG_10), /* r2 = fp */\n" +" BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, -4), /* r2 = r2 - 4 */\n" +" BPF_LD_MAP_FD(BPF_REG_1, map_fd), /* r1 = map_fd */\n" +" BPF_CALL_FUNC(BPF_FUNC_map_lookup_elem),\n" +" /* r0 = map_lookup(r1, r2) */\n" +" BPF_JMP_IMM(BPF_JEQ, BPF_REG_0, 0, 2),\n" +" /* if (r0 == 0) goto pc+2 */\n" +" BPF_MOV64_IMM(BPF_REG_1, 1), /* r1 = 1 */\n" +" BPF_XADD(BPF_DW, BPF_REG_0, BPF_REG_1, 0, 0),\n" +" /* lock *(u64 *) r0 += r1 */\n" +" BPF_MOV64_IMM(BPF_REG_0, 0), /* r0 = 0 */\n" +" BPF_EXIT_INSN(), /* return r0 */\n" +" };\n" +"\\&\n" +" prog_fd = bpf_prog_load(BPF_PROG_TYPE_SOCKET_FILTER, prog,\n" +" sizeof(prog) / sizeof(prog[0]), \"GPL\");\n" +"\\&\n" +" sock = open_raw_sock(\"lo\");\n" +"\\&\n" +" assert(setsockopt(sock, SOL_SOCKET, SO_ATTACH_BPF, &prog_fd,\n" +" sizeof(prog_fd)) == 0);\n" +"\\&\n" +" for (;;) {\n" +" key = IPPROTO_TCP;\n" +" assert(bpf_lookup_elem(map_fd, &key, &tcp_cnt) == 0);\n" +" key = IPPROTO_UDP;\n" +" assert(bpf_lookup_elem(map_fd, &key, &udp_cnt) == 0);\n" +" printf(\"TCP %lld UDP %lld packets\\en\", tcp_cnt, udp_cnt);\n" +" sleep(1);\n" +" }\n" +"\\&\n" +" return 0;\n" +"}\n" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Some complete working code can be found in the I directory in " +"the kernel source tree." +msgstr "" +"Vous pouvez trouvez du code complet opérationnel dans le répertoire " +"I de l'arborescence des sources du noyau." + +#. type: SH +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +#, no-wrap +msgid "SEE ALSO" +msgstr "VOIR AUSSI" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "B(2), B(7), B(7), B(8), B(8)" +msgstr "B(2), B(7), B(7), B(8), B(8)" + +#. type: Plain text +#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide +#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"Both classic and extended BPF are explained in the kernel source file " +"I." +msgstr "" +"Les BPF classique et étendu sont expliqués dans le fichier I des sources du noyau." + +#. type: TH +#: debian-bookworm +#, no-wrap +msgid "2023-02-05" +msgstr "5 février 2023" + +#. type: TH +#: debian-bookworm +#, no-wrap +msgid "Linux man-pages 6.03" +msgstr "Pages du manuel de Linux 6.03" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +"union bpf_attr {\n" +" struct { /* Used by BPF_MAP_CREATE */\n" +" __u32 map_type;\n" +" __u32 key_size; /* size of key in bytes */\n" +" __u32 value_size; /* size of value in bytes */\n" +" __u32 max_entries; /* maximum number of entries\n" +" in a map */\n" +" };\n" +msgstr "" +"union bpf_attr {\n" +" struct { /* Utilisé par BPF_MAP_CREATE */\n" +" __u32 map_type;\n" +" __u32 key_size; /* taille de la clé en octets */\n" +" __u32 value_size; /* taille de la valeur en octets */\n" +" __u32 max_entries; /* nombre maximal d'entrées\n" +" dans une mappe */\n" +" };\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" struct { /* Used by BPF_MAP_*_ELEM and BPF_MAP_GET_NEXT_KEY\n" +" commands */\n" +" __u32 map_fd;\n" +" __aligned_u64 key;\n" +" union {\n" +" __aligned_u64 value;\n" +" __aligned_u64 next_key;\n" +" };\n" +" __u64 flags;\n" +" };\n" +msgstr "" +" struct { /* Utilisé par les commandes BPF_MAP_*_ELEM et\n" +" BPF_MAP_GET_NEXT_KEY */\n" +" __u32 map_fd;\n" +" __aligned_u64 key;\n" +" union {\n" +" __aligned_u64 value;\n" +" __aligned_u64 next_key;\n" +" };\n" +" __u64 flags;\n" +" };\n" + +#. commit 2541517c32be2531e0da59dfd7efc1ce844644f5 +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" struct { /* Used by BPF_PROG_LOAD */\n" +" __u32 prog_type;\n" +" __u32 insn_cnt;\n" +" __aligned_u64 insns; /* \\[aq]const struct bpf_insn *\\[aq] */\n" +" __aligned_u64 license; /* \\[aq]const char *\\[aq] */\n" +" __u32 log_level; /* verbosity level of verifier */\n" +" __u32 log_size; /* size of user buffer */\n" +" __aligned_u64 log_buf; /* user supplied \\[aq]char *\\[aq]\n" +" buffer */\n" +" __u32 kern_version;\n" +" /* checked when prog_type=kprobe\n" +" (since Linux 4.1) */\n" +" };\n" +"} __attribute__((aligned(8)));\n" +msgstr "" +" struct { /* Used by BPF_PROG_LOAD */\n" +" __u32 prog_type;\n" +" __u32 insn_cnt;\n" +" __aligned_u64 insns; /* \\[aq]const struct bpf_insn *\\[aq] */\n" +" __aligned_u64 license; /* \\[aq]const char *\\[aq] */\n" +" __u32 log_level; /* niveau de bavardage du vérificateur */\n" +" __u32 log_size; /* taille du tampon utilisateur */\n" +" __aligned_u64 log_buf; /* l'utilisateur a fourni \\[aq]char *\\[aq]\n" +" de tampon */\n" +" __u32 kern_version;\n" +" /* vérifier quand prog_type=kprobe\n" +" (depuis Linux 4.1) */\n" +" };\n" +"} __attribute__((aligned(8)));\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +"int\n" +"bpf_create_map(enum bpf_map_type map_type,\n" +" unsigned int key_size,\n" +" unsigned int value_size,\n" +" unsigned int max_entries)\n" +"{\n" +" union bpf_attr attr = {\n" +" .map_type = map_type,\n" +" .key_size = key_size,\n" +" .value_size = value_size,\n" +" .max_entries = max_entries\n" +" };\n" +msgstr "" +"int\n" +"bpf_create_map(enum bpf_map_type map_type,\n" +" unsigned int key_size,\n" +" unsigned int value_size,\n" +" unsigned int max_entries)\n" +"{\n" +" union bpf_attr attr = {\n" +" .map_type = map_type,\n" +" .key_size = key_size,\n" +" .value_size = value_size,\n" +" .max_entries = max_entries\n" +" };\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" return bpf(BPF_MAP_CREATE, &attr, sizeof(attr));\n" +"}\n" +msgstr "" +" return bpf(BPF_MAP_CREATE, &attr, sizeof(attr));\n" +"}\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +"int\n" +"bpf_lookup_elem(int fd, const void *key, void *value)\n" +"{\n" +" union bpf_attr attr = {\n" +" .map_fd = fd,\n" +" .key = ptr_to_u64(key),\n" +" .value = ptr_to_u64(value),\n" +" };\n" +msgstr "" +"int\n" +"bpf_lookup_elem(int fd, const void *key, void *value)\n" +"{\n" +" union bpf_attr attr = {\n" +" .map_fd = fd,\n" +" .key = ptr_to_u64(key),\n" +" .value = ptr_to_u64(value),\n" +" };\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" return bpf(BPF_MAP_LOOKUP_ELEM, &attr, sizeof(attr));\n" +"}\n" +msgstr "" +" return bpf(BPF_MAP_LOOKUP_ELEM, &attr, sizeof(attr));\n" +"}\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +"int\n" +"bpf_update_elem(int fd, const void *key, const void *value,\n" +" uint64_t flags)\n" +"{\n" +" union bpf_attr attr = {\n" +" .map_fd = fd,\n" +" .key = ptr_to_u64(key),\n" +" .value = ptr_to_u64(value),\n" +" .flags = flags,\n" +" };\n" +msgstr "" +"int\n" +"bpf_update_elem(int fd, const void *key, const void *value,\n" +" uint64_t flags)\n" +"{\n" +" union bpf_attr attr = {\n" +" .map_fd = fd,\n" +" .key = ptr_to_u64(key),\n" +" .value = ptr_to_u64(value),\n" +" .flags = flags,\n" +" };\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" return bpf(BPF_MAP_UPDATE_ELEM, &attr, sizeof(attr));\n" +"}\n" +msgstr "" +" return bpf(BPF_MAP_UPDATE_ELEM, &attr, sizeof(attr));\n" +"}\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +"int\n" +"bpf_delete_elem(int fd, const void *key)\n" +"{\n" +" union bpf_attr attr = {\n" +" .map_fd = fd,\n" +" .key = ptr_to_u64(key),\n" +" };\n" +msgstr "" +"int\n" +"bpf_delete_elem(int fd, const void *key)\n" +"{\n" +" union bpf_attr attr = {\n" +" .map_fd = fd,\n" +" .key = ptr_to_u64(key),\n" +" };\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" return bpf(BPF_MAP_DELETE_ELEM, &attr, sizeof(attr));\n" +"}\n" +msgstr "" +" return bpf(BPF_MAP_DELETE_ELEM, &attr, sizeof(attr));\n" +"}\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +"int\n" +"bpf_get_next_key(int fd, const void *key, void *next_key)\n" +"{\n" +" union bpf_attr attr = {\n" +" .map_fd = fd,\n" +" .key = ptr_to_u64(key),\n" +" .next_key = ptr_to_u64(next_key),\n" +" };\n" +msgstr "" +"int\n" +"bpf_get_next_key(int fd, const void *key, void *next_key)\n" +"{\n" +" union bpf_attr attr = {\n" +" .map_fd = fd,\n" +" .key = ptr_to_u64(key),\n" +" .next_key = ptr_to_u64(next_key),\n" +" };\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" return bpf(BPF_MAP_GET_NEXT_KEY, &attr, sizeof(attr));\n" +"}\n" +msgstr "" +" return bpf(BPF_MAP_GET_NEXT_KEY, &attr, sizeof(attr));\n" +"}\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "char bpf_log_buf[LOG_BUF_SIZE];\n" +msgstr "char bpf_log_buf[LOG_BUF_SIZE];\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +"int\n" +"bpf_prog_load(enum bpf_prog_type type,\n" +" const struct bpf_insn *insns, int insn_cnt,\n" +" const char *license)\n" +"{\n" +" union bpf_attr attr = {\n" +" .prog_type = type,\n" +" .insns = ptr_to_u64(insns),\n" +" .insn_cnt = insn_cnt,\n" +" .license = ptr_to_u64(license),\n" +" .log_buf = ptr_to_u64(bpf_log_buf),\n" +" .log_size = LOG_BUF_SIZE,\n" +" .log_level = 1,\n" +" };\n" +msgstr "" +"int\n" +"bpf_prog_load(enum bpf_prog_type type,\n" +" const struct bpf_insn *insns, int insn_cnt,\n" +" const char *license)\n" +"{\n" +" union bpf_attr attr = {\n" +" .prog_type = type,\n" +" .insns = ptr_to_u64(insns),\n" +" .insn_cnt = insn_cnt,\n" +" .license = ptr_to_u64(license),\n" +" .log_buf = ptr_to_u64(bpf_log_buf),\n" +" .log_size = LOG_BUF_SIZE,\n" +" .log_level = 1,\n" +" };\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" return bpf(BPF_PROG_LOAD, &attr, sizeof(attr));\n" +"}\n" +msgstr "" +" return bpf(BPF_PROG_LOAD, &attr, sizeof(attr));\n" +"}\n" + +#. type: Plain text +#: debian-bookworm debian-unstable opensuse-leap-15-6 opensuse-tumbleweed +msgid "" +"I verbosity level of the verifier. A value of zero means that " +"the verifier will not provide a log; in this case, I must be a NULL " +"pointer, and I must be zero." +msgstr "" +"Le niveau de précisions I du vérificateur. Une valeur de zéro " +"signifie que le vérificateur ne génèrera aucun journal ; dans ce cas " +"I doit être un pointeur NULL et I doit valoir zéro." + +#. type: SH +#: debian-bookworm +#, no-wrap +msgid "VERSIONS" +msgstr "VERSIONS" + +#. type: Plain text +#: debian-bookworm +msgid "The B() system call first appeared in Linux 3.18." +msgstr "" +"L'appel système B() est apparu pour la première fois dans Linux 3.18." + +#. type: Plain text +#: debian-bookworm +msgid "The B() system call is Linux-specific." +msgstr "L'appel système B() est spécifique à Linux." + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +"/* bpf+sockets example:\n" +" * 1. create array map of 256 elements\n" +" * 2. load program that counts number of packets received\n" +" * r0 = skb-Edata[ETH_HLEN + offsetof(struct iphdr, protocol)]\n" +" * map[r0]++\n" +" * 3. attach prog_fd to raw socket via setsockopt()\n" +" * 4. print number of received TCP/UDP packets every second\n" +" */\n" +"int\n" +"main(int argc, char *argv[])\n" +"{\n" +" int sock, map_fd, prog_fd, key;\n" +" long long value = 0, tcp_cnt, udp_cnt;\n" +msgstr "" +"/* Exemple de bpf+sockets :\n" +" * 1. Créer une mappe tableau de 256 éléments\n" +" * 2. Charger le programme qui compte le nombre de paquets reçus\n" +" * r0 = skb-Edata[ETH_HLEN + offsetof(struct iphdr, protocol)]\n" +" * map[r0]++\n" +" * 3. Rattacher prog_fd au socket brut à l’aide de setsockopt()\n" +" * 4. Afficher le nombre de paquets TCP/UDP reçus toutes les secondes\n" +" */\n" +"int\n" +"main(int argc, char *argv[])\n" +"{\n" +" int sock, map_fd, prog_fd, key;\n" +" long long value = 0, tcp_cnt, udp_cnt;\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" map_fd = bpf_create_map(BPF_MAP_TYPE_ARRAY, sizeof(key),\n" +" sizeof(value), 256);\n" +" if (map_fd E 0) {\n" +" printf(\"failed to create map \\[aq]%s\\[aq]\\en\", strerror(errno));\n" +" /* likely not run as root */\n" +" return 1;\n" +" }\n" +msgstr "" +" map_fd = bpf_create_map(BPF_MAP_TYPE_ARRAY, sizeof(key),\n" +" sizeof(value), 256);\n" +" if (map_fd E 0) {\n" +" printf(\"impossible de créer la projection \\[aq]%s\\[aq]\\en\", strerror(errno));\n" +" /* probablement non lancé en tant que root */\n" +" return 1;\n" +" }\n" + +#. == atomic64_add +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" struct bpf_insn prog[] = {\n" +" BPF_MOV64_REG(BPF_REG_6, BPF_REG_1), /* r6 = r1 */\n" +" BPF_LD_ABS(BPF_B, ETH_HLEN + offsetof(struct iphdr, protocol)),\n" +" /* r0 = ip-Eproto */\n" +" BPF_STX_MEM(BPF_W, BPF_REG_10, BPF_REG_0, -4),\n" +" /* *(u32 *)(fp - 4) = r0 */\n" +" BPF_MOV64_REG(BPF_REG_2, BPF_REG_10), /* r2 = fp */\n" +" BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, -4), /* r2 = r2 - 4 */\n" +" BPF_LD_MAP_FD(BPF_REG_1, map_fd), /* r1 = map_fd */\n" +" BPF_CALL_FUNC(BPF_FUNC_map_lookup_elem),\n" +" /* r0 = map_lookup(r1, r2) */\n" +" BPF_JMP_IMM(BPF_JEQ, BPF_REG_0, 0, 2),\n" +" /* if (r0 == 0) goto pc+2 */\n" +" BPF_MOV64_IMM(BPF_REG_1, 1), /* r1 = 1 */\n" +" BPF_XADD(BPF_DW, BPF_REG_0, BPF_REG_1, 0, 0),\n" +" /* lock *(u64 *) r0 += r1 */\n" +" BPF_MOV64_IMM(BPF_REG_0, 0), /* r0 = 0 */\n" +" BPF_EXIT_INSN(), /* return r0 */\n" +" };\n" +msgstr "" +" struct bpf_insn prog[] = {\n" +" BPF_MOV64_REG(BPF_REG_6, BPF_REG_1), /* r6 = r1 */\n" +" BPF_LD_ABS(BPF_B, ETH_HLEN + offsetof(struct iphdr, protocol)),\n" +" /* r0 = ip-Eproto */\n" +" BPF_STX_MEM(BPF_W, BPF_REG_10, BPF_REG_0, -4),\n" +" /* *(u32 *)(fp - 4) = r0 */\n" +" BPF_MOV64_REG(BPF_REG_2, BPF_REG_10), /* r2 = fp */\n" +" BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, -4), /* r2 = r2 - 4 */\n" +" BPF_LD_MAP_FD(BPF_REG_1, map_fd), /* r1 = map_fd */\n" +" BPF_CALL_FUNC(BPF_FUNC_map_lookup_elem),\n" +" /* r0 = map_lookup(r1, r2) */\n" +" BPF_JMP_IMM(BPF_JEQ, BPF_REG_0, 0, 2),\n" +" /* if (r0 == 0) goto pc+2 */\n" +" BPF_MOV64_IMM(BPF_REG_1, 1), /* r1 = 1 */\n" +" BPF_XADD(BPF_DW, BPF_REG_0, BPF_REG_1, 0, 0),\n" +" /* lock *(u64 *) r0 += r1 */\n" +" BPF_MOV64_IMM(BPF_REG_0, 0), /* r0 = 0 */\n" +" BPF_EXIT_INSN(), /* return r0 */\n" +" };\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" prog_fd = bpf_prog_load(BPF_PROG_TYPE_SOCKET_FILTER, prog,\n" +" sizeof(prog) / sizeof(prog[0]), \"GPL\");\n" +msgstr "" +" prog_fd = bpf_prog_load(BPF_PROG_TYPE_SOCKET_FILTER, prog,\n" +" sizeof(prog) / sizeof(prog[0]), \"GPL\");\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid " sock = open_raw_sock(\"lo\");\n" +msgstr " sock = open_raw_sock(\"lo\");\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" assert(setsockopt(sock, SOL_SOCKET, SO_ATTACH_BPF, &prog_fd,\n" +" sizeof(prog_fd)) == 0);\n" +msgstr "" +" assert(setsockopt(sock, SOL_SOCKET, SO_ATTACH_BPF, &prog_fd,\n" +" sizeof(prog_fd)) == 0);\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" for (;;) {\n" +" key = IPPROTO_TCP;\n" +" assert(bpf_lookup_elem(map_fd, &key, &tcp_cnt) == 0);\n" +" key = IPPROTO_UDP;\n" +" assert(bpf_lookup_elem(map_fd, &key, &udp_cnt) == 0);\n" +" printf(\"TCP %lld UDP %lld packets\\en\", tcp_cnt, udp_cnt);\n" +" sleep(1);\n" +" }\n" +msgstr "" +" for (;;) {\n" +" key = IPPROTO_TCP;\n" +" assert(bpf_lookup_elem(map_fd, &key, &tcp_cnt) == 0);\n" +" key = IPPROTO_UDP;\n" +" assert(bpf_lookup_elem(map_fd, &key, &udp_cnt) == 0);\n" +" printf(\"TCP %lld UDP %lld packets\\en\", tcp_cnt, udp_cnt);\n" +" sleep(1);\n" +" }\n" + +#. type: Plain text +#: debian-bookworm opensuse-leap-15-6 +#, no-wrap +msgid "" +" return 0;\n" +"}\n" +msgstr "" +" return 0;\n" +"}\n" + +#. type: TH +#: debian-unstable opensuse-tumbleweed +#, no-wrap +msgid "2023-07-28" +msgstr "28 juillet 2023" + +#. type: TH +#: debian-unstable opensuse-tumbleweed +#, no-wrap +msgid "Linux man-pages 6.05.01" +msgstr "Pages du manuel de Linux 6.05.01" + +#. type: TH +#: opensuse-leap-15-6 +#, no-wrap +msgid "2023-03-30" +msgstr "30 mars 2023" + +#. type: TH +#: opensuse-leap-15-6 +#, no-wrap +msgid "Linux man-pages 6.04" +msgstr "Pages du manuel de Linux 6.04" -- cgit v1.2.3