Scroll to navigation

ddp(7) Miscellaneous Information Manual ddp(7)

NOME

ddp - Implementação do protocolo Linux AppleTalk

SINOPSE

#include <sys/socket.h>
#include <netatalk/at.h>
ddp_socket = socket(AF_APPLETALK, SOCK_DGRAM, 0);
raw_socket = socket(AF_APPLETALK, SOCK_RAW, protocolo);

DESCRIÇÃO

Linux implementa os protocolos AppleTalk descritos em Inside 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 AF_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' direto. protocol é um protocolo AppleTalk para ser recebido ou enviado. Para SOCK_RAW Você deve especificar ATPROTO_DDP.

Os 'sockets' diretos 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 de 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 {

unsigned short s_net;
unsigned char s_node; }; struct sockaddr_atalk {
sa_family_t sat_family; /* address family */
unsigned char sat_port; /* port */
struct at_addr sat_addr; /* net/node */ };

sat_family is always set to AF_APPLETALK. sat_port contains the port. The port numbers below 129 are known as reserved ports. Only processes with the effective user ID 0 or the CAP_NET_BIND_SERVICE capability may bind(2) to these sockets. sat_addr is the host address. The net member of struct at_addr contains the host network in network byte order. The value of AT_ANYNET is a wildcard and also implies “this network.” The node member of struct at_addr contains the host node number. The value of AT_ANYNODE is a wildcard and also implies “this node.” The value of ATADDR_BCAST is a link local broadcast address.

Opções de socket

Nenhuma opção de 'socket' específica de protocolo é suportada.

Interfaces /proc

IP supports a set of /proc interfaces to configure some global AppleTalk parameters. The parameters can be accessed by reading or writing files in the directory /proc/sys/net/atalk/.

O intervalo de tempo (em segundos) antes de uma entrada de cache AARP expirar.
O intervalo de tempo (em segundos) antes de uma entrada de cache AARP ser resolvida.
O número de retransmissões de uma pesquisa AARP antes que o nó seja declarado morto.
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.

ERROS

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.
Tentativa de fazer uma ligação a um endereço já em uso.
Uma interface não existente foi requerida, ou o endereço de origem requerido não era local.
Uma operação sobre um socket não bloqueante causaria bloqueio.
Uma operação de conexão sobre um socket não bloqueante já está em progresso.
Uma conexão foi fechada durante um accept(2).
Nenhuma entrada da tabela de roteamento encontrou o endereço de destino.
Foi passado um argumento inválido.
connect(2) foi chamado em um 'socket' já conectado.
O datagrama é maior que o MTU DDP.
O dispositivo de rede não está disponível, ou não é capaz de enviar IP.
SIOCGSTAMP foi chamado em um 'socket' onde nenhum pacote chegou.
Não há memória disponível.
Um subsistema do kernel não foi configurado.
Uma opção de 'socket' inválida foi passada.
A operação só é definida em 'sockets' conectados 'socket', mas o 'socket' não é conectado.
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.
A conexão foi fechada ou derrubada inesperadamente pela outra extremidade.
O 'socket' foi desconfigurado, ou um tipo de 'socket' desconhecido foi requerido.

VERSÕES

Appletalk é suportado pelo Linux versão 2.0 ou superior. As interfaces proc existem desde o Linux 2.2.

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'.

Compatibilidade

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' direto é único em Linux e existe para suportar o pacote alternativo CAP e as ferramentas de monitoramento AppleTalk mais facilmente.

BUGS

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

recvmsg(2), sendmsg(2), capabilities(7), socket(7)

TRADUÇÃO

A tradução para português brasileiro desta página man foi criada por Rubens de Jesus Nogueira <darkseid99@usa.net> e André Luiz Fassone <lonely_wolf@ig.com.br>

Esta tradução é uma documentação livre; leia a Licença Pública Geral GNU Versão 3 ou posterior para as condições de direitos autorais. Nenhuma responsabilidade é aceita.

Se você encontrar algum erro na tradução desta página de manual, envie um e-mail para a lista de discussão de tradutores.

2 maio 2024 Linux man-pages (unreleased)