perkamon - en to fr translation catalogue (131 entries)

note: type: TH
en: 2021-03-22
fr: 22 mars 2021

note: type: TH
en: Linux Programmer's Manual
fr: Manuel du programmeur Linux

note: type: SH
en: NAME
fr: NOM

note: type: Plain text
en: netlink - communication between kernel and user space (AF_NETLINK)
fr: netlink – Communication entre noyau et espace utilisateur (AF_NETLINK)

note: type: Plain text
en: B<netlink_socket = socket(AF_NETLINK, >I<socket_type>B<, >I<netlink_family>B<);>
fr: B<netlink_socket = socket(AF_NETLINK, >I<type_socket>B<, >I<famille_netlink>B<);>

note: type: Plain text
en: Netlink is used to transfer information between the kernel and user-space processes.  It consists of a standard sockets-based interface for user space processes and an internal kernel API for kernel modules.  The internal kernel interface is not documented in this manual page.  There is also an obsolete netlink interface via netlink character devices; this interface is not documented here and is provided only for backward compatibility.
fr: Netlink sert à transférer des informations entre les modules du noyau et les processus de l'espace utilisateur. Il consiste en une interface standard basée sur les sockets pour les processus en espace utilisateur et d'une API interne du noyau pour les modules du noyau. Cette interface du noyau n'est pas documentée dans cette page de manuel. Il existe aussi une interface netlink obsolète utilisant les périphériques caractère netlink, fournie uniquement pour rétrocompatibilité et non documentée ici.

note: type: Plain text
en: Netlink is a datagram-oriented service.  Both B<SOCK_RAW> and B<SOCK_DGRAM> are valid values for I<socket_type>.  However, the netlink protocol does not distinguish between datagram and raw sockets.
fr: Netlink est un service orienté datagramme. Les deux types B<SOCK_RAW> et B<SOCK_DGRAM> sont des valeurs possibles pour I<type_socket>. Toutefois, le protocole netlink ne distingue pas les sockets raw et datagramme.

note: type: Plain text
en: I<netlink_family> selects the kernel module or netlink group to communicate with.  The currently assigned netlink families are:
fr: I<famille_netlink> sélectionne le module du noyau ou le groupe netlink avec qui communiquer. Les familles netlink actuellement déterminées sont\ :

note: type: Plain text
en: Receives routing and link updates and may be used to modify the routing tables (both IPv4 and IPv6), IP addresses, link parameters, neighbor setups, queueing disciplines, traffic classes, and packet classifiers (see B<rtnetlink>(7)).
fr: Réception des modifications de routage et de lien et utilisation possible pour mettre à jour les tables de routage (IPv4 et IPv6), les adresses IP, les paramètres de lien, les configurations de voisinage, les politiques d'ordonnancement, les classes de trafic et les classificateurs de paquets (consultez B<rtnetlink>(7)).

note: type: TP
en: B<NETLINK_W1> (Linux 2.6.13 to 2.16.17)
fr: B<NETLINK_W1> (de Linux 2.6.13 à 2.16.17)

note: type: Plain text
en: Messages from 1-wire subsystem.
fr: Messages du sous-système 1-Wire.

note: type: Plain text
en: Reserved for user-mode socket protocols.
fr: Réservé pour les protocoles de socket dans l'espace utilisateur.

note: type: TP
en: B<NETLINK_FIREWALL> (up to and including Linux 3.4)
fr: B<NETLINK_FIREWALL> (jusqu’à Linux 3.4 inclus)

note: removed by commit d16cf20e2f2f13411eece7f7fb72c17d141c4a84 type: Plain text
en: Transport IPv4 packets from netfilter to user space.  Used by I<ip_queue> kernel module.  After a long period of being declared obsolete (in favor of the more advanced I<nfnetlink_queue> feature), B<NETLINK_FIREWALL> was removed in Linux 3.5.
fr: Transport des paquets IPv4 de netfilter vers l’espace utilisateur. Utilisé par le module de noyau I<ip_queue>. Après une longue période de considération comme obsolète (en faveur du la fonctionnalité plus moderne I<nfnetlink_queue>), B<NETLINK_FIREWALL> a été retiré dans Linux 3.5.

note: type: TP
en: B<NETLINK_SOCK_DIAG> (since Linux 3.3)
fr: B<NETLINK_SOCK_DIAG> (depuis Linux 3.3)

note: #-#-#-#-#  archlinux: netlink.7.pot (PACKAGE VERSION)  #-#-#-#-# commit 7f1fb60c4fc9fb29fbb406ac8c4cfb4e59e168d6 type: Plain text #-#-#-#-#  debian-buster: netlink.7.pot (PACKAGE VERSION)  #-#-#-#-# #-#-#-#-#  debian-unstable: netlink.7.pot (PACKAGE VERSION)  #-#-#-#-# #-#-#-#-#  fedora-rawhide: net
en: Query information about sockets of various protocol families from the kernel (see B<sock_diag>(7)).
fr: Recherche d’informations sur les sockets de diverses familles de protocoles du noyau (consultez B<sock_diag>(7)).

note: type: TP
en: B<NETLINK_INET_DIAG> (since Linux 2.6.14)
fr: B<NETLINK_INET_DIAG> (depuis Linux 2.6.14)

note: type: Plain text
en: An obsolete synonym for B<NETLINK_SOCK_DIAG>.
fr: Synonyme obsolète pour B<NETLINK_SOCK_DIAG>.

note: type: TP
en: B<NETLINK_NFLOG> (up to and including Linux 3.16)
fr: B<NETLINK_NFLOG> (jusqu’à Linux 3.16 inclus)

