summaryrefslogtreecommitdiffstats
path: root/po/fr/man2/bpf.2.po
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 19:43:11 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 19:43:11 +0000
commitfc22b3d6507c6745911b9dfcc68f1e665ae13dbc (patch)
treece1e3bce06471410239a6f41282e328770aa404a /po/fr/man2/bpf.2.po
parentInitial commit. (diff)
downloadmanpages-l10n-fc22b3d6507c6745911b9dfcc68f1e665ae13dbc.tar.xz
manpages-l10n-fc22b3d6507c6745911b9dfcc68f1e665ae13dbc.zip
Adding upstream version 4.22.0.upstream/4.22.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'po/fr/man2/bpf.2.po')
-rw-r--r--po/fr/man2/bpf.2.po3069
1 files changed, 3069 insertions, 0 deletions
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 <https://www.blaess.fr/christophe/>, 1996-2003.
+# Stéphan Rafin <stephan.rafin@laposte.net>, 2002.
+# Thierry Vignaud <tvignaud@mandriva.com>, 1999,2002.
+# François Micaux, 2002.
+# Alain Portal <aportal@univ-montp2.fr>, 2003-2008.
+# Jean-Philippe Guérard <fevrier@tigreraye.org>, 2005-2006.
+# Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, 2006-2007.
+# Julien Cristau <jcristau@debian.org>, 2006-2007.
+# Thomas Huriaux <thomas.huriaux@gmail.com>, 2006-2008.
+# Nicolas François <nicolas.francois@centraliens.net>, 2006-2008.
+# Florentin Duneau <fduneau@gmail.com>, 2006-2010.
+# Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, 2006, 2013.
+# Denis Barbier <barbier@debian.org>, 2006,2010.
+# David Prévot <david@tilapin.org>, 2010, 2013, 2014.
+# Cédric Boutillier <cedric.boutillier@gmail.com>, 2011, 2012, 2013.
+# Frédéric Hantrais <fhantrais@gmail.com>, 2013, 2014.
+# Jean-Philippe MENGUAL <jpmengual@debian.org>, 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 <jpmengual@debian.org>\n"
+"Language-Team: French <debian-l10n-french@lists.debian.org>\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 E<lt>linux/bpf.hE<gt>>\n"
+msgstr "B<#include E<lt>linux/bpf.hE<gt>>\n"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<int bpf(int >I<cmd>B<, union bpf_attr *>I<attr>B<, unsigned int >I<size>B<);>\n"
+msgstr "B<int bpf(int >I<cmd>B<, union bpf_attr *>I<attr>B<, unsigned int >I<size>B<);>\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<bpf>() 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<bpf>() 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<BPF_CALL> 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<BPF_CALL> 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<bpf>(). If a map lookup "
+"fails, the current program continues its execution. See "
+"B<BPF_MAP_TYPE_PROG_ARRAY> 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<bpf>(). Si une recherche "
+"de mappe échoue, le programme en cours poursuit son exécution. Voir "
+"B<BPF_MAP_TYPE_PROG_ARRAY> 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<tc-bpf>(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<bpf>()."
+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<tc-bpf>(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<tc> 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<bpf>()."
+
+#. 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<tc>(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<tc>(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<gt> tracing E<lt>-- 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<gt> traçage E<lt>-- 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<bpf>() system call is determined by "
+"the I<cmd> argument. Each operation takes an accompanying argument, "
+"provided via I<attr>, which is a pointer to a union of type I<bpf_attr> (see "
+"below). The unused fields and padding must be zeroed out before the call. "
+"The I<size> argument is the size of the union pointed to by I<attr>."
+msgstr ""
+"L'opération à effectuer par l'appel système B<bpf>() est déterminée par le "
+"paramètre I<cmd>. Chaque opération prend un paramètre, fourni par I<attr>, "
+"qui est un pointeur vers une union de type I<bpf_attr> (voir ci-dessous). "
+"Les champs inutilisés et de remplissage doivent être mis à zéro avant "
+"l'appel. Le paramètre I<size> est la taille de l'union vers laquelle pointe "
+"I<attr>."
+
+#. 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<cmd> is one of the following:"
+msgstr "La valeur fournie dans I<cmd> 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<BPF_MAP_CREATE>"
+msgstr "B<BPF_MAP_CREATE>"
+
+#. 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<fcntl>(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<close-on-exec> (voir B<fcntl>(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<BPF_MAP_LOOKUP_ELEM>"
+msgstr "B<BPF_MAP_LOOKUP_ELEM>"
+
+#. 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<BPF_MAP_UPDATE_ELEM>"
+msgstr "B<BPF_MAP_UPDATE_ELEM>"
+
+#. 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<BPF_MAP_DELETE_ELEM>"
+msgstr "B<BPF_MAP_DELETE_ELEM>"
+
+#. 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<BPF_MAP_GET_NEXT_KEY>"
+msgstr "B<BPF_MAP_GET_NEXT_KEY>"
+
+#. 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<BPF_PROG_LOAD>"
+msgstr "B<BPF_PROG_LOAD>"
+
+#. 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<fcntl>(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<close-on-exec> (voir B<fcntl>(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<bpf_attr> union consists of various anonymous structures that are used "
+"by different B<bpf>() commands:"
+msgstr ""
+"L'union I<bpf_attr> consiste dans diverses structures anonymes utilisées par "
+"différentes commandes B<bpf>() :"
+
+#. 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<bpf>() commands "
+"can be used to access the maps. The functions use the I<cmd> argument to "
+"invoke different operations."
+msgstr ""
+"Les fonctions enveloppe suivantes montrent la manière dont diverses "
+"commandes B<bpf>() peuvent être utilisées pour accéder aux mappes. Les "
+"fonctions utilisent le paramètre I<cmd> 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<BPF_MAP_CREATE> command creates a new map, returning a new file "
+"descriptor that refers to the map."
+msgstr ""
+"La commande B<BPF_MAP_CREATE> 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<map_type>, and attributes as "
+"specified in I<key_size>, I<value_size>, and I<max_entries>. On success, "
+"this operation returns a file descriptor. On error, -1 is returned and "
+"I<errno> is set to B<EINVAL>, B<EPERM>, or B<ENOMEM>."
+msgstr ""
+"La nouvelle mappe possède le type indiqué avec I<map_type> et les attributs "
+"indiqués dans I<key_size>, I<value_size> et I<max_entries>. En cas de "
+"succès, cette opération renvoie un descripteur de fichier. En cas d'erreur, "
+"B<-1> est renvoyé et I<errno> est positionné sur B<EINVAL>, B<EPERM> ou "
+"B<ENOMEM>."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The I<key_size> and I<value_size> attributes will be used by the verifier "
+"during program loading to check that the program is calling "
+"B<bpf_map_*_elem>() helper functions with a correctly initialized I<key> "
+"and to check that the program doesn't access the map element I<value> beyond "
+"the specified I<value_size>. For example, when a map is created with a "
+"I<key_size> of 8 and the eBPF program calls"
+msgstr ""
+"Les attributs I<key_size> et I<value_size> seront utilisés par le "
+"vérificateur lors du chargement du programme pour vérifier que le programme "
+"appelle les fonctions d'aide B<bpf_map_*_elem>() avec une I<key> "
+"correctement initialisée et pour vérifier que le programme n'accède pas à "
+"une I<value> de l'élément de la mappe au-delà de la I<value_size> indiquée. "
+"Par exemple, quand une mappe est créée avec I<key_size> 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<key>, but the "
+"I<fp\\ -\\ 4> (where I<fp> 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<key>, mais l'adresse de "
+"départ I<fp\\ -\\ 4> (où I<fp> 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<value_size> of 1 and the eBPF "
+"program contains"
+msgstr ""
+"De même, lorsqu'une mappe est créée avec une I<value_size> 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<value> pointer beyond "
+"the specified 1 byte I<value_size> limit."
+msgstr ""
+"le programme sera rejeté puisqu'il accède au pointeur I<value> au-delà de la "
+"la limite I<value_size> 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<map_type>:"
+msgstr ""
+"Actuellement, les valeurs suivantes sont prises en charge par I<map_type> :"
+
+#. 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<map_type> selects one of the available map implementations in the kernel. "
+"For all map types, eBPF programs access maps with the same "
+"B<bpf_map_lookup_elem>() and B<bpf_map_update_elem>() helper functions. "
+"Further details of the various map types are given below."
+msgstr ""
+"I<map_type> 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<bpf_map_lookup_elem>() et "
+"B<bpf_map_update_elem>(). 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<BPF_MAP_LOOKUP_ELEM> command looks up an element with a given I<key> "
+"in the map referred to by the file descriptor I<fd>."
+msgstr ""
+"La commande B<BPF_MAP_LOOKUP_ELEM> cherche un élément avec une I<key> donnée "
+"dans la mappe à laquelle se rapporte le descripteur de fichier I<fd>."
+
+#. 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<value>, which must point to a buffer of I<value_size> bytes."
+msgstr ""
+"Si un élément est trouvé, l'opération renvoie zéro et stocke la valeur de "
+"l'élément dans I<value>, qui doit pointer vers un tampon de I<value_size> "
+"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<errno> to "
+"B<ENOENT>."
+msgstr ""
+"Si aucun élément n'est trouvé, l'opération renvoie B<-1> et I<errno> est "
+"positionné sur B<ENOENT>."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The B<BPF_MAP_UPDATE_ELEM> command creates or updates an element with a "
+"given I<key/value> in the map referred to by the file descriptor I<fd>."
+msgstr ""
+"La commande B<BPF_MAP_UPDATE_ELEM> crée ou met à jour un élément avec une "
+"I<key/value> donnée dans la mappe à laquelle se rapporte le descripteur de "
+"fichier I<fd>."
+
+#. 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<flags> argument should be specified as one of the following:"
+msgstr ""
+"Le paramètre I<flags> 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<BPF_ANY>"
+msgstr "B<BPF_ANY>"
+
+#. 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<BPF_NOEXIST>"
+msgstr "B<BPF_NOEXIST>"
+
+#. 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<BPF_EXIST>"
+msgstr "B<BPF_EXIST>"
+
+#. 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<errno> is set to B<EINVAL>, B<EPERM>, B<ENOMEM>, or B<E2BIG>. B<E2BIG> "
+"indicates that the number of elements in the map reached the I<max_entries> "
+"limit specified at map creation time. B<EEXIST> will be returned if "
+"I<flags> specifies B<BPF_NOEXIST> and the element with I<key> already exists "
+"in the map. B<ENOENT> will be returned if I<flags> specifies B<BPF_EXIST> "
+"and the element with I<key> 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<errno> est positionné sur B<EINVAL>, B<EPERM>, B<ENOMEM> ou "
+"B<E2BIG>. B<E2BIG> indique que le nombre d'éléments de la mappe a atteint "
+"la limite I<max_entries> spécifiée au moment de la création de la mappe. "
+"B<EEXIST> sera renvoyé si I<flags> spécifie B<BPF_NOEXIST> et si l'élément "
+"contenant I<key> existe déjà sur la mappe. B<ENOENT> sera renvoyé si "
+"I<flags> spécifie B<BPF_EXIST> et si l'élément contenant I<key> 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<BPF_MAP_DELETE_ELEM> command deletes the element whose key is I<key> "
+"from the map referred to by the file descriptor I<fd>."
+msgstr ""
+"La commande B<BPF_MAP_DELETE_ELEM> efface l'élément dont la clé est I<key> "
+"sur la mappe à laquelle se rapporte le descripteur de fichier I<fd>."
+
+#. 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<errno> is set to B<ENOENT>."
+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<errno> est positionné sur B<ENOENT>."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The B<BPF_MAP_GET_NEXT_KEY> command looks up an element by I<key> in the map "
+"referred to by the file descriptor I<fd> and sets the I<next_key> pointer to "
+"the key of the next element."
+msgstr ""
+"La commande B<BPF_MAP_GET_NEXT_KEY> recherche un élément par I<key> sur la "
+"mappe à laquelle se réfère le descripteur de fichier I<fd> et elle définit "
+"le pointeur I<next_key> 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<key> is found, the operation returns zero and sets the I<next_key> "
+"pointer to the key of the next element. If I<key> is not found, the "
+"operation returns zero and sets the I<next_key> pointer to the key of the "
+"first element. If I<key> is the last element, -1 is returned and I<errno> "
+"is set to B<ENOENT>. Other possible I<errno> values are B<ENOMEM>, "
+"B<EFAULT>, B<EPERM>, and B<EINVAL>. This method can be used to iterate over "
+"all elements in the map."
+msgstr ""
+"Si I<key> est trouvée, l'opération renvoie zéro et I<next_key> pointe vers "
+"la clé de l'élément suivant. Si I<key> n'est pas trouvée, l'opération "
+"renvoie zéro et I<next_key> pointe vers la clé du premier élément. Si I<key> "
+"est le dernier élément, B<-1> est renvoyé et I<errno> est positionné sur "
+"B<ENOENT>. Les autres valeurs possibles de I<errno> sont B<ENOMEM>, "
+"B<EFAULT>, B<EPERM> et B<EINVAL>. 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<close(map_fd)>"
+msgstr "B<close(map_fd)>"
+
+#. 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<map_fd>. 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<map_fd>. "
+"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<BPF_MAP_TYPE_HASH>"
+msgstr "B<BPF_MAP_TYPE_HASH>"
+
+#. 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<map_update_elem>() helper will fail to insert new element when the "
+"I<max_entries> limit is reached. (This ensures that eBPF programs cannot "
+"exhaust memory.)"
+msgstr ""
+"L'aide B<map_update_elem>() échouera si vous insérez un nouvel élément quand "
+"la limite I<max_entries> 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<map_update_elem>() replaces existing elements atomically."
+msgstr "B<map_update_elem>() 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<BPF_MAP_TYPE_ARRAY>"
+msgstr "B<BPF_MAP_TYPE_ARRAY>"
+
+#. 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<value_size> are constant for the life of the eBPF program. In other "
+"words, B<array_map_lookup_elem>() 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<lookup>() 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<value_size> sont "
+"constants durant toute la vie des programmes eBPF. En d'autres termes, "
+"B<array_map_lookup_elem>() 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<map_delete_elem>() fails with the error B<EINVAL>, since elements cannot "
+"be deleted."
+msgstr ""
+"B<map_delete_elem>() échoue avec l'erreur B<EINVAL>, 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<map_update_elem>() replaces elements in a B<nonatomic> 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<map_update_elem>() remplace les éléments de manière B<non atomique> ; 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<BPF_MAP_TYPE_PROG_ARRAY> (since Linux 4.2)"
+msgstr "B<BPF_MAP_TYPE_PROG_ARRAY> (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<key_size> and I<value_size> must be exactly four bytes. This map is used "
+"in conjunction with the B<bpf_tail_call>() 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<key_size> que I<value_size> "
+"doivent être d'exactement quatre octets. Cette mappe est utilisée en "
+"association avec l'aide B<bpf_tail_call>()."
+
+#. 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<BPF_PROG_LOAD> 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<BPF_PROG_LOAD> 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<prog_type> is one of the available program types:"
+msgstr "I<prog_type> 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<bpf_attr> are set as follows:"
+msgstr "Les autres champs de I<bpf_attr> 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<insns> is an array of I<struct bpf_insn> instructions."
+msgstr "I<insns> est un tableau d'instructions I<struct bpf_insn>."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"I<insn_cnt> is the number of instructions in the program referred to by "
+"I<insns>."
+msgstr ""
+"I<insn_cnt> est le nombre d'instructions du programme auquel se rapporte "
+"I<insns>."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"I<license> is a license string, which must be GPL compatible to call helper "
+"functions marked I<gpl_only>. (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<license> est une chaîne de licence, qui doit être compatible GPL pour "
+"appeler les fonctions d'aide marquées comme I<gpl_only> (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<log_buf> 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<log_buf> 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<log_size> size of the buffer pointed to by I<log_buf>. If the size of the "
+"buffer is not large enough to store all verifier messages, -1 is returned "
+"and I<errno> is set to B<ENOSPC>."
+msgstr ""
+"I<log_size> dimensionne le tampon vers lequel pointe I<log_buf>. Si la "
+"taille du tampon n'est pas assez grande pour stocker tous les messages du "
+"vérificateur, B<-1> est renvoyé et I<errno> est positionné sur B<ENOSPC>."
+
+#. type: Plain text
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+msgid ""
+"I<log_level> verbosity level of the verifier. A value of zero means that "
+"the verifier will not provide a log; in this case, I<log_buf> must be a null "
+"pointer, and I<log_size> must be zero."
+msgstr ""
+"Le niveau de précisions I<log_level> du vérificateur. Une valeur de zéro "
+"signifie que le vérificateur ne génèrera aucun journal ; dans ce cas "
+"I<log_buf> doit être un pointeur NULL et I<log_size> 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<close>(2) to the file descriptor returned by B<BPF_PROG_LOAD> "
+"will unload the eBPF program (but see NOTES)."
+msgstr ""
+"Le fait d'appliquer B<close>(2) au descripteur de fichier renvoyé par "
+"B<BPF_PROG_LOAD> 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<prog_type>) 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<struct bpf_context> (which is "
+"the data blob passed into the eBPF program as the first argument)."
+msgstr ""
+"Le type de programme eBPF (I<prog_type>) 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<struct bpf_context> (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<BPF_PROG_TYPE_SOCKET_FILTER> (since Linux 3.19)"
+msgstr "B<BPF_PROG_TYPE_SOCKET_FILTER> (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<BPF_PROG_TYPE_SOCKET_FILTER> is:"
+msgstr ""
+"Actuellement, le jeu de fonctions pour B<BPF_PROG_TYPE_SOCKET_FILTER> 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<bpf_context> argument is a pointer to a I<struct __sk_buff>."
+msgstr ""
+"Le paramètre I<bpf_context> est un pointeur vers une I<struct __sk_buff>."
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<BPF_PROG_TYPE_KPROBE> (since Linux 4.1)"
+msgstr "B<BPF_PROG_TYPE_KPROBE> (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<BPF_PROG_TYPE_SCHED_CLS> (since Linux 4.1)"
+msgstr "B<BPF_PROG_TYPE_SCHED_CLS> (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<BPF_PROG_TYPE_SCHED_ACT> (since Linux 4.1)"
+msgstr "B<BPF_PROG_TYPE_SCHED_ACT> (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<prog_fd> to "
+"the socket I<sockfd>, which was created by an earlier call to B<socket>(2):"
+msgstr ""
+"Depuis Linux 3.19, l'appel suivant rattachera le programme I<prog_fd> au "
+"socket I<sockfd>, qui a été précédemment créé par un appel B<socket>(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<prog_fd> to a perf event file "
+"descriptor, I<event_fd>, that was created by a previous call to "
+"B<perf_event_open>(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<prog_fd> à un "
+"descripteur de fichier d'événement I<perf>, I<event_fd>, créé par un appel "
+"précédent à B<perf_event_open>(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<errno> is set to indicate the error."
+msgstr ""
+"En cas d'erreur, la valeur de retour est B<-1> et I<errno> 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<E2BIG>"
+msgstr "B<E2BIG>"
+
+#. 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<max_entries> limit "
+"(maximum number of elements)."
+msgstr ""
+"Le programme eBPF est trop grand ou une mappe a atteint la limite "
+"I<max_entries> (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<EACCES>"
+msgstr "B<EACCES>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"For B<BPF_PROG_LOAD>, 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<bpf>() again with I<log_level = 1> and examine "
+"I<log_buf> for the specific reason provided by the verifier."
+msgstr ""
+"Pour B<BPF_PROG_LOAD>, 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<bpf>() à "
+"nouveau, avec I<log_level = 1> et d'examiner le I<log_buf> 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<EAGAIN>"
+msgstr "B<EAGAIN>"
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-tumbleweed
+msgid ""
+"For B<BPF_PROG_LOAD>, 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<bpf>() again with "
+"the same parameters."
+msgstr ""
+"Pour B<BPF_PROG_LOAD>, 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<bpf>() 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<EBADF>"
+msgstr "B<EBADF>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "I<fd> is not an open file descriptor."
+msgstr "I<fd> 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<EFAULT>"
+msgstr "B<EFAULT>"
+
+#. 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<key> or I<value> or I<log_buf> or I<insns>) is "
+"outside the accessible address space."
+msgstr ""
+"Un des pointeurs (I<key> ou I<value> ou I<log_buf> ou I<insns>) 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<EINVAL>"
+msgstr "B<EINVAL>"
+
+#. 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<cmd> is not recognized by this kernel."
+msgstr "La valeur indiquée dans I<cmd> 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<BPF_MAP_CREATE>, either I<map_type> or attributes are invalid."
+msgstr ""
+"Pour B<BPF_MAP_CREATE>, soit I<map_type>, 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<BPF_MAP_*_ELEM> commands, some of the fields of I<union bpf_attr> that "
+"are not used by this command are not set to zero."
+msgstr ""
+"Pour des commandes B<BPF_MAP_*_ELEM>, certains champs de I<union bpf_attr> "
+"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<BPF_PROG_LOAD>, 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<BPF_PROG_LOAD>, 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<ENOENT>"
+msgstr "B<ENOENT>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"For B<BPF_MAP_LOOKUP_ELEM> or B<BPF_MAP_DELETE_ELEM>, indicates that the "
+"element with the given I<key> was not found."
+msgstr ""
+"Pour B<BPF_MAP_LOOKUP_ELEM> ou B<BPF_MAP_DELETE_ELEM>, indique qu'un élément "
+"avec la I<key> 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<ENOMEM>"
+msgstr "B<ENOMEM>"
+
+#. 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<EPERM>"
+msgstr "B<EPERM>"
+
+#. 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<CAP_SYS_ADMIN> "
+"capability)."
+msgstr ""
+"L'appel a été fait sans privilèges suffisants (sans la capacité "
+"B<CAP_SYS_ADMIN>)."
+
+#. 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<bpf>() commands require the caller to have the "
+"B<CAP_SYS_ADMIN> capability. From Linux 4.4 onwards, an unprivileged user "
+"may create limited programs of type B<BPF_PROG_TYPE_SOCKET_FILTER> 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<bpf>() exigeaient que l'appelant ait "
+"la capacité B<CAP_SYS_ADMIN>. Depuis Linux 4.4 jusqu'à présent, un "
+"utilisateur non privilégié peut créer des programmes limités de type "
+"B<BPF_PROG_TYPE_SOCKET_FILTER> 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</"
+"proc/sys/kernel/unprivileged_bpf_disabled>."
+msgstr ""
+"Un accès sans privilèges peut être bloqué en écrivant la valeur B<1> dans le "
+"fichier I</proc/sys/kernel/unprivileged_bpf_disabled>."
+
+#. 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<fork>(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<dup>(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<fork>(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<dup>(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<clang> 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<samples/bpf/*_kern.c> 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<clang>). 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<samples/bpf/*_kern.c> 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</"
+"proc/sys/net/core/bpf_jit_enable>:"
+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</proc/sys/net/core/bpf_jit_enable> :"
+
+#. 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<tools/net/bpf_jit_disasm.c> 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<tools/net/bpf_jit_disasm.c> 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<CONFIG_BPF_JIT_ALWAYS_ON> option. In this case, the JIT compiler is "
+"always enabled, and the I<bpf_jit_enable> 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<CONFIG_BPF_JIT_ALWAYS_ON>. Dans ce cas, le compilateur JIT est toujours "
+"activé et I<bpf_jit_enable> 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-E<gt>data[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<lt> 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-E<gt>proto */\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-E<gt>data[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<lt> 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-E<gt>proto */\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<samples/bpf> directory in "
+"the kernel source tree."
+msgstr ""
+"Vous pouvez trouvez du code complet opérationnel dans le répertoire "
+"I<samples/bpf> 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<seccomp>(2), B<bpf-helpers>(7), B<socket>(7), B<tc>(8), B<tc-bpf>(8)"
+msgstr "B<seccomp>(2), B<bpf-helpers>(7), B<socket>(7), B<tc>(8), B<tc-bpf>(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<Documentation/networking/filter.txt>."
+msgstr ""
+"Les BPF classique et étendu sont expliqués dans le fichier I<Documentation/"
+"networking/filter.txt> 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<log_level> verbosity level of the verifier. A value of zero means that "
+"the verifier will not provide a log; in this case, I<log_buf> must be a NULL "
+"pointer, and I<log_size> must be zero."
+msgstr ""
+"Le niveau de précisions I<log_level> du vérificateur. Une valeur de zéro "
+"signifie que le vérificateur ne génèrera aucun journal ; dans ce cas "
+"I<log_buf> doit être un pointeur NULL et I<log_size> doit valoir zéro."
+
+#. type: SH
+#: debian-bookworm
+#, no-wrap
+msgid "VERSIONS"
+msgstr "VERSIONS"
+
+#. type: Plain text
+#: debian-bookworm
+msgid "The B<bpf>() system call first appeared in Linux 3.18."
+msgstr ""
+"L'appel système B<bpf>() est apparu pour la première fois dans Linux 3.18."
+
+#. type: Plain text
+#: debian-bookworm
+msgid "The B<bpf>() system call is Linux-specific."
+msgstr "L'appel système B<bpf>() 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-E<gt>data[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-E<gt>data[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<lt> 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<lt> 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-E<gt>proto */\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-E<gt>proto */\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"