jammy (7) netdevice.7.gz

Provided by: manpages-fr_4.13-4_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.  La  plupart  passent  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;
               };
           };

       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 valant zéro ou  la  capacité
       CAP_NET_ADMIN. Sinon, il renverra l'erreur EPERM.

       SIOCGIFNAME
              Si  ifr_ifindex est indiqué, renvoyer le nom de l'interface dans ifr_name. C'est le seul ioctl qui
              renvoie son résultat dans ifr_name.

       SIOCGIFINDEX
              Retrouver l’indice d'interface de l’interface dans ifr_ifindex.

       SIOCGIFFLAGS, SIOCSIFFLAGS
              Obtenir ou définir le mot d’indicateur en cours du périphérique. ifr_flags contient un  masque  de
              bits des valeurs suivantes :

                                            Indicateur de périphérique
              IFF_UP            Interface en cours de fonctionnement.
              IFF_BROADCAST     Ensemble d’adresses de broadcast valables.
              IFF_DEBUG         Indicateur interne de débogage.
              IFF_LOOPBACK      L’interface est une interface de boucle locale.
              IFF_POINTOPOINT   L’interface est une liaison point à point.
              IFF_RUNNING       Ressources allouées.
              IFF_NOARP         Pas de protocole ARP, adresse de destination niveau 2 absente.
              IFF_PROMISC       L’interface est en mode promiscuité.
              IFF_NOTRAILERS    Pas d’utilisation des postambules.

              IFF_ALLMULTI      Réception de 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     Prise en charge du multicast.
              IFF_PORTSEL       Possibilité de sélectionner le type de média à l’aide de ifmap.
              IFF_AUTOMEDIA     Sélection automatique du média active.
              IFF_DYNAMIC       Les adresses sont perdues quand l'interface s’arrête.
              IFF_LOWER_UP      Le pilote signale la disponibilité du niveau 1 (depuis Linux 2.6.17).
              IFF_DORMANT       Le pilote signale l’inactivité (depuis Linux 2.6.17).
              IFF_ECHO          Répéter les paquets envoyés (depuis Linux 2.6.25).

       Définir le mot d’indicateur actif est une opération privilégiée, mais tout processus peut le lire.

       SIOCGIFPFLAGS, SIOCSIFPFLAGS
              Obtenir  ou  définir  les indicateurs (privés) étendus du périphérique. ifr_flags est un masque de
              bits des valeurs suivantes :

                                            Indicateurs privés
              IFF_802_1Q_VLAN      L’interface est un périphérique VLAN 802.1Q.
              IFF_EBRIDGE          L’interface est un périphérique de pont Ethernet.
              IFF_SLAVE_INACTIVE   L’interface est un esclave inactif d’agrégation de liens.
              IFF_MASTER_8023AD    L’interface est un maître 802.3ad d’agrégation de liens.
              IFF_MASTER_ALB       L’interface est un maître d’agrégation répartie par ALB.
              IFF_BONDING          L’interface est un maître ou un esclave d’agrégation.
              IFF_SLAVE_NEEDARP    L’interface nécessite ARP pour la validation.
              IFF_ISATAP           L’interface est de type ISATAP RFC4214.

       Définir les indicateurs (privés) étendus du périphérique est une opération privilégiée.

       SIOCGIFADDR, SIOCSIFADDR
              Obtenir ou  définir  l'adresse  du  périphérique  en  utilisant  ifr_addr.  Définir  l'adresse  du
              périphérique  est  une  opération  privilégiée. Pour assurer la compatibilité, seules les adresses
              AF_INET sont acceptées ou renvoyées.

       SIOCGIFDSTADDR, SIOCSIFDSTADDR
              Obtenir ou définir  l'adresse  de  destination  d'un  périphérique  point  à  point  en  utilisant
              ifr_dstaddr.  Pour  assurer  la  compatibilité,  seules  les  adresses  AF_INET  sont acceptées ou
              renvoyées. Définir l'adresse de destination est une opération privilégiée.

       SIOCGIFBRDADDR, SIOCSIFBRDADDR
              Obtenir ou définir l'adresse de broadcast pour un  périphérique  en  utilisant  ifr_brdaddr.  Pour
              assurer  la  compatibilité,  seules  les  adresses  AF_INET  sont  acceptées ou renvoyées. Définir
              l'adresse de broadcast est une opération privilégiée.

       SIOCGIFNETMASK, SIOCSIFNETMASK
              Obtenir ou définir le masque réseau pour un périphérique en utilisant ifr_netmask. Pour assurer la
              compatibilité,  seules  les adresses AF_INET sont acceptées ou renvoyées. Définir le masque réseau
              est une opération privilégiée.

       SIOCGIFMETRIC, SIOCSIFMETRIC
              Obtenir ou définir la métrique du périphérique en utilisant  ifr_metric.  Cela  n'est  pas  encore
              implémenté.  Il  définit  ifr_metric  à  la  valeur 0  en  cas de tentative de lecture, et renvoie
              l'erreur EOPNOTSUPP en cas de tentative de définition.

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

       SIOCGIFHWADDR, SIOCSIFHWADDR
              Obtenir  ou  définir  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.  Définir l'adresse
              matérielle est une opération privilégiée.

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

       SIOCGIFMAP, SIOCSIFMAP
              Obtenir  ou  définir  les  paramètres  matériels  de l'interface en utilisant ifr_map. Définir ces
              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
              Obtenir ou définir la taille de la file d’attente de transmission du périphérique  avec  ifr_qlen.
              La définition 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
              Renvoyer  une  liste  d’adresses  (couche  de  transport)  des  interfaces.  Cela  ne   fonctionne
              actuellement  qu'avec les adresses AF_INET (IPv4) pour des raisons de compatibilité. Contrairement
              aux autres, cet ioctl passe une structure ifconf :

                  struct ifconf {
                      int                 ifc_len; /* Taille du tampon */
                      union {
                          char *          ifc_buf; /* Adresse du tampon */
                          struct ifreq   *ifc_req; /* Table des structures */
                      };
                  };

              Si ifc_req est NULL, SIOCGIFCONF renvoie la taille de tampon nécessaire  en  octet  pour  recevoir
              toutes  les adresses disponibles dans ifc_len. Sinon, ifc_req contient un pointeur vers un tableau
              de structures ifreq à remplir avec toutes  les  adresses  d’interfaces  L3  actuellement  actives.
              ifc_len contient la taille du tableau en octet. Dans toutes les structures ifreq, ifr_name recevra
              le nom d’interface et ifr_addr l'adresse. Le nombre d’octets vraiment transférés est renvoyé  dans
              ifc_len.

              Si  la taille indiquée par ifc_len n’est pas suffisante pour stocker toutes les adresses, le noyau
              ignorera celles en trop et renverra un état de  réussite.  Si  cela  arrive,  aucun  moyen  fiable
              n’existe  pour  détecter  cette  condition.  Vous devriez donc soit déterminer la taille de tampon
              nécessaire au préalable en appelant SIOCGIFCONF avec ifc_req défini à NULL, soit réessayer l’appel
              avec  un plus gros tampon si la différence entre la valeur de retour ifc_len et sa valeur initiale
              est supérieure à sizeof(struct ifreq).

              En cas d’erreur d’accès aux structures ifconf ou ifreq, EFAULT sera renvoyé.

       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

       SIOCGIFCONF et les autres ioctls qui n'acceptent ou ne renvoient que des adresses de socket AF_INET  sont
       spécifiques à IP et devraient plutôt être documentés dans ip(7).

       Les  noms  des  interfaces  sans adresse, ou celles qui n'ont pas l'indicateur IFF_RUNNING défini peuvent
       être trouvés dans /proc/net/dev.

       Les adresses IPv6 locales peuvent être trouvées dans /proc/net ou grâce à rtnetlink(7).