note: type: Plain text
en: Netfilter/iptables ULOG.
fr: Messages ULOG de netfilter/iptables.

note: type: TP
en: B<NETLINK_SELINUX> (since Linux 2.6.4)
fr: B<NETLINK_SELINUX> (depuis Linux 2.6.4)

note: type: Plain text
en: SELinux event notifications.
fr: Notifications d'événements SELinux.

note: type: TP
en: B<NETLINK_ISCSI> (since Linux 2.6.15)
fr: B<NETLINK_ISCSI> (depuis Linux 2.6.15)

note: type: TP
en: B<NETLINK_AUDIT> (since Linux 2.6.6)
fr: B<NETLINK_AUDIT> (depuis Linux 2.6.6)

note: FIXME More details on NETLINK_AUDIT needed. type: Plain text
en: Auditing.
fr: Audit.

note: type: TP
en: B<NETLINK_FIB_LOOKUP> (since Linux 2.6.13)
fr: B<NETLINK_FIB_LOOKUP> (depuis Linux 2.6.13)

note: FIXME More details on NETLINK_FIB_LOOKUP needed. type: Plain text
en: Access to FIB lookup from user space.
fr: Accès à la recherche dans la FIB depuis l'espace utilisateur.

note: type: TP
en: B<NETLINK_CONNECTOR> (since Linux 2.6.14)
fr: B<NETLINK_CONNECTOR> (depuis Linux 2.6.14)

note: commit baa293e9544bea71361950d071579f0e4d5713ed type: Plain text
en: Kernel connector.  See I<Documentation/driver-api/connector.rst> (or I</Documentation/connector/connector.*> in kernel 5.2 and earlier)  in the Linux kernel source tree for further information.
fr: «\ Connector\ » du noyau. Pour plus d'informations, consultez I<Documentation/driver-api/connector.rst> (ou I</Documentation/connector/connector.*> dans les noyaux 5.2 et précédents) dans l’arborescence des sources du noyau Linux.

note: type: TP
en: B<NETLINK_NETFILTER> (since Linux 2.6.14)
fr: B<NETLINK_NETFILTER> (depuis Linux 2.6.14)

note: FIXME More details on NETLINK_NETFILTER needed. type: Plain text
en: Netfilter subsystem.
fr: Sous-système netfilter.

note: type: TP
en: B<NETLINK_SCSITRANSPORT> (since Linux 2.6.19)
fr: B<NETLINK_SCSITRANSPORT> (depuis Linux 2.6.19)

note: commit 84314fd4740ad73550c76dee4a9578979d84af48 FIXME More details on NETLINK_SCSITRANSPORT needed. type: Plain text
en: SCSI Transports.
fr: Transports SCSI.

note: type: TP
en: B<NETLINK_RDMA> (since Linux 3.0)
fr: B<NETLINK_RDMA> (depuis Linux 3.0)

note: commit b2cbae2c248776d81cc265ff7d48405b6a4cc463 FIXME More details on NETLINK_RDMA needed. type: Plain text
en: Infiniband RDMA.
fr: RDMA Infiniband.

note: type: TP
en: B<NETLINK_IP6_FW> (up to and including Linux 3.4)
fr: B<NETLINK_IP6_FW> (jusqu’à Linux 3.4 inclus)

note: type: Plain text
en: Transport IPv6 packets from netfilter to user space.  Used by I<ip6_queue> kernel module.
fr: Transport des paquets IPv6 de netfilter vers l'espace utilisateur. Utilisé par le module noyau I<ip6_queue>.

note: type: Plain text
en: DECnet routing messages.
fr: Messages de routage DECnet.

note: type: TP
en: B<NETLINK_KOBJECT_UEVENT> (since Linux 2.6.10)
fr: B<NETLINK_KOBJECT_UEVENT> (depuis Linux 2.6.10)

note: FIXME More details on NETLINK_KOBJECT_UEVENT needed. type: Plain text
en: Kernel messages to user space.
fr: Messages du noyau vers l'espace utilisateur.

note: type: TP
en: B<NETLINK_GENERIC> (since Linux 2.6.15)
fr: B<NETLINK_GENERIC> (depuis Linux 2.6.15)

note: type: Plain text
en: Generic netlink family for simplified netlink usage.
fr: Famille netlink générique pour une utilisation simplifiée de netlink.

note: type: TP
en: B<NETLINK_CRYPTO> (since Linux 3.2)
fr: B<NETLINK_CRYPTO> (depuis Linux 3.2)

note: commit a38f7907b926e4c6c7d389ad96cc38cec2e5a9e9 Author: Steffen Klassert <steffen.klassert@secunet.com> type: Plain text
en: Netlink interface to request information about ciphers registered with the kernel crypto API as well as allow configuration of the kernel crypto API.
fr: Interface netlink pour des requêtes d’information à propos des chiffrements enregistrée avec l’API de chiffrement du noyau de même que permettre la configuration de l’API Crypto du noyau.

note: type: Plain text
en: Netlink messages consist of a byte stream with one or multiple I<nlmsghdr> headers and associated payload.  The byte stream should be accessed only with the standard B<NLMSG_*> macros.  See B<netlink>(3)  for further information.
fr: Les messages netlink consistent en un flux d'octets avec un ou plusieurs en-têtes I<nlmsghdr> et les contenus associés. Le flux d'octets ne doit être accédé qu'à travers les macros standards B<NLMSG_*>. Consultez B<netlink>(3) pour plus d'informations.

