Provided by: manpages-fr_2.80.1-1_all bug

NOM

       netdevice - Accès bas-niveau aux périphériques réseau sous Linux.

SYNOPSIS

       #include <sys/ioctl.h>
       #include <net/if.h>

DESCRIPTION

       Cette  page  de  manuel  décrit  l’interface  des  socket permettant de
       configurer les périphériques réseau.

       Linux supporte des ioctls standard pour  configurer  les  périphériques
       réseau.  Il  servent  sur  n’importe quel descripteur de socket, quelle
       qu’en soit la famille ou le type. Ils utilisent une structure ifreq :

           struct ifreq {
               char ifr_name[IFNAMSIZ]; /* nom interface */
               union {
                   struct sockaddr ifr_addr;
                   struct sockaddr ifr_dstaddr;
                   struct sockaddr ifr_broadaddr;
                   struct sockaddr ifr_netmask;
                   struct sockaddr ifr_hwaddr;
                   short           ifr_flags;
                   int             ifr_ifindex;
                   int             ifr_metric;
                   int             ifr_mtu;
                   struct ifmap    ifr_map;
                   char            ifr_slave[IFNAMSIZ];
                   char            ifr_newname[IFNAMSIZ];
                   char           *ifr_data;
               };
           };

           struct ifconf {
               int                 ifc_len; /* taille tampon */
               union {
                   char *          ifc_buf; /* adresse tampon */
                   struct ifreq   *ifc_req; /* table de structures */
               };
           };

       Normalement,  l’utilisateur  indique  le   périphérique   concerné   en
       remplissant  ifr_name  avec  le  nom  de  l’interface.  Tous les autres
       membres de la structure peuvent partager la mémoire.

   Ioctls
       Si un ioctl est indiqué comme privilégié, alors  il  nécessite  un  UID
       effectif  nul ou la capacité CAP_NET_ADMIN. Sinon, il renverra l’erreur
       EPERM.

       SIOCGIFNAME
              En utilisant ifr_ifindex, renvoie le  nom  de  l’interface  dans
              ifr_name.  C’est  le  seul  ioctl  qui renvoie un résultant dans
              ifr_name.

       SIOCGIFINDEX
              Retrouve le numéro d’interface et le place dans ifr_ifindex.

       SIOCGIFFLAGS, SIOCSIFFLAGS
              Lire ou écrire les attributs actifs du  périphérique.  ifr_flags
              est  un  mot  contenant  un masque de bits combinant les valeurs
              suivantes :

                                             Device flags
              IFF_UP            Interface fonctionne.
              IFF_BROADCAST     Adresse de broadcast valide.
              IFF_DEBUG         Attribut interne de débogage.
              IFF_LOOPBACK      Interface de type loopback.
              IFF_POINTOPOINT   Interface de type point-à-point.
              IFF_RUNNING       Resources allouées.
              IFF_NOARP         Pas de protocole Arp, adresse de destination L2 absente.
              IFF_PROMISC       Interface en mode promiscuous.
              IFF_NOTRAILERS    N’utilise pas les postambules.
              IFF_ALLMULTI      Accepte tous les paquets multicast.
              IFF_MASTER        Maître d’un système de répartition de charge.
              IFF_SLAVE         Esclave d’un système de répartition de charge.
              IFF_MULTICAST     Support multicast.
              IFF_PORTSEL       Capable de sélectionner le média via ifmap.
              IFF_AUTOMEDIA     Sélection automatique du média.
              IFF_DYNAMIC       Adresse perdue quand l’interfac est arrêtée.
              Écrire les attributs est une opération  privilégiée,  mais  tout
              processus peut les lire.

       SIOCGIFMETRIC, SIOCSIFMETRIC
              Lire   ou  écrire  la  métrique  du  périphérique  en  utilisant
              ifr_metric. Ceci n’est pas encore implémenté,  il  renvoie  dans
              ifr_metric la valeur 0 si on essaye de lire, et renvoie l’erreur
              EOPNOTSUPP si on essaye d’écrire.

       SIOCGIFMTU, SIOCSIFMTU
              Lire ou écrire le MTU (Maximum Transfer  Unit)  du  périphérique
              avec  ifr_mtu. Fixer le MTU est une opération privilégiée. Fixer
              un MTU trop petit peut faire planter le noyau.

       SIOCGIFHWADDR, SIOCSIFHWADDR
              Lire ou écrire l’adresse matérielle du périphérique en utilisant
              ifr_hwaddr.  Cette  adresse  matérielle  est  indiquée  dans une
              structure sockaddr. sa_family contient le type  de  périphérique
              ARPHRD_*,  sa_data  est  l’adresse  matérielle L2 commençant par
              l’octet  0.  Écrire  l’adresse  matérielle  est  une   opération
              privilégiée.

       SIOCSIFHWBROADCAST
              Fixer  l’adresse  de  broadcast  du  périphérique  à  partir  de
              ifr_hwaddr. C’est une opération privilégiée.

       SIOCGIFMAP, SIOCSIFMAP
              Lire ou  écrire  les  paramètres  matériels  de  l’interface  en
              utilisant  ifr_map.  L’écriture des paramètres est une opération
              privilégiée.

                  struct ifmap {
                      unsigned long   mem_start;
                      unsigned long   mem_end;
                      unsigned short  base_addr;
                      unsigned char   irq;
                      unsigned char   dma;
                      unsigned char   port;
                  };

              L’interprétation de la  structure  ifmap  dépend  du  pilote  de
              périphérique et de l’architecture.

       SIOCADDMULTI, SIOCDELMULTI
              Ajouter ou supprimer une adresse des filtres multicast du niveau
              liaison du périphérique en utilisant  ifr_hwaddr.  Ce  sont  des
              opérations  privilégiées.  Voir  aussi  packet(7) pour une autre
              possibilité.

       SIOCGIFTXQLEN, SIOCSIFTXQLEN
              Lire ou écrire la taille de la file d’émission  du  périphérique
              avec  ifr_qlen.  L’écriture  de  la  taille  de  la file est une
              opération privilégiée.

       SIOCSIFNAME
              Changer le  nom  de  l’interface  indiquée  dans  ifr_name  pour
              ifr_newname.   C’est   une  opération  privilégiée.  Elle  n’est
              possible que si l’interface n’est pas en fonctionnement.

       SIOCGIFCONF
              Renvoie  une  liste  des  adresses  (couche  de  transport)  des
              interfaces. Ceci ne fonctionne actuellement qu’avec les adresses
              AF_INET (IPv4) pour des raisons de compatibilité.  L’utilisateur
              passe  une structure ifconf en argument à l’ioctl. Elle contient
              un pointeur sur une table de structures ifreq  dans  son  membre
              ifc_req  et la longueur en octets dans ifc_len. Le noyau remplit
              les ifreqs  avec  toutes  les  adresses  L3  des  interfaces  en
              fonctionnement : ifr_name contient le nom de l’interface (eth0:1
              etc.), et ifr_addr  l’adresse.  Le  noyau  renvoie  la  longueur
              réelle dans ifc_len. Si ifc_len est égal à la longueur d’origine
              du tampon, on a  probablement  atteint  la  limite,  et  il  est
              conseillé  de  recommencer  avec  un  tampon  plus  grand.  S’il
              réussit, l’ioctl renvoie 0, sinon il renvoie  -1.  Atteindre  la
              limite du tampon n’est pas considéré comme une erreur.

       La   plupart  des  protocoles  supportent  leurs  propres  ioctls  pour
       configurer les options d’interface spécifiques aux protocoles. Voir les
       pages  de  manuel correspondante. Pour configurer les adresses IP, voir
       ip(7).

       De plus, certains  périphériques  supportent  des  ioctls  privés,  non
       décrits ici.

