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
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  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 ⟨⟩.