Provided by:
manpages-pt_20040726-4_all 
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