Provided by: manpages-pt_20040726-5_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

Página de Manual do Linux                           2/05/1999                                       NETDEVICE(7)