netlink
Macros pour netlink.
1. netlink.3.man
Manpage of NETLINK
NETLINK
Section: Manuel du programmeur Linux (3)Updated: 14 mai 1999
Index Return to Main Contents
NOM
netlink - Macros pour netlink.SYNOPSIS
#include <asm/types.h>
#include <linux/netlink.h>
int NLMSG_ALIGN(size_t taille);
int NLMSG_LENGTH(size_t taille);
int NLMSG_SPACE(size_t taille);
void *NLMSG_DATA(struct nlmsghdr *nlh);
struct nlmsghdr *NLMSG_NEXT(struct nlmsghdr *nlh, int taille);
int NLMSG_OK(struct nlmsghdr *nlh, int taille);
int NLMSG_PAYLOAD(struct nlmsghdr *nlh, int taille);
DESCRIPTION
<linux/netlink.h> définit plusieurs macros standards pour accéder ou créer un datagramme netlink. Elles sont similaires dans leurs principes aux macros définies dans cmsg(3) pour les données auxiliaires. Le tampon passé à une socket netlink ne devrait pas être manipulé autrement que par ces macros.- NLMSG_ALIGN
-
- Arrondit la taille du message netlink pour avoir un alignement correct.
- NLMSG_LENGTH
- Prend la taille de message comme argument et retourne la taille alignée à stocker dans le champ nlmsg_len de nlmsghdr.
- NLMSG_SPACE
- Renvoie le nombre d'octets qu'un message netlink occuperait pour la quantité de données indiquée.
- NLMSG_DATA
- Retourne un pointeur sur l'objet associé au nlmsghdr passé.
- NLMSG_NEXT Récupère la structure nlmsghdr suivante d'un message multiple. L'appelant doit vérifier que le nlmsghdr en cours n'a pas l'attribut NLMSG_DONE positionné - cette fonction ne retourne pas NULL à la fin. Le paramètre taille est une lvalue contenant la taille restante du tampon du message. La macro diminue cette taille de celle de l'en-tête de message.
- NLMSG_OK
- Renvoie vrai si le message netlink n'est pas tronqué et prêt à être traité.
- NLMSG_PAYLOAD
- Retourne la taille des données associées à nlmsghdr.
NOTES
Il vaut souvent mieux utiliser la bibliothèque netlink via libnetlink que par les interfaces de bas niveau du noyau.VOIR AUSSI
netlink(7)et ftp://ftp.inr.ac.ru/ip-routing/iproute2* pour libnetlink.
TRADUCTION
Ce document est une traduction réalisée par Thierry Vignaud <tvignaud AT mandriva DOT com> en 1999 et révisée le 11 juillet 2006.
L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=en man 3 netlink ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.
Index
This document was created by man2html using the manual pages.
Time: 00:22:59 GMT, November 20, 2008
2. netlink.7.man
Manpage of NETLINK
NETLINK
Section: Manuel de l'administrateur Linux (7)Updated: 27 décembre 2005
Index Return to Main Contents
NOM
netlink, PF_NETLINK - Communication entre noyau et utilisateur.SYNOPSIS
#include <asm/types.h>
#include <sys/socket.h>
#include <linux/netlink.h>
netlink_socket = socket(PF_NETLINK, socket_type, netlink_family);
DESCRIPTION
Netlink sert à transférer des informations entre le noyau et les processus de l'espace utilisateur. Il consiste en une interface basée sur les sockets standards pour les processus utilisateur et d'une API interne pour les modules du noyau. Cette interface n'est pas documentée dans cette page de manuel. Il existe aussi une interface obsolète via un périphérique caractère netlink, réservée pour compatibilité et non documentée ici.Netlink est un service orienté datagramme. Les deux types SOCK_RAW et SOCK_DGRAM sont des valeurs possibles pour socket_type. Toutefois, le protocole netlink ne distingue pas les sockets raw et datagrammes.
netlink_family sélectionne le module du noyau ou le groupe netlink avec qui communiquer. Les familles netlink actuellement affectées sont :
- NETLINK_ROUTE
- Reçoit les modifications de routage et de liens et peut être utilisé pour mettre à jour les tables de routage (IPv4 et IPv6), les adresses IP, les paramètres de liens, les configurations voisines, les disciplines de mise en file d'attente, les classes de trafic, et les classificateurs de paquets (voir rtnetlink(7)).
- NETLINK_W1
- Messages de sous-systèmes 1-fil.
- NETLINK_ARPD
- Pour gérer la table Arp dans l'espace utilisateur.
- NETLINK_USERSOCK
- Réservé pour les futurs protocoles dans l'espace utilisateur.
- NETLINK_FIREWALL
- Transport de paquets IPv4 de netfilter vers l'espace utilisateur. Utilisé par le module noyau ip_queue.
- NETLINK_INET_DIAG
- Surveillance de socket.
- NETLINK_NFLOG
- Netfilter/iptables ULOG.
- NETLINK_XFRM
- IPsec.
- NETLINK_SELINUX
- Notifications d'événements SELinux.
- NETLINK_AUDIT
- Audit.
- NETLINK_FIB_LOOKUP
- Accès à la consultation FIB de l'espace utilisateur.
- NETLINK_CONNECTOR
- Connecteur noyau. Voir Documentation/connector/* dans les sources du noyau pour plus d'informations.
- NETLINK_NETFILTER
- Sous-système Netfilter.
- NETLINK_IP6_FW
- Transports des paquets IPv6 de netfilter vers l'espace utilisateur. Utilisé par le module noyau ip6_queue.
- NETLINK_DNRTMSG
- Routage DECnet des messages.
- NETLINK_KOBJECT_UEVENT
- Messages noyau vers espace utilisateur.
- NETLINK_GENERIC
- Famille générique netlink pour simplifier l'utilisation netlink.
Les messages netlink consistent en un flux d'octets avec un ou plusieurs en-têtes nlmsghdr et les contenus associés. Le flux d'octets ne doit être accédé qu'à travers les macros standards NLMSG_*. Voir netlink(3) pour plus d'informations.
Dans les messages multi-parties (en-têtes nlmsghdr multiples avec données utiles associées dans un flux d'octets) le premier et tous les en-têtes suivants ont l'attribut NLM_F_MULTI actif, sauf le dernier en-tête qui a le type NLMSG_DONE.
Après chaque nlmsghdr, les données utiles suivent.
struct nlmsghdr {
__u32 nlmsg_len; /* Longueur y compris en-tête */
__u16 nlmsg_type; /* Contenu message */
__u16 nlmsg_flags; /* Attributs supplémentaires */
__u32 nlmsg_seq; /* Numéro de séquence */
__u32 nlmsg_pid; /* PID du créateur socket */
};
nlmsg_type peut être l'un des types standards de message : NLMSG_NOOP message à ignorer, NLMSG_ERROR message indiquant une erreur, son contenu est une structure nlmsgerr, NLMSG_DONE message final d'un ensemble multiparties.
struct nlmsgerr
{
int error; /* errno négatif ou 0 pour acquit. */
struct nlmsghdr msg; /* en-tête message causant l'erreur */
};
Une famille netlink contient des types supplémentaires de message, voir la page de manuel appropriée, par exemple rtnetlink(7) pour NETLINK_ROUTE.
Attributs standards dans nlmsg_flags<
