Provided by: manpages-es_4.18.1-1_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 incluye soporte para algunas ioctls estándares para configurar los  dispositivos  de
       red.  Se  pueden usar sobre cualquier descriptor de fichero de un conector sin importar la
       familia o el tipo. La mayoría pasa una estructura ifreq:

           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;
               };
           };

       AF_INET6 es una excepción. Passa un estructura in6_ifreq:

           struct in6_ifreq {
               struct in6_addr     ifr6_addr;
               u32                 ifr6_prefixlen;
               int                 ifr6_ifindex; /* Índice de la interfaz */
           };

       En general, el usuario especifica a qué dispositivo va a afectar asignando a  ifr_name  el
       nombre  de la interfaz o a ifr6_ifindex el índice de la misma. 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
              Obtiene  o  establece  banderas  ampliadas  (privadas)  del  dispositivo. ifr_flags
              contiene una máscara de bits de los siguientes valores:

                                        Banderas privadas
              IFF_802_1Q_VLAN      Interface is 802.1Q VLAN device.
              IFF_EBRIDGE          La interfaz es un disposotivo puente Ethernet.
              IFF_SLAVE_INACTIVE   La interfaz es un enlace esclavo inactivo.
              IFF_MASTER_8023AD    La interfaz es un enlace maestro 802.3ad.
              IFF_MASTER_ALB       La interfaz es un enlaze maestro balanceado-alb.
              IFF_BONDING          La interfaz es un enlace maestro o esclavo.
              IFF_SLAVE_NEEDARP    La interfaz necesita ARP para la validación.
              IFF_ISATAP           La interfaz es una ISATAP RFC4214.

       La configuración de las opciones extendidas (privada) de la interfaz necesita  privilegios
       especiales.

       SIOCGIFADDR, SIOCSIFADDR, SIOCDIFADDR
              Get,  set,  or  delete  the address of the device using ifr_addr, or ifr6_addr with
              ifr6_prefixlen.   Setting  or  deleting  the  interface  address  is  a  privileged
              operation.    For   compatibility,  SIOCGIFADDR  returns  only  AF_INET  addresses,
              SIOCSIFADDR accepts AF_INET and AF_INET6 addresses, and  SIOCDIFADDR  deletes  only
              AF_INET6  addresses.   A  AF_INET  address can be deleted by setting it to zero via
              SIOCSIFADDR.

       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; /* tamaño del buffer */
                      union {
                          char         *ifc_buf; /* dirección del buffer */
                          struct ifreq *ifc_req; /* vector de estructuras */
                      };
                  };

              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.

              Si  sucediese  un  error  durante  el  acceso  a  lasestructuras ifconf o ifreq, se
              devolvería EFAULT.

       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 y otros ioctls que aceptan o devuelven  solamente  direcciones  de  conectores
       AF_INET son específicos de IP y seguramente sea buena idea que se documenten en 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.

       AF_INET6 IPv6 addresses can be read from /proc/net/if_inet6 or via rtnetlink(7).  Adding a
       new  IPv6  address  and  deleting an existing IPv6 address can be done via SIOCSIFADDR and
       SIOCDIFADDR or via rtnetlink(7).  Retrieving or changing destination IPv6 addresses  of  a
       point-to-point interface is possible only via 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)

TRADUCCIÓN

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

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