Provided by: manpages-pt_20040726-4_all bug

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  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)