note: type: Plain text
en: In multipart messages (multiple I<nlmsghdr> headers with associated payload in one byte stream) the first and all following headers have the B<NLM_F_MULTI> flag set, except for the last header which has the type B<NLMSG_DONE>.
fr: Pour les messages multiparties, (plusieurs en\(hytêtes I<nlmsghdr> avec contenus associés dans un même flux d'octets), tous les en-têtes ont l'attribut B<NLM_F_MULTI> actif, sauf le dernier en-tête qui a le type B<NLMSG_DONE>.

note: type: Plain text
en: After each I<nlmsghdr> the payload follows.
fr: Le contenu suit chaque I<nlmsghdr>.

note: type: Plain text
en: struct nlmsghdr {
        __u32 nlmsg_len;    /* Length of message including header */
        __u16 nlmsg_type;   /* Type of message content */
        __u16 nlmsg_flags;  /* Additional flags */
        __u32 nlmsg_seq;    /* Sequence number */
        __u32 nlmsg_pid;    /* Sender port ID */
    };
fr: struct nlmsghdr {
        __u32 nlmsg_len;    /* Longueur y compris en-tête. */
        __u16 nlmsg_type;   /* Type de contenu du message. */
        __u16 nlmsg_flags;  /* Attributs supplémentaires. */
        __u32 nlmsg_seq;    /* Numéro de séquence. */
        __u32 nlmsg_pid;    /* Identifiant du port émetteur. */
    };

note: type: Plain text
en: I<nlmsg_type> can be one of the standard message types: B<NLMSG_NOOP> message is to be ignored, B<NLMSG_ERROR> message signals an error and the payload contains an I<nlmsgerr> structure, B<NLMSG_DONE> message terminates a multipart message. Error messages get the original request appened, unless the user requests to cap the error message, and get extra error data if requested.
fr: I<nlmsg_type> peut être l'un des types standards de message\ : le message B<NLMSG_NOOP> est à ignorer, le message B<NLMSG_ERROR> indique une erreur et le contenu est une structure I<nlmsgerr>, le message B<NLMSG_DONE> termine un ensemble multipartie. Les messages d’erreur ont la requête originelle en ajout à moins que l’utilisateur demande de limiter le message d’erreur et obtienne des données d’erreur supplémentaires sur demande.

note: type: Plain text
en: struct nlmsgerr {
        int error;        /* Negative errno or 0 for acknowledgements */
        struct nlmsghdr msg;  /* Message header that caused the error */
        /*
         * followed by the message contents unless NETLINK_CAP_ACK was set
         * or the ACK indicates success (error == 0).
         * For example Generic Netlink message with attributes.
         * message length is aligned with NLMSG_ALIGN()
         */
        /*
         * followed by TLVs defined in enum nlmsgerr_attrs
         * if NETLINK_EXT_ACK was set
         */
    };
fr: struct nlmsgerr {
        int error;        /* N° d’erreur négatif ou 0 pour acquittements */
        struct nlmsghdr msg;  /* En-tête de message ayant causé l’erreur */
        /*
         * suivi par le contenu du message à moins que NETLINK_CAP_ACK était
         * établi ou que ACK indique un succès (erreur == 0).
         * Par exemple, message générique netlink avec attributs.
         * La longueur du message est aligné avec NLMSG_ALIGN()
         */
        /*
         * suivie par des TLV définis dans des attributs nlmsgerr
         * si NETLINK_EXT_ACK est indiqué
         */
    };

note: type: Plain text
en: A netlink family usually specifies more message types, see the appropriate manual pages for that, for example, B<rtnetlink>(7)  for B<NETLINK_ROUTE>.
fr: Une famille netlink contient généralement plus de types de message, consultez les pages de manuel appropriées, par exemple B<rtnetlink>(7) pour B<NETLINK_ROUTE>.

note: type: tbl table
en: Standard flag bits in I<nlmsg_flags>
fr: Bits d’attribut standard dans I<nlmsg_flags>

note: type: tbl table
en: Must be set on all request messages.
fr: À positionner pour tous les messages de requête

note: type: tbl table
en: The message is part of a multipart message terminated by
    B<NLMSG_DONE>.
fr: Le message est une partie d’un message multipartie terminé par
    B<NLMSG_DONE>.

note: type: tbl table
en: Request for an acknowledgement on success.
fr: Requête d’un acquittement en cas de réussite.

note: type: tbl table
en: Echo this request.
fr: Répéter cette requête.

note: type: tbl table
en: Additional flag bits for GET requests
fr: Bits d’attribut supplémentaires pour les requêtes GET

note: type: tbl table
en: Return the complete table instead of a single entry.
fr: Renvoyer toute la table plutôt qu'une seule entrée.

note: type: tbl table
en: Return all entries matching criteria passed in message content.
    Not implemented yet.
fr: Renvoyer toutes les entrées correspondant au critère passé dans
    le contenu du message. Non encore implémenté.

note: type: tbl table
en: Return an atomic snapshot of the table.
fr: Renvoyer un instantané atomique de la table.

note: type: tbl table
en: Convenience macro; equivalent to
    (NLM_F_ROOT|NLM_F_MATCH).
fr: Macro pratique ; équivalente à
    (NLM_F_ROOT|NLM_F_MATCH).

note: type: Plain text
en: Note that B<NLM_F_ATOMIC> requires the B<CAP_NET_ADMIN> capability or an effective UID of 0.
fr: Notez que B<NLM_F_ATOMIC> nécessite la capacité B<CAP_NET_ADMIN> ou un UID effectif de zéro.

note: type: tbl table
en: Additional flag bits for NEW requests
fr: Bits d’attribut supplémentaires pour requêtes NEW

note: type: tbl table
en: Replace existing matching object.
fr: Remplacer l'objet correspondant existant.

note: type: tbl table
en: Don't replace if the object already exists.
fr: Ne pas remplacer l'objet s'il existe déjà.

note: type: tbl table
en: Create object if it doesn't already exist.
fr: Créer un objet s'il n'existe pas déjà.

note: type: tbl table
en: Add to the end of the object list.
fr: Ajouter à la fin de la liste d'objets.

note: type: Plain text
en: I<nlmsg_seq> and I<nlmsg_pid> are used to track messages.  I<nlmsg_pid> shows the origin of the message.  Note that there isn't a 1:1 relationship between I<nlmsg_pid> and the PID of the process if the message originated from a netlink socket.  See the B<ADDRESS FORMATS> section for further information.
fr: I<nlmsg_seq> et I<nlmsg_pid> sont utilisés pour suivre les messages. I<nlmsg_pid> montre l'origine du message. Remarquez qu'il n'y a pas de relation d'équivalence entre I<nlmsg_pid> et le PID du processus si le message vient d'un socket netlink. Consultez la section B<FORMAT D'ADRESSE> pour plus d'informations.

note: FIXME Explain more about nlmsg_seq and nlmsg_pid. type: Plain text
en: Both I<nlmsg_seq> and I<nlmsg_pid> are opaque to netlink core.
fr: I<nlmsg_seq> et I<nlmsg_pid> sont opaques pour le noyau de netlink.

note: type: Plain text
en: Netlink is not a reliable protocol.  It tries its best to deliver a message to its destination(s), but may drop messages when an out-of-memory condition or other error occurs.  For reliable transfer the sender can request an acknowledgement from the receiver by setting the B<NLM_F_ACK> flag.  An acknowledgement is an B<NLMSG_ERROR> packet with the error field set to 0.  The application must generate acknowledgements for received messages itself.  The kernel tries to send an B<NLMSG_ERROR> message for every failed packet.  A user process should follow this convention too.
fr: Netlink n'est pas un protocole fiable. Il fait de son mieux pour conduire les messages à destination, mais peut abandonner des messages s'il n'a pas assez de mémoire ou si une erreur se produit. Pour un transfert fiable, l'émetteur peut demander un acquittement du récepteur en activant l'attribut B<NLM_F_ACK>. Un acquittement est un paquet B<NLMSG_ERROR> avec le champ erreur à zéro. L'application doit envoyer des acquittements pour les messages elle-même. Le noyau essaye d'envoyer un message B<NLMSG_ERROR> pour chaque paquet défectueux. Le processus utilisateur devrait suivre aussi cette convention.

note: type: Plain text
en: However, reliable transmissions from kernel to user are impossible in any case.  The kernel can't send a netlink message if the socket buffer is full: the message will be dropped and the kernel and the user-space process will no longer have the same view of kernel state.  It is up to the application to detect when this happens (via the B<ENOBUFS> error returned by B<recvmsg>(2))  and resynchronize.
fr: Cependant, garantir des transmissions fiables entre le noyau et l'espace utilisateur est impossible. Le noyau ne peut pas envoyer de message netlink si le tampon du socket est plein\ : le message sera abandonné et le noyau et le processus utilisateur n'auront pas la même information sur l'état du noyau. C'est à l'application de détecter cette condition (via l'erreur B<ENOBUFS> renvoyée par B<recvmsg>(2)) et de resynchroniser.

note: type: SS
en: Address formats
fr: Formats d'adresse

note: type: Plain text
en: The I<sockaddr_nl> structure describes a netlink client in user space or in the kernel.  A I<sockaddr_nl> can be either unicast (only sent to one peer) or sent to netlink multicast groups (I<nl_groups> not equal 0).
fr: La structure I<sockaddr_nl> décrit un client netlink dans l'espace utilisateur ou dans le noyau. Une I<sockaddr_nl> peut être soit unicast (un seul destinataire) soit envoyée à des groupes multicast netlink (I<nl_groups> différent de 0).

note: type: Plain text
en: struct sockaddr_nl {
        sa_family_t     nl_family;  /* AF_NETLINK */
        unsigned short  nl_pad;     /* Zero */
        pid_t           nl_pid;     /* Port ID */
        __u32           nl_groups;  /* Multicast groups mask */
    };
fr: struct sockaddr_nl {
        sa_family_t     nl_family;  /* AF_NETLINK */
        unsigned short  nl_pad;     /* Zéro */
        pid_t           nl_pid;     /* ID de port */
        __u32           nl_groups;  /* Masque de groupes multicast */
    };

note: type: Plain text
en: I<nl_pid> is the unicast address of netlink socket.  It's always 0 if the destination is in the kernel.  For a user-space process, I<nl_pid> is usually the PID of the process owning the destination socket.  However, I<nl_pid> identifies a netlink socket, not a process.  If a process owns several netlink sockets, then I<nl_pid> can be equal to the process ID only for at most one socket.  There are two ways to assign I<nl_pid> to a netlink socket.  If the application sets I<nl_pid> before calling B<bind>(2), then it is up to the application to make sure that I<nl_pid> is unique.  If the application sets it to 0, the kernel takes care of assigning it.  The kernel assigns the process ID to the first netlink socket the process opens and assigns a unique I<nl_pid> to every netlink socket that the process subsequently creates.
fr: I<nl_pid> est l'adresse unicast du socket netlink. Elle vaut toujours zéro si la destination est dans le noyau. Pour un processus utilisateur, I<nl_pid> est généralement le PID du processus auquel appartient le socket de destination. Cependant, I<nl_pid> identifie un socket netlink, pas un processus. Si un processus a plusieurs sockets netlink, I<nl_pid> ne peut être égal au PID de ce processus que pour un socket au plus. Il y a deux façons d'assigner I<nl_pid> à un socket netlink. Si l'application définit I<nl_pid> avant d'appeler B<bind>(2), c'est à l'application de s'assurer que I<nl_pid> est unique. Si l'application le définit à zéro, le noyau se charge de lui donner une valeur. Le noyau donne le PID au premier socket netlink ouvert par le processus et donne une valeur de I<nl_pid> unique à chaque socket netlink créé par la suite.

note: commit d629b836d151d43332492651dd841d32e57ebe3b type: Plain text
en: I<nl_groups> is a bit mask with every bit representing a netlink group number.  Each netlink family has a set of 32 multicast groups.  When B<bind>(2)  is called on the socket, the I<nl_groups> field in the I<sockaddr_nl> should be set to a bit mask of the groups which it wishes to listen to.  The default value for this field is zero which means that no multicasts will be received.  A socket may multicast messages to any of the multicast groups by setting I<nl_groups> to a bit mask of the groups it wishes to send to when it calls B<sendmsg>(2)  or does a B<connect>(2).  Only processes with an effective UID of 0 or the B<CAP_NET_ADMIN> capability may send or listen to a netlink multicast group.  Since Linux 2.6.13, messages can't be broadcast to multiple groups.  Any replies to a message received for a multicast group should be sent back to the sending PID and the multicast group.  Some Linux kernel subsystems may additionally allow other users to send and/or receive messages.  As at Linux 3.0, the B<NETLINK_KOBJECT_UEVENT>, B<NETLINK_GENERIC>, B<NETLINK_ROUTE>, and B<NETLINK_SELINUX> groups allow other users to receive messages.  No groups allow other users to send messages.
fr: I<nl_groups> est un masque de bits représentant un ensemble de groupes netlink. Chaque famille netlink a un ensemble de 32 groupes multicast. Quand on appelle B<bind>(2) sur le socket, le champ I<nl_groups> de la structure I<sockaddr_nl> doit contenir un masque de bits des groupes que l'on désire écouter. La valeur par défaut pour ce champ est zéro, ce qui signifie qu'aucun groupe multicast ne sera reçu. Un socket peut envoyer un message sur n'importe quel groupe multicast en remplissant le champ I<nl_groups> avec un masque de bits des groupes visés, lors de l'appel B<sendmsg>(2) ou lors du B<connect>(2). Seuls les processus avec un UID effectif de zéro ou ayant la capacité B<CAP_NET_ADMIN> peuvent envoyer ou recevoir sur un groupe multicast netlink. Depuis Linux 2.6.13, les messages ne peuvent être envoyés en broadcast vers plusieurs groupes. Toute réponse pour un message reçu sur un groupe multicast doit être renvoyée au PID émetteur et au groupe multicast. Certains sous-systèmes du noyau Linux peuvent en plus autoriser d'autres utilisateurs à envoyer des messages. Dans Linux 3.0, les groupes B<NETLINK_KOBJECT_UEVENT>, B<NETLINK_GENERIC>, B<NETLINK_ROUTE> et B<NETLINK_SELINUX> autorisent d'autres utilisateurs à recevoir des messages. Aucun groupe ne permet à d'autres utilisateurs d'envoyer des messages.

note: type: SS
en: Socket options
fr: Options de socket

note: type: Plain text
en: To set or get a netlink socket option, call B<getsockopt>(2)  to read or B<setsockopt>(2)  to write the option with the option level argument set to B<SOL_NETLINK>.  Unless otherwise noted, I<optval> is a pointer to an I<int>.
fr: Pour définir ou obtenir une option le socket netlink, appeler B<getsockopt>(2) pour lire ou B<setsockopt>(2) pour écrire l’argument d’option de niveau défini à B<SOL_NETLINK>. À moins d’être noté autre part, I<optval> est un pointeur vers un I<int>.

note: type: TP
en: B<NETLINK_PKTINFO> (since Linux 2.6.14)
fr: B<NETLINK_PKTINFO> (depuis Linux 2.6.14)

note: commit 9a4595bc7e67962f13232ee55a64e063062c3a99 Author: Patrick McHardy <kaber@trash.net> type: Plain text
en: Enable B<nl_pktinfo> control messages for received packets to get the extended destination group number.
fr: Activer les messages de contrôle B<nl_pktinfo> pour recevoir des paquets pour obtenir le numéro de groupe de destination étendu.

note: type: TP
en: B<NETLINK_ADD_MEMBERSHIP>,\ B<NETLINK_DROP_MEMBERSHIP> (since Linux 2.6.14)
fr: B<NETLINK_ADD_MEMBERSHIP>,\ B<NETLINK_DROP_MEMBERSHIP> (depuis Linux 2.6.14)

note: commit 9a4595bc7e67962f13232ee55a64e063062c3a99 Author: Patrick McHardy <kaber@trash.net> type: Plain text
en: Join/leave a group specified by I<optval>.
fr: Joindre ou quitter un groupe spécifié par I<optval>.

note: type: TP
en: B<NETLINK_LIST_MEMBERSHIPS> (since Linux 4.2)
fr: B<NETLINK_LIST_MEMBERSHIPS> (depuis Linux 4.2)

note: commit b42be38b2778eda2237fc759e55e3b698b05b315 Author: David Herrmann <dh.herrmann@gmail.com> type: Plain text
en: Retrieve all groups a socket is a member of.  I<optval> is a pointer to B<__u32> and I<optlen> is the size of the array.  The array is filled with the full membership set of the socket, and the required array size is returned in I<optlen>.
fr: Retrouver tous les groupes auxquels un socket est membre. I<optval> est un pointeur vers B<__u32> et I<optlen> est la taille du tableau. Le tableau est rempli avec l’ensemble complet d’appartenances du socket et la taille de tableau nécessaire est renvoyée dans I<optlen>.

note: type: TP
en: B<NETLINK_BROADCAST_ERROR> (since Linux 2.6.30)
fr: B<NETLINK_BROADCAST_ERROR> (depuis Linux 2.6.30)

note: commit be0c22a46cfb79ab2342bb28fde99afa94ef868e Author: Pablo Neira Ayuso <pablo@netfilter.org> type: Plain text
en: When not set, B<netlink_broadcast()> only reports B<ESRCH> errors and silently ignore B<ENOBUFS> errors.
fr: Lorsque non défini, B<netlink_broadcast()> rapporte seulement les erreurs B<ESRCH> et ignore silencieusement les erreurs B<ENOBUFS>.

note: type: TP
en: B<NETLINK_NO_ENOBUFS> (since Linux 2.6.30)
fr: B<NETLINK_NO_ENOBUFS> (depuis Linux 2.6.30)

note: commit 38938bfe3489394e2eed5e40c9bb8f66a2ce1405 Author: Pablo Neira Ayuso <pablo@netfilter.org> type: Plain text
en: This flag can be used by unicast and broadcast listeners to avoid receiving B<ENOBUFS> errors.
fr: Cet indicateur peut être utilisé par les modules d’écoute (listener) unicast et broadcast pour éviter de recevoir des erreurs B<ENOBUFS>.

note: type: TP
en: B<NETLINK_LISTEN_ALL_NSID> (since Linux 4.2)
fr: B<NETLINK_LISTEN_ALL_NSID> (depuis Linux 4.2)

note: commit 59324cf35aba5336b611074028777838a963d03b Author: Nicolas Dichtel <nicolas.dichtel@6wind.com> type: Plain text
en: When set, this socket will receive netlink notifications from all network namespaces that have an I<nsid> assigned into the network namespace where the socket has been opened.  The I<nsid> is sent to user space via an ancillary data.
fr: Lorsque défini, ce socket recevra des notifications netlink de tous les espaces de noms réseau qui ont un I<nsid> assigné dans l’espace de noms réseau où le socket a été ouvert. Le I<nsid> est envoyé vers l’espace utilisateur à l’aide de données auxiliaires.

note: type: TP
en: B<NETLINK_CAP_ACK> (since Linux 4.3)
fr: B<NETLINK_CAP_ACK> (depuis Linux 4.3)

note: commit 0a6a3a23ea6efde079a5b77688541a98bf202721 Author: Christophe Ricard <christophe.ricard@gmail.com> type: Plain text
en: The kernel may fail to allocate the necessary room for the acknowledgement message back to user space.  This option trims off the payload of the original netlink message.  The netlink message header is still included, so the user can guess from the sequence number which message triggered the acknowledgement.
fr: Le noyau peut échouer à allouer la place nécessaire pour le message d’acquittement dans l’espace utilisateur. Cette option tronque le contenu du message netlink originel. L’en-tête du message netlink est toujours inclus, aussi l’utilisateur peut estimer à partir du numéro de séquence quel message a déclenché l’acquittement.

note: type: Plain text
en: The socket interface to netlink first appeared Linux 2.2.
fr: L'interface socket pour netlink est une nouveauté dans Linux 2.2.

note: type: Plain text
en: Linux 2.0 supported a more primitive device-based netlink interface (which is still available as a compatibility option).  This obsolete interface is not described here.
fr: Linux 2.0 avait une interface netlink plus primitive, basée sur un périphérique caractère (toujours disponible sous forme d’option de compatibilité). Cette interface obsolète n'est pas décrite ici.

note: type: Plain text
en: It is often better to use netlink via I<libnetlink> or I<libnl> than via the low-level kernel interface.
fr: Il est souvent plus facile d'utiliser netlink à travers la bibliothèque I<libnetlink> ou I<libnl> qu’à l’aide de l'interface bas niveau du noyau.

note: type: SH
en: BUGS
fr: BOGUES

note: type: Plain text
en: This manual page is not complete.
fr: Cette page de manuel n'est pas complète.

note: type: SH
en: EXAMPLES
fr: EXEMPLES

note: type: Plain text
en: The following example creates a B<NETLINK_ROUTE> netlink socket which will listen to the B<RTMGRP_LINK> (network interface create/delete/up/down events) and B<RTMGRP_IPV4_IFADDR> (IPv4 addresses add/delete events) multicast groups.
fr: L'exemple suivant crée un socket netlink B<NETLINK_ROUTE> qui écoute les groupes multicast B<RTMGRP_LINK> (événements de création/suppression/configuration/déconfiguration d'interface réseau) et B<RTMGRP_IPV4_IFADDR> (événements d'ajout/suppression d'adresses IPv4).

