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