.\" -*- nroff -*- .\" Esta man page tem Copyright (C) 1998 Alan Cox. .\" Permissão é dada para is granted to distribute possibly modified copies .\" of this page provided the header is included verbatim, .\" e em caso de modificações não-triviais, o autor e a data .\" da modificação é acrescentada ao cabeçalho. .\" $Id: ddp.7,v 1.1 2000/10/20 13:05:11 ricardo Exp $ .TH DDP 7 "1/05/1999" "Página de Manual do Linux" "Manual do Programador Linux" .SH NOME ddp \- Implementação do protocolo Linux AppleTalk .SH SINOPSE .B #include .br .B #include .sp .IB ddp_socket " = socket(PF_APPLETALK, SOCK_DGRAM, 0);" .br .IB raw_socket " = socket(PF_APPLETALK, SOCK_RAW, " protocol ");" .SH DESCRIÇÃO Linux implementa os protocolos Appletalk descritos em .IR "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 .B netatalk . Esta página documenta a interface para aqueles que desejam ou precisam usar a camada DDP diretamente. .PP 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 .BR socket (7). .PP Um socket AppleTalk é criado chamando-se a função .BR socket (2) com um argumento .B PF_APPLETALK da família de socket. Tipos de sockets válidos são .B SOCK_DGRAM para abrir um socket .B ddp ou .B SOCK_RAW para abrir um socket .B raw . .I protocol é um protocolo Appletalk para ser recebido ou enviado. Para .B SOCK_RAW Você deve especificar .BR ATPROTO_DDP . .PP 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 .B CAP_NET_RAW . .SH 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. .PP .RS .nf .ta 4n 20n 32n 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ó */ }; .ta .fi .RE .PP .I sat_family é sempre setado para .B AF_APPLETALK. .I sat_port contém a porta. Os números de porta abaixo de 129 são conhecidos como .B portas reservadas. Apenas os processos com id efetivo de usuário igual a 0, ou com a propriedade .B CAP_NET_BIND_SERVICE podem realizar .BR bind (2) com esses sockets. .I sat_addr é o endereço do host. O membro .I net de .B struct at_addr contém a rede do host, em ordem de byte da rede. O valor de .B AT_ANYNET é um coringa, e também significa \(lqesta rede.\(rq O membro .I nó de .B struct at_addr contém o número do nó do host. O valor de .B AT_ANYNODE é um coringa, e também significa \(lqeste nó.\(rq O valor de .B ATADDR_BCAST é um endereço local de broadcast de link. .\" XXX isso não faz sentido [johnl] .SH OPÇÕES DE SOCKET Nenhuma opção de socket específica de protocolo é suportada. .SH 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 .B /proc/sys/net/atalk/* ou com a interface .BR sysctl (2) . .TP .B aarp-expiry-time O intervalo de tempo (em segundos) antes de uma entrada de cache AARP expirar. .TP .B aarp-resolve-time O intervalo de tempo (em segundos) antes de uma entrada de cache AARP ser resolvida. .TP .B aarp-retransmit-limit O número de retransmissões de uma pesquisa AARP antes que o nó seja declarado morto. .TP .B aarp-tick-time A taxa do temporizador (em segundos) para o temporizador que controla o AARP. .PP Os valores padrão casam com a especificação e nunca deveriam ser alterados. .SH IOCTLS Todos os ioctls descritos em .BR socket (7) aplicam-se ao ddp. .\" XXX Acrescenta um capítulo sobre multicasting .SH NOTAS Seja muito cuidadoso com a opção .B SO_BROADCAST \- ela não é privilegiada em Linux. É fácil sobrecarregar a rede com transmissões descuidadas para endereços de broadcast. .SH VERSÕES Appletalk é suportado pelo Linux versão 2.0 ou superior. A interface .B sysctl é nova no Linux 2.2. .SH ERROS .\" XXX documenta todos os erros. Nós realmente corrigiríamos os kernels para dar retornos de erro .\" mais uniformes (ENOMEM vs ENOBUFS, EPERM vs EACCES etc.) .TP .B ENOTCONN A operação só é definida sobre um socket conectado, mas o socket não está conectado. .TP .B EINVAL Um argumento inválido foi passado. .TP .B EMSGSIZE O datagrama é maior que o MTU DDP. .TP .B 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 .BR CAP_NET_BIND_SERVICE . .TP .B EADDRINUSE Tentativa de executar um bind em um endereço já em uso. .TP .BR ENOMEM " and " ENOBUFS Não há memória disponível. .TP .BR ENOPROTOOPT " and " EOPNOTSUPP Uma opção de socket inválido foi passada. .TP .B 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. .TP .B EADDRNOTAVAIL Uma interface não existente foi requerida, ou o endereço de fonte requerida não era local. .TP .B EAGAIN Operation on a nonblocking socket would block. .TP .B ESOCKTNOSUPPORT O socket foi desconfigurado, ou um tipo de socket desconhecido foi requerido. .TP .B EISCONN .BR connect (2) foi chamado sobre um socket já conectado. .TP .B EALREADY Uma operação de conexão sobre um socket não-bloqueado já está em progresso. .TP .B ECONNABORTED Uma conexão foi fechada durante um .BR accept (2). .TP .B EPIPE A conexão foi fechada ou desligada inesperadamente pelo outra extremidade. .TP .B ENOENT .B SIOCGSTAMP foi chamado sobre um socket onde nenhum pacote chegou. .TP .B EHOSTUNREACH Nenhuma entrada da tabela de roteamento encontrou o endereço de destino. .TP .B ENODEV O dispositivo de rede não está disponível, ou não é capaz de enviar IP. .TP .B ENOPKG Um subsistema do kernel não foi configurado. .SH COMPATIBILITY A interface básica do socket AppleTalk é compatível com .B netatalk em sistemas derivados do BSD. Muitos sistemas BSD falham na checagem de .B SO_BROADCAST quando enviam quadros de broadcast; isto pode levar a problemas de compatibilidade. .PP O modo de socket raw é único em Linux e existe para suportar o pacote alternativo CAP e as ferramentas de monitoramento AppleTalk mais facilmente. .SH ERROS Há muitos valores de erro inconsistentes. .PP Os ioctls usados para configurar tabelas de roteamento, dispositivos, tabelas AARP e outros dispositivos ainda não foram descritos. .SH VEJA TAMBÉM .BR sendmsg (2), .BR recvmsg (2), .BR socket (7) .SH TRADUZIDO POR LDP-BR em 21/08/2000. \&\fR\&\f(CWRubens de Jesus Nogueira (tradução)\fR \&\fR\&\f(CWAndré L. Fassone Canova (revisão)\fR