note: type: Plain text
en: The next example demonstrates how to send a netlink message to the kernel (pid 0).  Note that the application must take care of message sequence numbers in order to reliably track acknowledgements.
fr: L'exemple suivant montre comment envoyer un message netlink au noyau (PID 0). Notez que l'application doit gérer les numéros de séquence des messages pour prendre en compte correctement les acquittements.

note: type: Plain text
en: struct nlmsghdr *nh;    /* The nlmsghdr with payload to send */
    struct sockaddr_nl sa;
    struct iovec iov = { nh, nh-E<gt>nlmsg_len };
    struct msghdr msg;
fr: struct nlmsghdr *nh;    /* Le nlmsghdr avec contenu à envoyer */
    struct sockaddr_nl sa;
    struct iovec iov = { nh, nh-E<gt>nlmsg_len };
    struct msghdr msg;

note: type: Plain text
en: msg = { &sa, sizeof(sa), &iov, 1, NULL, 0, 0 };
    memset(&sa, 0, sizeof(sa));
    sa.nl_family = AF_NETLINK;
    nh-E<gt>nlmsg_pid = 0;
    nh-E<gt>nlmsg_seq = ++sequence_number;
    /* Request an ack from kernel by setting NLM_F_ACK */
    nh-E<gt>nlmsg_flags |= NLM_F_ACK;