BOGUES

       Dans la glibc 2.1, il manque la macro ifr_newname dans <net/if.h>. Comme  solution,  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 5.10 du projet man-pages Linux. Une description du projet et des
       instructions pour signaler des anomalies et la dernière version de cette page  peuvent  être  trouvées  à
       l'adresse https://www.kernel.org/doc/man-pages/.

TRADUCTION

       La   traduction   française   de   cette   page   de   manuel   a   été   créée   par  Christophe  Blaess
       <https://www.blaess.fr/christophe/>,   Stéphan   Rafin   <stephan.rafin@laposte.net>,   Thierry   Vignaud
       <tvignaud@mandriva.com>,  François  Micaux,  Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard
       <fevrier@tigreraye.org>,   Jean-Luc   Coulon   (f5ibh)   <jean-luc.coulon@wanadoo.fr>,   Julien   Cristau
       <jcristau@debian.org>,      Thomas      Huriaux      <thomas.huriaux@gmail.com>,     Nicolas     François
       <nicolas.francois@centraliens.net>,    Florentin    Duneau    <fduneau@gmail.com>,     Simon     Paillard
       <simon.paillard@resel.enst-bretagne.fr>,     Denis    Barbier    <barbier@debian.org>,    David    Prévot
       <david@tilapin.org> et Jean-Paul Guillonneau <guillonneau.jeanpaul@free.fr>

       Cette traduction est une documentation libre ; veuillez vous reporter à la  GNU  General  Public  License
       version 3   ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩   concernant   les  conditions  de  copie  et  de
       distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si vous découvrez un bogue dans la traduction de cette page de manuel,  veuillez  envoyer  un  message  à
       debian-l10n-french@lists.debian.org ⟨⟩.