.\" This man page is Copyright (C) 1999 Andi Kleen . .\" Permission is granted to distribute possibly modified copies .\" of this page provided the header is included verbatim, .\" and in case of nontrivial modification author and date .\" of the modification is added to the header. .\" $Id: rtnetlink.3,v 1.2 1999/05/18 10:35:10 freitag Exp $ .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH RTNETLINK 3 "24 mars 2012" GNU "Manuel du programmeur Linux" .SH NOM rtnetlink \- Macros manipulant des messages rtnetlink .SH SYNOPSIS \fB#include \fP .br \fB#include \fP .br \fB#include \fP .br \fB#include \fP \fBrtnetlink_socket = socket(AF_NETLINK, int \fP\fItype_socket\fP\fB, NETLINK_ROUTE);\fP .sp \fBint RTA_OK(struct rtattr *\fP\fIrta\fP\fB, int \fP\fIrtabuflen\fP\fB);\fP .sp \fBvoid *RTA_DATA(struct rtattr *\fP\fIrta\fP\fB);\fP .sp \fBunsigned int RTA_PAYLOAD(struct rtattr *\fP\fIrta\fP\fB);\fP .sp \fBstruct rtattr *RTA_NEXT(struct rtattr *\fP\fIrta\fP\fB, unsigned int \fP\fIrtabuflen\fP\fB);\fP .sp \fBunsigned int RTA_LENGTH(unsigned int \fP\fIlength\fP\fB);\fP .sp \fBunsigned int RTA_SPACE(unsigned int \fP\fIlength\fP\fB);\fP .SH DESCRIPTION Tous les messages \fBrtnetlink\fP(7) consistent en un en\-tête de message \fBnetlink\fP(7) et des attributs. Ceux\-ci ne devraient être manipulés que par les macros fournies ici. .PP \fBRTA_OK(\fP\fIrta\fP\fB, \fP\fIattrlen\fP\fB)\fP renvoie vrai si \fIrta\fP pointe sur un attribut de routage valide\ ; \fIattrlen\fP est la longueur courante du tampon d'attributs. Si elle renvoie 0, vous devez supposer qu'il n'y a pas d'autre attributs dans le message, même si \fIattrlen\fP n'est pas nulle. .PP \fBRTA_DATA(\fP\fIrta\fP\fB)\fP renvoie un pointeur sur le début des données de cet attribut. .PP \fBRTA_PAYLOAD(\fP\fIrta\fP\fB)\fP renvoie la longueur des données de cet attribut. .PP \fBRTA_NEXT(\fP\fIrta\fP\fB, \fP\fIattrlen\fP\fB)\fP renvoie le premier attribut après \fIrta\fP. Un appel à cette macro met à jour \fIattrlen\fP. Vous devriez utiliser \fBRTA_OK\fP pour vérifier la validité du pointeur retourné. .PP \fBRTA_LENGTH(\fP\fIlen\fP\fB)\fP renvoie la longueur requise pour \fIlen\fP octets de données plus l'en\-tête. .PP \fBRTA_SPACE(\fP\fIlen\fP\fB)\fP renvoie la quantité de mémoire nécessaire pour un message composé de \fIlen\fP octets de données. .SH CONFORMITÉ Ces macros sont des extensions de Linux non standard. .SH BOGUES Cette page de manuel est incomplète. .SH EXEMPLE .\" FIXME ? would be better to use libnetlink in the EXAMPLE code here Créer un message rtnetlink pour choisir le MTU d'un périphérique. .nf #include ... struct { struct nlmsghdr nh; struct ifinfomsg if; char attrbuf[512]; } req; struct rtattr *rta; unsigned int mtu = 1000; int rtnetlink_sk = socket(AF_NETLINK, SOCK_DGRAM, NETLINK_ROUTE); memset(&req, 0, sizeof(req)); req.nh.nlmsg_len = NLMSG_LENGTH(sizeof(struct ifinfomsg)); req.nh.nlmsg_flags = NLM_F_REQUEST; req.nh.nlmsg_type = RTM_NEWLINK; req.if.ifi_family = AF_UNSPEC; req.if.ifi_index = INTERFACE_INDEX; req.if.ifi_change = 0xffffffff; /* ??? */ rta = (struct rtattr *)(((char *) &req) + NLMSG_ALIGN(req.nh.nlmsg_len)); rta\->rta_type = IFLA_MTU; rta\->rta_len = RTA_LENGTH(sizeof(unsigned int)); req.n.nlmsg_len = NLMSG_ALIGN(req.nh.nlmsg_len) + RTA_LENGTH(sizeof(mtu)); memcpy(RTA_DATA(rta), &mtu, sizeof(mtu)); send(rtnetlink_sk, &req, req.nh.nlmsg_len); .fi .SH "VOIR AUSSI" \fBnetlink\fP(3), \fBnetlink\fP(7), \fBrtnetlink\fP(7) .SH COLOPHON Cette page fait partie de la publication 3.44 du projet \fIman\-pages\fP Linux. Une description du projet et des instructions pour signaler des anomalies peuvent être trouvées à l'adresse . .SH TRADUCTION Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a par l'équipe de traduction francophone au sein du projet perkamon . .PP Thierry Vignaud (2002), Alain Portal \ (2006). Nicolas François et l'équipe francophone de traduction de Debian\ (2006-2009). .PP Veuillez signaler toute erreur de traduction en écrivant à ou par un rapport de bogue sur le paquet \fBmanpages\-fr\fR. .PP Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande «\ \fBman\ \-L C\fR \fI
\fR\ \fI\fR\ ».