Provided by: manpages-es_1.55-10_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'ON

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

       Linux  soporta  algunas   ioctls   estandares   para   configurar   los
       dispositivos  de  red.  Se  pueden  usar  sobre cualquier descriptor de
       fichero de un conector sin tener en cuenta la familia o  el  tipo.   Se
       pasa una estructura ifreq:

       struct ifreq {
           char    ifr_name[IFNAMSIZ];/* Nombre de la interfaz */
           union {
                   struct sockaddrifr_addr;
                   struct sockaddrifr_dstaddr;
                   struct sockaddrifr_broadaddr;
                   struct sockaddrifr_netmask;
                   struct sockaddrifr_hwaddr;
                   short   ifr_flags;
                   int     ifr_ifindex;
                   int     ifr_metric;
                   int     ifr_mtu;
                   struct ifmapifr_map;
                   char    ifr_slave[IFNAMSIZ];
                   char    ifr_newname[IFNAMSIZ];
                   char *  ifr_data;
           };
       };

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

       Normalmente,  el  usuario  especifica  a  que  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
       este no es el caso se devuelve EPERM.

       SIOCGIFNAME
              Dado  un  ifr_ifindex,  devuelve  el  nombre  de  la interfaz en
              ifr_name.  Esta es la unica ioctl que devuelve su  resultado  en
              ifr_name.

       SIOCGIFINDEX
              Devuelve el indice de interfaz de la interfaz en ifr_ifindex.

       SIOCGIFFLAGS, SIOCSIFFLAGS
              Obtiene   o   establece  la  palabra  de  banderas  activas  del
              dispositivo.  ifr_flags contiene una  mascara  de  bits  de  los
              siguientes valores:

              +--------------------------------------------------------------+
              |                 Significado de las banderas                  |
              +----------------+---------------------------------------------+
              |IFF_UP          | La interfaz esta funcionando.               |
              +----------------+---------------------------------------------+
              |IFF_BROADCAST   | Direccion de difusion valida asignada.      |
              +----------------+---------------------------------------------+
              |IFF_DEBUG       | Bandera de depuracion interna.              |
              +----------------+---------------------------------------------+
              |IFF_LOOPBACK    | Esta 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 direccion de destino |
              |                | de Nivel 2 no esta 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   | Autoseleccion de medios activa.             |
              +----------------+---------------------------------------------+
              |IFF_DYNAMIC     | Las   direcciones   se  pierden  cuando  la |
              |                | interfaz se desactiva.                      |
              +----------------+---------------------------------------------+
              La configuracion de  la  palabra  de  banderas  activas  es  una
              operacion privilegiada pero cualquier proceso puede leerla.

       SIOCGIFMETRIC, SIOCSIFMETRIC
              Obtiene   o   establece   la   metrica  del  dispositivo  usando
              ifr_metric.  Todavia 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 maxima)  del
              dispositivo  usando  ifr_mtu.  La configuracion de la MTU es una
              operacion privilegiada. Configurar la MTU con valores  demasiado
              pequenos puede provocar un fallo del nucleo.

       SIOCGIFHWADDR, SIOCSIFHWADDR
              Obtiene o establece la direccion hardware del dispositivo usando
              ifr_hwaddr.  La configuracion de la direccion  hardware  es  una
              operacion privilegiada.

       SIOCSIFHWBROADCAST
              Establece  la  direccion  de difusion hardware del dispositivo a
              partir de ifr_hwaddr.  Es una operacion privilegiada.

       SIOCGIFMAP, SIOCSIFMAP
              Obtiene o establece  los  parametros  hardware  de  la  interfaz
              usando  ifr_map.   La  configuracion  de  los  parametros es una
              operacion 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 interpretacion de la estructura ifmap depende  del  manejador
              del dispositivo y de la arquitectura.

       SIOCADDMULTI, SIOCDELMULTI
              Anade  una  direccion  a  o  borra  una direccion de los filtros
              multidestino  de  la  capa  de  enlace  de  la  interfaz  usando
              ifr_hwaddr.   La  direccion  hardware  queda especificada en una
              estructura sockaddr.  sa_family contiene el tipo de  dispositivo
              ARPHRD_*,  sa_data  la direccion hardware L2 comenzando desde el
              byte 0.  Estas operaciones  son  privilegiadas.  Si  quiere  una
              alternativa, vea tambien packet(7).

       SIOCGIFTXQLEN, SIOCSIFTXQLEN
              Obtiene  o establece la longitud de la cola de transmision de un
              dispositivo usando ifr_qlen.  La configuracion de la longitud de
              la cola de transmision es una operacion privilegiada.

       SIOCSIFNAME
              Cambia   el  nombre  de  la  interfaz  indicada  en  ifr_name  a
              ifr_newname.  Es una operacion privilegiada. Solo esta permitida
              cuando la interfaz no esta activada.

       SIOCGIFCONF
              Devuelve  una  lista  de  direcciones  de  interfaces  (capa  de
              transporte).  Actualmente, esto solo significa direcciones de la
              familia  AF_INET (IPV4) por compatibilidad. El usuario pasa a la
              ioctl una estructura ifconf como argumento. Contiene un  puntero
              a  un  array de estructuras ifreq en ifc_req y sus longitudes en
              bytes en ifc_len.  El nucleo rellena los ifreqs  con  todas  las
              direcciones  de  las  interfaces  de  Nivel 3 actuales que estan
              funcionando: ifr_name contiene el nombre de la interfaz  (eth0:1
              etc.), ifr_addr la direccion.  El nucleo regresa con la longitud
              real en ifc_len.  Si ifc_len es igual a la longitud original, el
              buffer  probablemente  se haya desbordado y deberia reintentarlo
              con un buffer mayor. Cuando no se produce ningun error, la ioctl
              devuelve 0. En otro caso, -1. El desbordamiento no es un error.

       La   mayoria  de  los  protocolos  soportan  sus  propias  ioctls  para
       configurar las opciones de la interfaz especificas del  protocolo.  Vea
       las  paginas  de  manual  de  los  protocolos  para una descripcion mas
       amplia.  Para la configuracion de direcciones IP, vea ip(7).

       Ademas, algunos dispositivos soportan  ioctls  privadas.  Estas  no  se
       describen aqui.

OBSERVACIONES

       Si  lo  vemos  de  forma  estricta,  SIOCGIFCONF  es especifica de IP y
       pertenece a ip(7).

       Los nombres de interfaces que no tiene direccion o  que  no  tienen  la
       opcion   IFF_RUNNING   activa,   se   pueden   encontrar  a  traves  de
       /proc/net/dev.

       Las direcciones IP locales version  6  (IPv6)  se  pueden  obtener  via
       /proc/net o via rtnetlink(7).

FALLOS

       glibc 2.1 no posee la macro ifr_newname en net/if.h. Anada lo siguiente
       a su programa como solucion:

              #ifndef ifr_newname
              #define ifr_newname     ifr_ifru.ifru_slave
              #endif

V'EASE TAMBI'EN

       ip(7), proc(7), rtnetlink(7)

Pagina man de Linux               2 mayo 1999                     NETDEVICE(7)