fr: msg = { &sa, sizeof(sa), &iov, 1, NULL, 0, 0 };
    memset(&sa, 0, sizeof(sa));
    sa.nl_family = AF_NETLINK;
    nh-E<gt>nlmsg_pid = 0;
    nh-E<gt>nlmsg_seq = ++sequence_number;
    /* Requête d’un acquittement par le noyau en réglant NLM_F_ACK */
    nh-E<gt>nlmsg_flags |= NLM_F_ACK;

note: type: Plain text
en: And the last example is about reading netlink message.
fr: Le dernier exemple montre comment lire un message netlink.

note: type: Plain text
en: int len;
    /* 8192 to avoid message truncation on platforms with
       page size E<gt> 4096 */
    struct nlmsghdr buf[8192/sizeof(struct nlmsghdr)];
    struct iovec iov = { buf, sizeof(buf) };
    struct sockaddr_nl sa;
    struct msghdr msg;
    struct nlmsghdr *nh;
fr: int len;
    /* 8192 pour éviter la troncature sur les plateformes avec
       une taille de page E<gt> 4096 */
    struct nlmsghdr buf[8192/sizeof(struct nlmsghdr)];
    struct iovec iov = { buf, sizeof(buf) };
    struct sockaddr_nl sa;
    struct msghdr msg;
    struct nlmsghdr *nh;

