Provided by: manpages-fr_3.32d0.2p4-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  sockets  permettant  de  configurer les
       périphériques réseau.

       Linux prend en charge certains 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.
              IFF_LOWER_UP      Le pilote signale la disponibilité  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    envoyé    (depuis
                                Linux 2.6.25)

              É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.
              Consultez 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  prennent  en charge leurs propres ioctls pour configurer les
       options  d'interface  spécifiques  aux  protocoles.  Consultez   les   pages   de   manuel
       correspondantes. Pour configurer les adresses IP, consultez ip(7).

       De plus, certains périphériques prennent en charge 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 3.32 du projet man-pages Linux. Une description
       du projet et des  instructions  pour  signaler  des  anomalies  peuvent  être  trouvées  à
       l'adresse <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

       Depuis    2010,    cette   traduction   est   maintenue   à   l'aide   de   l'outil   po4a
       <URL:http://po4a.alioth.debian.org/> par l'équipe 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'équipe  francophone  de
       traduction de Debian (2006-2009).

       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> ».