Provided by: manpages-es_4.13-4_all bug

NOMBRE

       netdevice - acceso de bajo nivel a los dispositivos de red de Linux

SINOPSIS

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

DESCRIPCIÓN

       Esta  página  de manual describe la interfaz de conectores que se usa para configurar los dispositivos de
       red.

       Linux supports some standard ioctls to configure network devices.  They can be used on any socket's  file
       descriptor regardless of the family or type.  Most of them pass an ifreq structure:

           struct ifreq {
               char ifr_name[IFNAMSIZ]; /* Nombre de la interfaz */
               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;
               };
           };

       Normalmente,  el  usuario  especifica a qué dispositivo va a afectar asignando a ifr_name el nombre de la
       interfaz. Todos los otros miembros de la estructura pueden compartir memoria.

   Ioctls
       Si se marca una ioctl como privilegiada entonces su uso requiere un identificador de usuario efectivo 0 o
       la capacidad CAP_NET_ADMIN. Si éste no es el caso se devuelve EPERM.

       SIOCGIFNAME
              Dado un ifr_ifindex, devuelve el nombre de la interfaz en ifr_name. Ésta es  la  única  ioctl  que
              devuelve su resultado en ifr_name.

       SIOCGIFINDEX
              Devuelve el índice de interfaz de la interfaz en ifr_ifindex.

       SIOCGIFFLAGS, SIOCSIFFLAGS
              Obtiene o establece la palabra de banderas activas del dispositivo. ifr_flags contiene una máscara
              de bits de los siguientes valores:
                                           Significado de las banderas
              IFF_UP            La interfaz está funcionando.
              IFF_BROADCAST     Dirección de difusión válida asignada.
              IFF_DEBUG         Bandera de depuración interna.
              IFF_LOOPBACK      Ésta es una interfaz loopback.
              IFF_POINTOPOINT   La interfaz es un enlace punto a punto.
              IFF_RUNNING       Recursos necesarios reservados.
              IFF_NOARP         Sin protocolo ARP, la dirección de destino de Nivel 2 no está
                                configurada.
              IFF_PROMISC       La interfaz se encuentra en modo promiscuo.
              IFF_NOTRAILERS    Evitar el uso de terminadores.
              IFF_ALLMULTI      Recibir todos los paquetes multidestino.
              IFF_MASTER        Interfaz maestra de un grupo de balanceo de carga.
              IFF_SLAVE         Interfaz esclava de un grupo de balanceo de carga.
              IFF_MULTICAST     La interfaz soporta multidestino.
              IFF_PORTSEL       La interfaz es capaz de seleccionar el tipo de medio mediante ifmap.
              IFF_AUTOMEDIA     Autoselección de medios activa.
              IFF_DYNAMIC       Las direcciones se pierden cuando la interfaz se desactiva.
              IFF_LOWER_UP      Driver signals L1 up (since Linux 2.6.17)
              IFF_DORMANT       Driver signals dormant (since Linux 2.6.17)
              IFF_ECHO          Echo sent packets (since Linux 2.6.25)

       La  configuración  de la palabra de banderas activas es una operación privilegiada pero cualquier proceso
       puede leerla.

       SIOCGIFPFLAGS, SIOCSIFPFLAGS
              Get or set extended (private) flags for  the  device.   ifr_flags  contains  a  bit  mask  of  the
              following values:
                                      Private flags
              IFF_802_1Q_VLAN      Interface is 802.1Q VLAN device.
              IFF_EBRIDGE          Interface is Ethernet bridging device.
              IFF_SLAVE_INACTIVE   Interface is inactive bonding slave.
              IFF_MASTER_8023AD    Interface is 802.3ad bonding master.
              IFF_MASTER_ALB       Interface is balanced-alb bonding master.
              IFF_BONDING          Interface is a bonding master or slave.
              IFF_SLAVE_NEEDARP    Interface needs ARPs for validation.
              IFF_ISATAP           Interface is RFC4214 ISATAP interface.

       Setting the extended (private) interface flags is a privileged operation.

       SIOCGIFADDR, SIOCSIFADDR
              Get  or  set  the  address  of  the  device  using  ifr_addr.   Setting the interface address is a
              privileged operation.  For compatibility, only AF_INET addresses are accepted or returned.

       SIOCGIFDSTADDR, SIOCSIFDSTADDR
              Get  or  set  the  destination  address  of  a  point-to-point  device  using  ifr_dstaddr.    For
              compatibility,  only  AF_INET addresses are accepted or returned.  Setting the destination address
              is a privileged operation.

       SIOCGIFBRDADDR, SIOCSIFBRDADDR
              Get or set the broadcast address for a device using ifr_brdaddr.  For compatibility, only  AF_INET
              addresses are accepted or returned.  Setting the broadcast address is a privileged operation.

       SIOCGIFNETMASK, SIOCSIFNETMASK
              Get  or  set  the  network  mask  for a device using ifr_netmask.  For compatibility, only AF_INET
              addresses are accepted or returned.  Setting the network mask is a privileged operation.

       SIOCGIFMETRIC, SIOCSIFMETRIC
              Obtiene o establece la métrica del dispositivo usando ifr_metric. Todavía no implementado.  Asigna
              un  0  a  ifr_metric  cuando  se intenta leer y devuelve EOPNOTSUPP cuando se intenta asignarle un
              valor.

       SIOCGIFMTU, SIOCSIFMTU
              Obtiene o establece la MTU (unidad de transferencia máxima) del  dispositivo  usando  ifr_mtu.  La
              configuración  de  la  MTU  es una operación privilegiada. Configurar la MTU con valores demasiado
              pequeños puede provocar un fallo del núcleo.

       SIOCGIFHWADDR, SIOCSIFHWADDR
              Obtiene o establece la dirección hardware del dispositivo usando ifr_hwaddr. La  configuración  de
              la dirección hardware es una operación privilegiada.

       SIOCSIFHWBROADCAST
              Establece  la  dirección  de  difusión  hardware  del  dispositivo  a partir de ifr_hwaddr. Es una
              operación privilegiada.

       SIOCGIFMAP, SIOCSIFMAP
              Obtiene o establece los parámetros hardware de la interfaz usando ifr_map. La configuración de los
              parámetros es una operación privilegiada.

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

              La interpretación  de  la  estructura  ifmap  depende  del  manejador  del  dispositivo  y  de  la
              arquitectura.

       SIOCADDMULTI, SIOCDELMULTI
              Añade una dirección a o borra una dirección de los filtros multidestino de la capa de enlace de la
              interfaz  usando  ifr_hwaddr.  Estas operaciones son privilegiadas. Si quiere una alternativa, vea
              también packet(7).

       SIOCGIFTXQLEN, SIOCSIFTXQLEN
              Obtiene o establece la longitud de la cola de transmisión de un dispositivo  usando  ifr_qlen.  La
              configuración de la longitud de la cola de transmisión es una operación privilegiada.

       SIOCSIFNAME
              Cambia el nombre de la interfaz indicada en ifr_name a ifr_newname. Es una operación privilegiada.
              Sólo está permitida cuando la interfaz no está activada.

       SIOCGIFCONF
              Return  a list of interface (network layer) addresses.  This currently means only addresses of the
              AF_INET (IPv4) family  for  compatibility.   Unlike  the  others,  this  ioctl  passes  an  ifconf
              structure:

                  struct ifconf {
                      int                 ifc_len; /* size of buffer */
                      union {
                          char           *ifc_buf; /* buffer address */
                          struct ifreq   *ifc_req; /* array of structures */
                      };
                  };

              If  ifc_req  is  NULL,  SIOCGIFCONF  returns  the necessary buffer size in bytes for receiving all
              available addresses in ifc_len.  Otherwise, ifc_req contains  a  pointer  to  an  array  of  ifreq
              structures  to  be  filled with all currently active L3 interface addresses.  ifc_len contains the
              size of the array in bytes.  Within each ifreq structure,  ifr_name  will  receive  the  interface
              name, and ifr_addr the address.  The actual number of bytes transferred is returned in ifc_len.

              If  the size specified by ifc_len is insufficient to store all the addresses, the kernel will skip
              the exceeding ones and return success.  There is no reliable way of detecting this condition  once
              it  has  occurred.   It  is  therefore  recommended  to either determine the necessary buffer size
              beforehand by calling SIOCGIFCONF with ifc_req set to NULL, or to retry the  call  with  a  bigger
              buffer  whenever  ifc_len  upon return differs by less than sizeof(struct ifreq) from its original
              value.

              If an error occurs accessing the ifconf or ifreq structures, EFAULT will be returned.

       La mayoría de los protocolos soportan sus propias ioctls para configurar  las  opciones  de  la  interfaz
       específicas  del  protocolo. Vea las páginas de manual de los protocolos para una descripción más amplia.
       Para la configuración de direcciones IP, vea ip(7).

       Además, algunos dispositivos soportan ioctls privadas. Éstas no se describen aquí.

