NOM

ddp - Implémentation Linux du protocole AppleTalk

SYNOPSIS

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

DESCRIPTION

Linux implémente le protocole AppleTalk décrit dans le document Inside AppleTalk. Seuls le niveau DDP et l'AARP sont présents dans le noyau, ils sont conçus pour être utilisés à l’aide des bibliothèques du protocole netatalk. Cette page documente l'interface pour ceux qui ont envie (ou besoin) d'utiliser directement le niveau DDP.
La communication entre AppleTalk et le programme utilisateur fonctionne en utilisant une interface compatible avec les sockets BSD. Consultez socket(7).
Une socket AppleTalk est créée en appelant la fonction socket(2) avec un argument AF_APPLETALK en famille de socket. Les types valables sont SOCK_DGRAM pour ouvrir une socket ddp ou SOCK_RAW pour ouvrir une socket raw. protocole est le protocole AppleTalk pour envoyer ou recevoir des données. Pour le type SOCK_RAW il faut indiquer ATPROTO_DDP.
Les sockets raw peuvent seulement être ouvertes par un processus ayant UID effectif nul ou ayant la capacité CAP_NET_RAW.

Format d'adresse

Une socket AppleTalk est définie comme la combinaison d'un numéro de réseau, d'un numéro de nœud et d'un numéro de port.

struct at_addr {
    unsigned short s_net;
    unsigned char  s_node;
};
struct sockaddr_atalk { sa_family_t sat_family; /* Famille d'adresse */ unsigned char sat_port; /* Port */ struct at_addr sat_addr; /* Réseau / Noeud */ };

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.

Options de socket

Il n'y a pas d'options spécifiques au protocole sur les sockets.

Interfaces /proc

IP prend en charge une série d'interfaces /proc pour configurer certains paramètres AppleTalk globaux. Ils sont accessibles en lisant ou écrivant les fichiers du répertoire /proc/sys/net/atalk/.
aarp-expiry-time
L'intervalle de temps (en secondes) avant qu'une entrée du cache AARP expire.
aarp-resolve-time
L'intervalle de temps (en secondes) avant qu'une entrée du cache AARP soit résolue.
aarp-retransmit-limit
Le nombre de retransmissions d'une demande AARP avant de déclarer le nœud mort.
aarp-tick-time
La période (en secondes) de la temporisation dirigeant l'AARP.
Les valeurs par défaut correspondent aux spécifications et ne doivent normalement pas être modifiées.

Ioctls

Toutes les ioctls décrits dans socket(7) s'appliquent à DDP.

ERREURS

EACCES
L'utilisateur a essayé d'exécuter une opération sans avoir les permissions adéquates. Cela inclut l'envoi vers une adresse broadcast sans avoir l'attribut correspondant, ou la tentative d'utilisation de port réservé sans UID effectif nul et sans la capacité CAP_NET_BIND_SERVICE.
EADDRINUSE
Tentative d'attachement à une adresse déjà utilisée.
EADDRNOTAVAIL
Une interface inexistante a été demandée ou l'adresse d'émission demandée n'était pas locale.
EAGAIN
L'opération sur un socket non bloquant devrait bloquer.
EALREADY
Une connexion est déjà en cours sur un socket non bloquant.
ECONNABORTED
Une connexion a été fermée durant un appel à accept(2).
EHOSTUNREACH
Aucune entrée dans la table de routage ne correspond à l'adresse de destination.
EINVAL
Un paramètre non valable a été fourni.
EISCONN
connect(2) a été appelée sur un socket déjà connecté.
EMSGSIZE
Le datagramme est plus grand que le MTU DDP.
ENODEV
Le périphérique réseau n'est pas disponible ou est incapable d'utiliser le protocole IP.
ENOENT
SIOCGSTAMP a été appelé sur un socket qu'aucun paquet n'a atteint.
ENOMEM et ENOBUFS
Pas assez de mémoire.
ENOPKG
Un sous-système du noyau n'est pas configuré.
ENOPROTOOPT et EOPNOTSUPP
Passage d'une option de socket non valable.
ENOTCONN
L'opération n'est définie que pour un socket connecté, mais ce socket n'était pas connecté.
EPERM
L'utilisateur n'a pas les permissions nécessaires.
EPIPE
La connexion a été fermée prématurément ou volontairement par l'autre extrémité.
ESOCKTNOSUPPORT
La socket n'est pas configurée ou un type inconnu a été demandé.

VERSIONS

AppleTalk est pris en charge par Linux 2.0 et ultérieurs. Les interfaces /proc existent depuis Linux 2.2.

NOTES

Be very careful with the SO_BROADCAST option; it is not privileged in Linux. It is easy to overload the network with careless sending to broadcast addresses.

Compatibilité

L'interface socket AppleTalk de base est compatible avec netatalk sur les systèmes dérivés de BSD. Plusieurs systèmes BSD peuvent échouer à vérifier SO_BROADCAST lorsqu'ils envoient des trames broadcast. Cela peut poser des problèmes de compatibilité.
Le mode socket raw est spécifique à Linux et existe pour prendre en charge le paquetage CAP et les outils de supervision AppleTalk plus facilement.

BOGUES

Il y a trop de valeurs d'erreurs hétérogènes.
The ioctls used to configure routing tables, devices, AARP tables, and other devices are not yet described.

VOIR AUSSI

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

TRADUCTION

La traduction française de cette page de manuel a été créée par Christophe Blaess <https://www.blaess.fr/christophe/>, Stéphan Rafin <[email protected]>, Thierry Vignaud <[email protected]>, François Micaux, Alain Portal <[email protected]>, Jean-Philippe Guérard <[email protected]>, Jean-Luc Coulon (f5ibh) <[email protected]>, Julien Cristau <[email protected]>, Thomas Huriaux <[email protected]>, Nicolas François <[email protected]>, Florentin Duneau <[email protected]>, Simon Paillard <[email protected]>, Denis Barbier <[email protected]> et David Prévot <[email protected]>
Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à [email protected]

Recommended readings

Pages related to ddp you should read also: