Provided by: manpages-fr_3.32d0.2p4-1_all bug

NOM

       netdevice - Acces bas-niveau aux peripheriques reseau sous Linux

SYNOPSIS

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

DESCRIPTION

       Cette  page  de  manuel  decrit  l'interface  des sockets permettant de
       configurer les peripheriques reseau.

       Linux prend en charge certains  ioctls  standard  pour  configurer  les
       peripheriques  reseau.  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  peripherique  concerne  en
       remplissant ifr_name avec  le  nom  de  l'interface.  Tous  les  autres
       membres de la structure peuvent partager la memoire.

   Ioctls
       Si  un  ioctl  est  indique comme privilegie, alors il necessite un UID
       effectif nul ou la capacite 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  resultant  dans
              ifr_name.

       SIOCGIFINDEX
              Retrouve le numero d'interface et le place dans ifr_ifindex.

       SIOCGIFFLAGS, SIOCSIFFLAGS
              Lire  ou  ecrire les attributs actifs du peripherique. 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 debogage.
              IFF_LOOPBACK      Interface de type loopback.
              IFF_POINTOPOINT   Interface de type point-a-point.
              IFF_RUNNING       Resources allouees.
              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        Maitre d'un systeme de repartition de charge.
              IFF_SLAVE         Esclave d'un systeme de repartition de charge.
              IFF_MULTICAST     Support multicast.
              IFF_PORTSEL       Capable de selectionner le media via ifmap.
              IFF_AUTOMEDIA     Selection automatique du media.
              IFF_DYNAMIC       Adresse perdue quand l'interfac est arretee.
              IFF_LOWER_UP      Le pilote signale la disponibilite  de  niveau
                                L1 (depuis Linux 2.6.17)
              IFF_DORMANT       Le   pilote   signale   les   someils  (depuis
                                Linux 2.6.17)
              IFF_ECHO          Renvoyer   les    paquets    envoye    (depuis
                                Linux 2.6.25)

              Ecrire  les  attributs  est une operation privilegiee, mais tout
              processus peut les lire.

       SIOCGIFMETRIC, SIOCSIFMETRIC
              Lire  ou  ecrire  la  metrique  du  peripherique  en   utilisant
              ifr_metric.  Ceci  n'est  pas encore implemente, il renvoie dans
              ifr_metric la valeur 0 si on essaye de lire, et renvoie l'erreur
              EOPNOTSUPP si on essaye d'ecrire.

       SIOCGIFMTU, SIOCSIFMTU
              Lire  ou  ecrire  le MTU (Maximum Transfer Unit) du peripherique
              avec ifr_mtu. Fixer le MTU est une operation privilegiee.  Fixer
              un MTU trop petit peut faire planter le noyau.

       SIOCGIFHWADDR, SIOCSIFHWADDR
              Lire ou ecrire l'adresse materielle du peripherique en utilisant
              ifr_hwaddr. Cette  adresse  materielle  est  indiquee  dans  une
              structure  sockaddr.  sa_family contient le type de peripherique
              ARPHRD_*, sa_data est l'adresse  materielle  L2  commencant  par
              l'octet   0.  Ecrire  l'adresse  materielle  est  une  operation
              privilegiee.

       SIOCSIFHWBROADCAST
              Fixer  l'adresse  de  broadcast  du  peripherique  a  partir  de
              ifr_hwaddr. C'est une operation privilegiee.

       SIOCGIFMAP, SIOCSIFMAP
              Lire  ou  ecrire  les  parametres  materiels  de  l'interface en
              utilisant ifr_map. L'ecriture des parametres est  une  operation
              privilegiee.

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

              L'interpretation  de  la  structure  ifmap  depend  du pilote de
              peripherique et de l'architecture.

       SIOCADDMULTI, SIOCDELMULTI
              Ajouter ou supprimer une adresse des filtres multicast du niveau
              liaison  du  peripherique  en  utilisant ifr_hwaddr. Ce sont des
              operations privilegiees.  Consultez  aussi  packet(7)  pour  une
              autre possibilite.

       SIOCGIFTXQLEN, SIOCSIFTXQLEN
              Lire  ou  ecrire la taille de la file d'emission du peripherique
              avec ifr_qlen. L'ecriture de  la  taille  de  la  file  est  une
              operation privilegiee.

       SIOCSIFNAME
              Changer  le  nom  de  l'interface  indiquee  dans  ifr_name pour
              ifr_newname.  C'est  une  operation  privilegiee.   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 compatibilite. L'utilisateur
              passe une structure ifconf en argument a 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
              reelle dans ifc_len. Si ifc_len est egal a la longueur d'origine
              du  tampon,  on  a  probablement  atteint  la  limite, et il est
              conseille  de  recommencer  avec  un  tampon  plus  grand.  S'il
              reussit,  l'ioctl  renvoie  0, sinon il renvoie -1. Atteindre la
              limite du tampon n'est pas considere comme une erreur.

       La plupart des protocoles prennent en charge leurs propres ioctls  pour
       configurer   les   options   d'interface  specifiques  aux  protocoles.
       Consultez les pages de  manuel  correspondantes.  Pour  configurer  les
       adresses IP, consultez ip(7).

       De  plus,  certains peripheriques prennent en charge des ioctls prives,
       non decrits ici.

NOTES

       Strictement parlant, SIOCGIFCONF est specifique  a  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 etre trouves dans /proc/net/dev.

       Les adresses IPv6  locales  se  trouvent  dans  /proc/net  ou  grace  a
       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  3.32  du  projet  man-pages
       Linux.  Une description du projet et des instructions pour signaler des
       anomalies      peuvent      etre       trouvees       a       l'adresse
       <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

       Depuis  2010,  cette  traduction est maintenue a l'aide de l'outil po4a
       <URL:http://po4a.alioth.debian.org/>   par   l'equipe   de   traduction
       francophone        au        sein        du       projet       perkamon
       <URL:http://perkamon.alioth.debian.org/>.

       Christophe Blaess  <URL:http://www.blaess.fr/christophe/>  (1996-2003),
       Alain   Portal  <URL:http://manpagesfr.free.fr/>  (2003-2006).   Julien
       Cristau et l'equipe francophone de traduction de Debian (2006-2009).

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

       Vous pouvez toujours avoir acces a la version anglaise de  ce  document
       en utilisant la commande << man -L C <section> <page_de_man> >>.