DDP
Section : Manuel de l'administrateur Linux (
7)
Mise à jour de la version anglaise : 1er mai 1999
Index
Menu principal
NOM
ddp - Implémentation Linux du protocole AppleTalk
SYNOPSIS
#include <sys/socket.h>
#include <netatalk/at.h>
ddp_socket = socket(PF_APPLETALK, SOCK_DGRAM, 0);
raw_socket = socket(PF_APPLETALK, SOCK_RAW, protocole);
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 via les 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.
Voir
socket(7).
Une socket AppleTalk est créée en appelant la fonction
socket(2)
avec un argument
PF_APPLETALK
en famille de socket.
Les types valides sont
SOCK_DGRAM
pour ouvrir une socket
ddp
ou
SOCK_RAW
pour ouvrir une socket
raw.
protocol
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
un 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; /* nœud / réseau */
};
sat_family
doit toujours être rempli avec
AF_APPLETALK.
sat_port
contient le numéro de port.
Les numéros inférieurs à 129 sont réservés.
Seuls les processus ayant un UID effectif nul ou la capacité
CAP_NET_BIND_SERVICE
peut appeler
bind(2)
sur ces sockets.
sat_addr
est l'adresse de l'hôte.
Le membre
net
de la structure
at_addr
contient le numéro de réseau dans l'ordre des octets du réseau.
La valeur
AT_ANYNET
est générique et correspond aussi à « réseau ». Le membre
node
de la structure
at_addr
contient le numéro d'hôte.
La valeur
AT_ANYNODE
est générique, et correspond aussi à « hôte ». La valeur
ATADDR_BCAST
est une adresse broadcast locale.
Options des sockets
Il n'y a pas d'options spécifiques au protocole sur les sockets.
Sysctls
Il y a une interface sysctl pour configurer certains paramètres
AppleTalk globaux.
On peut y accéder en lisant ou écrivant les fichiers
/proc/sys/net/atalk/*
ou en utilisant l'appel système
sysctl(2).
- 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écrites dans la page
socket(7)
s'appliquent au ddp.
ERREURS
- EACCES
-
L'utilisateur a essayé d'exécuter une opération sans avoir
les permissions adéquates.
Ceci 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
-
L'adresse est déjà utilisée.
- EADDRNOTAVAIL
-
On a demandé une interface inexistante, ou l'adresse d'émission réclamée
n'est pas locale.
- EAGAIN
-
L'opération bloquerait alors que la socket est non bloquante.
- EALREADY
-
Une connexion est déjà en cours sur la socket non bloquante.
- ECONNABORTED
-
Une connexion a été refermée pendant la durée de
accept(2).
- EHOSTUNREACH
-
Aucune entrée dans la table de routage ne correspond à l'adresse
de destination.
- EINVAL
-
Argument invalide.
- EISCONN
-
On appelle
connect(2)
sur une socket déjà connectée.
- EMSGSIZE
-
Le datagramme est plus grand que le MTU DDP.
- ENODEV
-
Périphérique réseau non disponible ou incapable d'envoyer en IP.
- ENOENT
-
SIOCGSTAMP
a été appelée sur une socket où aucun paquet n'est arrivé.
- ENOMEM et ENOBUFS
-
Pas assez de mémoire.
- ENOPKG
-
Un sous-système du noyau n'est pas configuré.
- ENOPROTOOPT et EOPNOTSUPP
-
Option invalide.
- ENOTCONN
-
L'opération n'est définie que sur une socket connectée
et ce n'était pas le cas.
- EPERM
-
L'utilisateur n'a pas les permissions nécessaires.
- EPIPE
-
La connexion a été fermée par l'interlocuteur.
- ESOCKTNOSUPPORT
-
La socket n'est pas configurée ou on a demandé un type inconnu.
VERSIONS
Appletalk est supporté par Linux 2.0 et ultérieurs.
L'interface
sysctl
est nouvelle dans Linux 2.2.
NOTES
Soyez très prudents avec l'option
SO_BROADCAST,
elle n'est pas privilégiée sous Linux.
Il est facile de surcharger le réseau en écrivant sans faire attention
vers des adresses broadcast.
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.
Ceci peut poser des problèmes de compatibilité.
Le mode socket
raw
est spécifique à Linux et existe pour supporter le paquetage
CAP et les outils de supervision AppleTalk plus facilement.
BOGUES
Il y a trop de valeurs d'erreurs incohérentes.
Les ioctls utilisées pour configurer les tables de routage,
les périphériques, et les tables AARP ne sont pas encore décrites.
VOIR AUSSI
recvmsg(2),
sendmsg(2),
capabilities(7),
socket(7)
TRADUCTION
Ce document est une traduction réalisée par Christophe Blaess
<http://www.blaess.fr/christophe/> le 4 janvier 2000
et révisée le 17 juillet 2008.
L'équipe de traduction a fait le maximum pour réaliser une adaptation
française de qualité. La version anglaise la plus à jour de ce document est
toujours consultable via la commande : « LANG=C man 7 ddp ».
N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute
erreur dans cette page de manuel.
Index
- NOM
-
- SYNOPSIS
-
- DESCRIPTION
-
- Format d'adresse
-
- Options des sockets
-
- Sysctls
-
- Ioctls
-
- ERREURS
-
- VERSIONS
-
- NOTES
-
- Compatibilité
-
- BOGUES
-
- VOIR AUSSI
-
- TRADUCTION
-
Dernière mise à jour : 17 juillet 2008