NOTES

       Strictement  parlant,  SIOCGIFCONF  est  spécifique  à IP et devrait se
       trouver dans ip(7).

       Les noms  des  interfaces  sans  adresses,  ou  celles  qui  n’ont  pas
       l’attribut IFF_RUNNING peuvent être trouvés dans /proc/net/dev.

       Les  adresses  IPv6  locales  se  trouvent  dans  /proc/net  ou grâce à
       rtnetlink(7).

BOGUES

       Dans la GlibC 2.1 il  manque  la  macro  ifr_newname  dans  <net/if.h>.
       Ajoutez les lignes suivantes dans votre programme :

           #ifndef ifr_newname
           #define ifr_newname     ifr_ifru.ifru_slave
           #endif

VOIR AUSSI

       proc(5), capabilities(7), ip(7), rtnetlink(7)

COLOPHON

       Cette  page  fait  partie  de  la  publication 2.80 du projet man-pages
       Linux. Une description du projet et des instructions pour signaler  des
       anomalies       peuvent       être       trouvées      à      l’adresse
       http://www.kernel.org/doc/man-pages/.

TRADUCTION

       Cette page de manuel a été traduite  et  mise  à  jour  par  Christophe
       Blaess  <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis par
       Alain Portal <aportal AT univ-montp2 DOT fr> jusqu’en 2006, et  mise  à
       disposition sur http://manpagesfr.free.fr/.

       Les mises à jour et corrections de la version présente dans Debian sont
       directement gérées par Julien Cristau <jcristau@debian.org> et l’équipe
       francophone de traduction de Debian.

       Veuillez   signaler   toute   erreur   de   traduction  en  écrivant  à
       <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
       paquet manpages-fr.

       Vous  pouvez  toujours avoir accès à la version anglaise de ce document
       en utilisant la commande « man -L C <section> <page_de_man> ».