NETDEVICE(7) | Manual do Programador Linux | NETDEVICE(7) |
netdevice - Acesso de baixo nível a dispositivos de rede Linux.
#include <sys/ioctl.h> #include <net/if.h>
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.
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.
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.
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.
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.
Vendo estritamente SIOCGIFCONF é específico o IP e faz parte do ip(7).
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.
Rubens de Jesus Nogueira <darkseid99@usa.net> (tradução) André L. Fassone Canova <lonelywolf@blv.com.br> (revisão
2/05/1999 | Página de Manual do Linux |