NOTAS

       SIOCGIFCONF and the other ioctls that accept or return only AF_INET socket addresses are IP-specific  and
       perhaps should rather be documented in ip(7).

       Los  nombres de interfaces que no tiene dirección o que no tienen la opción IFF_RUNNING activa, se pueden
       encontrar a través de /proc/net/dev.

       Las direcciones IP locales versión 6 (IPv6) se pueden obtener vía /proc/net o vía rtnetlink(7).

ERRORES

       glibc 2.1 no posee la macro ifr_newname en <net/if.h>. Añada lo siguiente a su programa como solución:

           #ifndef ifr_newname
           #define ifr_newname     ifr_ifru.ifru_slave
           #endif

VÉASE TAMBIÉN

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

COLOFÓN

       Esta página es parte de la versión 5.10 del proyecto Linux man-pages. Puede encontrar una descripción del
       proyecto,  información  sobre  cómo  informar  errores  y  la  última   versión   de   esta   página   en
       https://www.kernel.org/doc/man-pages/.

TRADUCCIÓN

       La traducción al español de esta página del manual fue creada por Juan Piernas <piernas@ditec.um.es>

       Esta  traducción  es  documentación  libre;  lea  la GNU General Public License Version 3 o posterior con
       respecto a las condiciones de copyright.  No existe NINGUNA RESPONSABILIDAD.

       Si encuentra algún error en la traducción de esta página  del  manual,  envíe  un  correo  electrónico  a
       debian-l10n-spanish@lists.debian.org.

Linux                                            13 Agosto 2020                                     NETDEVICE(7)