Provided by:
manpages-pt_20040726-4_all 
NOME
ddp - Implementação do protocolo Linux AppleTalk
SINOPSE
#include <sys/socket.h>
#include <netatalk/at.h>
ddp_socket = socket(PF_APPLETALK, SOCK_DGRAM, 0);
raw_socket = socket(PF_APPLETALK, SOCK_RAW, protocol);
DESCRIÇÃO
Linux implementa os protocolos Appletalk descritos em Por dentro do
Appletalk. Somente a camada DDP e o AARP estão presentes no kernel.
Eles são projetados para serem usados nas bibliotecas do protocolo
netatalk Esta página documenta a interface para aqueles que desejam ou
precisam usar a camada DDP diretamente.
A comunicação entre Appletalk e o programa do usuário funciona usando
uma interface de socket compatível com BSD. Para mais informações
sobre sockets, veja socket(7).
Um socket AppleTalk é criado chamando-se a função socket(2) com um
argumento PF_APPLETALK da família de socket. Tipos de sockets válidos
são SOCK_DGRAM para abrir um socket ddp ou SOCK_RAW para abrir um
socket raw protocol é um protocolo Appletalk para ser recebido ou
enviado. Para SOCK_RAW Você deve especificar ATPROTO_DDP.
Raw sockets só podem ser abertos por um processo com um id efetivo de
usuário igual a 0, ou quando o processo tem a propriedade CAP_NET_RAW
FORMATO DO ENDEREÇO
Um endereço de socket Appletalk é definido como uma combinação de um
número de rede, um número de nó e um número de porta.
struct at_addr {
u_short s_net;
u_char s_node;
};
struct sockaddr_atalk {
sa_family_t sat_family; /* família de endereço */
u_char sat_port; /* porta */
struct at_addr sat_addr; /* rede/nó */
};
sat_family é sempre setado para AF_APPLETALK. sat_port contém a porta.
Os números de porta abaixo de 129 são conhecidos como portas
reservadas. Apenas os processos com id efetivo de usuário igual a 0,
ou com a propriedade CAP_NET_BIND_SERVICE podem realizar bind(2) com
esses sockets. sat_addr é o endereço do host. O membro net de struct
at_addr contém a rede do host, em ordem de byte da rede. O valor de
AT_ANYNET é um coringa, e também significa “esta rede.” O membro n de
struct at_addr contém o número do nó do host. O valor de AT_ANYNODE é
um coringa, e também significa “este nó.” O valor de ATADDR_BCAST é um
endereço local de broadcast de link.
OPÇÕES DE SOCKET
Nenhuma opção de socket específica de protocolo é suportada.
SYSCTLS
IP suporta uma interface sysctl para configurar alguns parâmetros
globais do AppleTalk. Os sysctls podem ser acessados pela leitura ou
escrita nos arquivos /proc/sys/net/atalk/* ou com a interface sysctl(2)
aarp-expiry-time
O intervalo de tempo (em segundos) antes de uma entrada de cache
AARP expirar.
aarp-resolve-time
O intervalo de tempo (em segundos) antes de uma entrada de cache
AARP ser resolvida.
aarp-retransmit-limit
O número de retransmissões de uma pesquisa AARP antes que o nó
seja declarado morto.
aarp-tick-time
A taxa do temporizador (em segundos) para o temporizador que
controla o AARP.
Os valores padrão casam com a especificação e nunca deveriam ser
alterados.
IOCTLS
Todos os ioctls descritos em socket(7) aplicam-se ao ddp.
NOTAS
Seja muito cuidadoso com a opção SO_BROADCAST - ela não é privilegiada
em Linux. É fácil sobrecarregar a rede com transmissões descuidadas
para endereços de broadcast.
VERSÕES
Appletalk é suportado pelo Linux versão 2.0 ou superior. A interface
sysctl é nova no Linux 2.2.
ERROS
ENOTCONN
A operação só é definida sobre um socket conectado, mas o socket
não está conectado.
EINVAL Um argumento inválido foi passado.
EMSGSIZE
O datagrama é maior que o MTU DDP.
EACCES O usuário tentou executar uma operação sem as permissões
necessárias. Isso inclui envios a um endereço de broadcast sem
ter a flag de broadcast setada, e tentativas de executar um bind
em uma porta reservada sem um id efetivo de usuário igual a 0 ou
CAP_NET_BIND_SERVICE.
EADDRINUSE
Tentativa de executar um bind em um endereço já em uso.
ENOMEM and ENOBUFS
Não há memória disponível.
ENOPROTOOPT and EOPNOTSUPP
Uma opção de socket inválido foi passada.
EPERM Usuário não tem permissão de setar alta prioridade, fazer uma
mudança de configuração, ou enviar sinais para um processo ou
grupo requerido.
EADDRNOTAVAIL
Uma interface não existente foi requerida, ou o endereço de
fonte requerida não era local.
EAGAIN Operation on a nonblocking socket would block.
ESOCKTNOSUPPORT
O socket foi desconfigurado, ou um tipo de socket desconhecido
foi requerido.
EISCONN
connect(2) foi chamado sobre um socket já conectado.
EALREADY
Uma operação de conexão sobre um socket não-bloqueado já está em
progresso.
ECONNABORTED
Uma conexão foi fechada durante um accept(2).
EPIPE A conexão foi fechada ou desligada inesperadamente pelo outra
extremidade.
ENOENT SIOCGSTAMP foi chamado sobre um socket onde nenhum pacote
chegou.
EHOSTUNREACH
Nenhuma entrada da tabela de roteamento encontrou o endereço de
destino.
ENODEV O dispositivo de rede não está disponível, ou não é capaz de
enviar IP.
ENOPKG Um subsistema do kernel não foi configurado.
COMPATIBILITY
A interface básica do socket AppleTalk é compatível com netatalk em
sistemas derivados do BSD. Muitos sistemas BSD falham na checagem de
SO_BROADCAST quando enviam quadros de broadcast; isto pode levar a
problemas de compatibilidade.
O modo de socket raw é único em Linux e existe para suportar o pacote
alternativo CAP e as ferramentas de monitoramento AppleTalk mais
facilmente.
ERROS
Há muitos valores de erro inconsistentes.
Os ioctls usados para configurar tabelas de roteamento, dispositivos,
tabelas AARP e outros dispositivos ainda não foram descritos.
VEJA TAMBÉM
sendmsg(2), recvmsg(2), socket(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)