note: type: Plain text
en: for (nh = (struct nlmsghdr *) buf; NLMSG_OK (nh, len);
         nh = NLMSG_NEXT (nh, len)) {
        /* The end of multipart message */
        if (nh-E<gt>nlmsg_type == NLMSG_DONE)
            return;
fr: for (nh = (struct nlmsghdr *) buf; NLMSG_OK (nh, len);
         nh = NLMSG_NEXT (nh, len)) {
        /* La fin d’un message multipartie */
        if (nh-E<gt>nlmsg_type == NLMSG_DONE)
            return;

note: type: Plain text
en:     if (nh-E<gt>nlmsg_type == NLMSG_ERROR)
            /* Do some error handling */
        ...
fr:     if (nh-E<gt>nlmsg_type == NLMSG_ERROR)
            /* Réaliser une certaine gestion d’erreur */
        ...

note: type: Plain text
en:     /* Continue with parsing payload */
        ...
    }
fr:     /* Continuer par l’analyse du contenu */
        ...
    }

note: type: SH
en: SEE ALSO
fr: VOIR AUSSI

note: type: Plain text
en: E<.UR ftp://ftp.inr.ac.ru\:/ip-routing\:/iproute2*> information about libnetlink E<.UE>
fr: E<.UR ftp://ftp.inr.ac.ru\:/ip-routing\:/iproute2*> Informations sur libnetlinkE<.UE>

