Provided by: manpages-pt_20040726-4_all bug

NOME

       netdevice - Acesso de baixo nível a dispositivos de rede Linux.

SINOPSE

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

DESCRIÇÃO

       Esta  man page descreve a interface de sockets que é usada para configurar dispositivos de
       rede.

       O Linux suporta alguns ioctls padronizados para  configurar  dispositivos  de  rede.  Eles
       podem  ser  usados em qualquer descritor de arquivos de socket, independente da família ou
       tipo. Eles passam uma estrutura ifreq :

       struct ifreq
       {
           char            ifr_name[IFNAMSIZ];   /* Nome da 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;
           };
       }

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

       Normalmente, o usuário especifica qual dispositivo será afetado pela seleção  ifr_name  to
       the  name  of  the  interface.  Todos  os  outros  membros da estrutura podem compartilhar
       memória.

IOCTLS

       Se um ioctl é marcado como privilegiado, então o seu uso requer um id efetivo de  usuário,
       ou a propriedade CAP_NET_ADMIN.  Se este não é o caso, EPERM será retornado.

       SIOCGIFNAME
              Dado  o ifr_ifindex, returna o nome da interface em ifr_name.  Este é o único ioctl
              que retorna seu resultado em ifr_name.

       SIOCGIFINDEX
              Recupera o índice da interface para ifr_ifindex.

       SIOCGIFFLAGS, SIOCSIFFLAGS
              Recebe ou seta a palavra de  flag  ativa  do  dispositivo.   ifr_flags  contém  uma
              máscara de bits com os seguintes valores:

                                Sinalizadores do dispositivo
              IFF_UP            Interface está rodando.
              IFF_BROADCAST     Conjunto de endereço de broadcast válido.
              IFF_DEBUG         Flag de debugging interno.
              IFF_LOOPBACK      Interface é uma interface do tipo loopback.
              IFF_POINTOPOINT   Interface é um link do tipo ponto-a-ponto.
              IFF_RUNNING       Recursos alocados.
              IFF_NOARP         Nenhum protocolo arp.
              IFF_PROMISC       Interface está em modo promíscuo.
              IFF_NOTRAILERS    Evita uso de trailers.
              IFF_ALLMULTI      Recebe todos os pacotes multicast.
              IFF_MASTER        Mestre de um load balancing bundle.
              IFF_SLAVE         Escravo de um load balancing bundle.
              IFF_MULTICAST     Suporta multicast
              IFF_PORTSEL       É capaz de selecionar tipo de meio via ifmap.
              IFF_AUTOMEDIA     Auto-seleção ativa de meio.
              IFF_DYNAMIC       Os endereços são perdidos quando a interface é
                                fechada.

              Ajustar a palavra de flag ativa é uma operação privilegiada, mas qualquer  processo
              pode lê-la.

       SIOCGIFMETRIC, SIOCSIFMETRIC
              Recebe  ou  seta  a  métrica  do  dispositivo  usando  ifr_metric.   Isto  não está
              implementado atualmente; ele seta ifr_metric em 0 se você  tenta  lê-lo  e  retorna
              EOPNOTSUPP se você tenta setá-lo.

       SIOCGIFMTU, SIOCSIFMTU
              Recebe  ou seta o  MTU (Maximum Transfer Unit - Unidade Máxima de Transferência) de
              um  dispositivo,  usando  ifr_mtu.   Setar  o  MTU  é  uma  operação  privilegiada.
              Selecionando a MTU para valores baixos pode-se provocar erros no kernel.

       SIOCGIFHWADDR, SIOCSIFHWADDR
              Recebe  ou seta o endereço de hardware de um dispositivo, usando ifr_hwaddr.  Setar
              o endereço de hardware é uma operação privilegiada.

       SIOCSIFHWBROADCAST
              Seta o endereço de hardware de broadcast de um dispositivo, de ifr_hwaddr.  Esta  é
              uma operação privilegiada.

       SIOCGIFMAP, SIOCSIFMAP
              Recebe  ou  seta  os  parâmetros de hardware da interface usando ifr_map.  Setar os
              parâmetros é uma operação privilegiada.

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

              A interpretação de uma estrutura ifmap  depende  do  driver  de  dispositivo  e  da
              arquitetura.

       SIOCADDMULTI, SIOCDELMULTI
              Acrescenta  ou  apaga  um  endereço  dos  filtros de multicast da camada de link do
              dispositivo, usando ifr_hwaddr.  Estas são operações  privilegiadas.   Veja  também
              packet(7) para uma alternativa.

       SIOCGIFTXQLEN, SIOCSIFTXQLEN
              Recebe  ou  seta  o  comprimento  da  fila de transmissão de um dispositivo, usando
              ifr_qlen.  Setar o comprimento da fila de transmissão é uma operação privilegiada.

       SIOCSIFNAME
              Muda o nome da interface especificada em ifr_ifindex para ifr_newname.  Esta é  uma
              operação privilegiada.

       SIOCGIFCONF
              Devolve  uma  listagem  de  endereços  de  interfaces (camada de transporte). Isto,
              atualmente, significa somente endereços da família AF_INET para compatibilidade.  O
              usuários  transmite  uma  estrutura ifconf como argumento para ioctl. Ele contém um
              ponteiro para uma array de estruturas ifreq dentro de ifc_req e o  seu  tamanho  em
              bytes  é  ifc_len.   O  kernel enche as ifreqs com todos os atuais endereços L3 que
              estão sendo executados: ifr_name contém o nome da interface (eth0:1 etc.), ifr_addr
              é  o  endereço.  O kernel retorno o tamanho atual dentro do ifc_len; se ele é igual
              ao tamanho original o usuário deve assumir que houve estouro e tenta novamente  com
              um  buffer  maior.  Quando  não  ocorrem erros d ioctl devolve 0; de outro modo -1.
              Estouro não é erro.

       Muitos protocolos suportam seus  próprios  ioctls  para  configurar  opções  de  interface
       específicas  do  protocolo.  Veja  as  páginas de manual de protocolos para uma descrição.
       Para configuração de endereços IP veja ip(7).

       Além disso, alguns dispositivos suportam ioctls privados. Estes não são descritos aqui.

NOTAS

       Vendo estritamente SIOCGIFCONF é específico o IP e faz parte do ip(7).

NOTAS

       Os nomes  das  interfaces  sem  endereços  ou  que  não  tem  um  sinalizador  IFF_RUNNING
       selecionado pode ser localizado através de /proc/net/dev.

VEJA TAMBÉM

       ip(7), proc(7)

TRADUZIDO POR LDP-BR em 21/08/2000.

       Rubens   de  Jesus  Nogueira  <darkseid99@usa.net>  (tradução)  André  L.  Fassone  Canova
       <lonelywolf@blv.com.br> (revisão