note: type: Plain text
en: E<.UR http://www.infradead.org\:/\(titgr\:/libnl/> information about libnl E<.UE>
fr: E<.UR http://www.infradead.org\:/\(titgr\:/libnl/> Informations sur libnl E<.UE>

note: type: Plain text
en: RFC 3549 "Linux Netlink as an IP Services Protocol"
fr: RFC 3549 «\ Linux Netlink as an IP Services Protocol\ »

note: type: Plain text
en: This page is part of release 5.12 of the Linux I<man-pages> project.  A description of the project, information about reporting bugs, and the latest version of this page, can be found at \%https://www.kernel.org/doc/man-pages/.
fr: Cette page fait partie de la publication 5.12 du projet I<man-pages> Linux. Une description du projet et des instructions pour signaler des anomalies et la dernière version de cette page peuvent être trouvées à l'adresse \%https://www.kernel.org/doc/man-pages/.

note: type: TH
en: 2017-09-15
fr: 15 septembre 2017

note: type: Plain text
en: Receives routing and link updates and may be used to modify the routing tables (both IPv4 and IPv6), IP addresses, link parameters, neighbor setups, queueing disciplines, traffic classes and packet classifiers (see B<rtnetlink>(7)).
fr: Réception des modifications de routage et de lien et utilisation possible pour mettre à jour les tables de routage (IPv4 et IPv6), les adresses IP, les paramètres de lien, les configurations de voisinage, les politiques d'ordonnancement, les classes de trafic et les classificateurs de paquets (consultez B<rtnetlink>(7)).

note: commit 7f1fb60c4fc9fb29fbb406ac8c4cfb4e59e168d6 type: Plain text
en: A synonym for B<NETLINK_INET_DIAG>.
fr: Synonyme pour B<NETLINK_INET_DIAG>

note: type: Plain text
en: Kernel connector.  See I<Documentation/connector/*> in the Linux kernel source tree for further information.
fr: «\ Connector\ » du noyau. Pour plus d'informations, voir I<Documentation/connector/*> dans les sources du noyau Linux.

note: type: Plain text
en: I<nlmsg_type> can be one of the standard message types: B<NLMSG_NOOP> message is to be ignored, B<NLMSG_ERROR> message signals an error and the payload contains an I<nlmsgerr> structure, B<NLMSG_DONE> message terminates a multipart message.
fr: I<nlmsg_type> peut être l'un des types standards de message\ : le message B<NLMSG_NOOP> est à ignorer, le message B<NLMSG_ERROR> indique une erreur et le contenu est une structure I<nlmsgerr>, le message B<NLMSG_DONE> termine un ensemble multipartie.

note: type: Plain text
en: struct nlmsgerr {
        int error;        /* Negative errno or 0 for acknowledgements */
        struct nlmsghdr msg;  /* Message header that caused the error */
    };
fr: struct nlmsgerr {
        int error;            /* N° d’erreur négatif ou 0 pour acquittement */
        struct nlmsghdr msg;  /* En\(hytête du message causant l'erreur */
    };

note: type: tbl table
en: Request for an acknowledgment on success.
fr: Envoyer un acquittement en cas de réussite.

note: type: tbl table
en: Convenience macro; equivalent to
fr: Macro pratique, équivalente à

note: type: Plain text
en: Netlink is not a reliable protocol.  It tries its best to deliver a message to its destination(s), but may drop messages when an out-of-memory condition or other error occurs.  For reliable transfer the sender can request an acknowledgement from the receiver by setting the B<NLM_F_ACK> flag.  An acknowledgment is an B<NLMSG_ERROR> packet with the error field set to 0.  The application must generate acknowledgements for received messages itself.  The kernel tries to send an B<NLMSG_ERROR> message for every failed packet.  A user process should follow this convention too.
fr: Netlink n'est pas un protocole fiable. Il fait de son mieux pour conduire les messages à destination, mais peut abandonner des messages s'il n'a pas assez de mémoire ou si une erreur se produit. Pour un transfert fiable, l'émetteur peut demander un acquittement du récepteur en activant l'attribut B<NLM_F_ACK>. Un acquittement est un paquet B<NLMSG_ERROR> avec le champ erreur à zéro. L'application doit envoyer des acquittements pour les messages elle-même. Le noyau essaye d'envoyer un message B<NLMSG_ERROR> pour chaque paquet échoué. Le processus utilisateur devrait suivre aussi cette convention.

note: type: TP
en: B<NETLINK_CAP_ACK> (since Linux 4.2)
fr: B<NETLINK_CAP_ACK> (depuis Linux 4.2)

note: commit 0a6a3a23ea6efde079a5b77688541a98bf202721 Author: Christophe Ricard <christophe.ricard@gmail.com> type: Plain text
en: The kernel may fail to allocate the necessary room for the acknowledgment message back to user space.  This option trims off the payload of the original netlink message.  The netlink message header is still included, so the user can guess from the sequence number which message triggered the acknowledgment.
fr: Le noyau peut échouer à allouer la place nécessaire pour le message d’acquittement dans l’espace utilisateur. Cette option tronque le contenu du message netlink originel. L’en-tête du message netlink est toujours inclus, aussi l’utilisateur peut estimer à partir du numéro de séquence quel message a déclenché l’acquittement.

note: type: SH
en: EXAMPLE
fr: EXEMPLE

note: type: Plain text
en: int len;
    char buf[8192];     /* 8192 to avoid message truncation on
                           platforms with page size E<gt> 4096 */
    struct iovec iov = { buf, sizeof(buf) };
    struct sockaddr_nl sa;
    struct msghdr msg;
    struct nlmsghdr *nh;
fr: int len;
    char buf[8192];     /* 8192 pour éviter la troncature du message sur les
                           plateformes avec une taille de page E<gt> 4096 */
    struct iovec iov = { buf, sizeof(buf) };
    struct sockaddr_nl sa;
    struct msghdr msg;
    struct nlmsghdr *nh;

note: type: Plain text
en: E<.UR http://www.infradead.org\:/~tgr\:/libnl/> information about libnl E<.UE>
fr: E<.UR http://www.infradead.org\:/~tgr\:/libnl/> Informations sur libnl E<.UE>

note: type: Plain text
en: This page is part of release 5.04 of the Linux I<man-pages> project.  A description of the project, information about reporting bugs, and the latest version of this page, can be found at \%https://www.kernel.org/doc/man-pages/.
fr: Cette page fait partie de la publication 5.04 du projet I<man-pages> Linux. Une description du projet et des instructions pour signaler des anomalies et la dernière version de cette page peuvent être trouvées à l'adresse \%https://www.kernel.org/doc/man-pages/.

note: type: TH
en: 2020-06-09
fr: 9 juin 2020

note: type: Plain text
en: This page is part of release 5.10 of the Linux I<man-pages> project.  A description of the project, information about reporting bugs, and the latest version of this page, can be found at \%https://www.kernel.org/doc/man-pages/.
fr: Cette page fait partie de la publication 5.10 du projet I<man-pages> Linux. Une description du projet et des instructions pour signaler des anomalies et la dernière version de cette page peuvent être trouvées à l'adresse \%https://www.kernel.org/doc/man-pages/.

note: commit be0c22a46cfb79ab2342bb28fde99afa94ef868e Author: Pablo Neira Ayuso <pablo@netfilter.org> type: Plain text
en: When not set, B<netlink_broadcast()> only reports B<ESRCH> errors and silently ignore B<NOBUFS> errors.
fr: Lorsque non défini, B<netlink_broadcast()> rapporte seulement les erreurs B<ESRCH> et ignore silencieusement les erreurs B<NOBUFS>.

note: type: Plain text
en: This page is part of release 4.16 of the Linux I<man-pages> project.  A description of the project, information about reporting bugs, and the latest version of this page, can be found at \%https://www.kernel.org/doc/man-pages/.
fr: Cette page fait partie de la publication 4.16 du projet I<man-pages> Linux. Une description du projet et des instructions pour signaler des anomalies et la dernière version de cette page peuvent être trouvées à l'adresse \%https://www.kernel.org/doc/man-pages/.
