ddp(7) Miscellaneous Information Manual ddp(7) NOM ddp - Implementation Linux du protocole AppleTalk SYNOPSIS #include #include ddp_socket = socket(AF_APPLETALK, SOCK_DGRAM, 0); raw_socket = socket(AF_APPLETALK, SOCK_RAW, protocole); DESCRIPTION Linux implemente le protocole AppleTalk decrit dans le document Inside AppleTalk. Seuls le niveau DDP et l'AARP sont presents dans le noyau, ils sont concus pour etre utilises a l'aide des bibliotheques 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). Un socket AppleTalk est cree en appelant la fonction socket(2) avec un argument AF_APPLETALK en famille de socket. Les types valables sont SOCK_DGRAM pour ouvrir un socket ddp ou SOCK_RAW pour ouvrir un socket raw. protocole est le protocole AppleTalk pour envoyer ou recevoir des donnees. Pour le type SOCK_RAW il faut indiquer ATPROTO_DDP. Les sockets raw peuvent seulement etre ouverts par un processus ayant UID effectif 0 ou ayant la capacite CAP_NET_RAW. Format d'adresse Une adresse de socket AppleTalk est definie comme la combinaison d'un numero de reseau, d'un numero de noeud et d'un numero 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; /* Reseau / Noeud */ }; sat_family doit toujours etre rempli avec AF_APPLETALK. sat_port contient le numero de port. Les numeros inferieurs a 129 sont reserves. Seuls les processus ayant un UID effectif nul ou la capacite CAP_NET_BIND_SERVICE peut appeler bind(2) sur ces sockets. sat_addr est l'adresse de l'hote. Le membre net de la structure at_addr contient le numero de reseau dans l'ordre des octets du reseau (<< network byte order >>). La valeur AT_ANYNET est generique et correspond aussi a << ce reseau >>. Le membre node de la structure at_addr contient le numero de noeud de l'hote. La valeur AT_ANYNODE est generique, et correspond aussi a << ce noeud d'hote >>. La valeur ATADDR_BCAST est une adresse broadcast locale. Options de socket Il n'y a pas d'options specifiques au protocole sur les sockets. /proc interfaces IP prend en charge une serie d'interfaces /proc pour configurer certains parametres AppleTalk globaux. Ils sont accessibles en lisant ou ecrivant les fichiers du repertoire /proc/sys/net/atalk/. aarp-expiry-time L'intervalle de temps (en secondes) avant qu'une entree du cache AARP expire. aarp-resolve-time L'intervalle de temps (en secondes) avant qu'une entree du cache AARP soit resolue. aarp-retransmit-limit Le nombre de retransmissions d'une demande AARP avant de declarer le noeud mort. aarp-tick-time La periode (en secondes) de la temporisation dirigeant l'AARP. Les valeurs par defaut correspondent aux specifications et ne doivent normalement pas etre modifiees. Ioctls Toutes les ioctls decrits dans socket(7) s'appliquent a DDP. ERREURS EACCES L'utilisateur a essaye d'executer une operation sans avoir les permissions adequates. Cela inclut l'envoi vers une adresse broadcast sans avoir l'attribut correspondant, ou la tentative d'utilisation de port reserve sans UID effectif nul et sans la capacite CAP_NET_BIND_SERVICE. EADDRINUSE Tentative d'attachement a une adresse deja utilisee. EADDRNOTAVAIL Une interface inexistante a ete demandee ou l'adresse d'emission demandee n'etait pas locale. EAGAIN L'operation sur un socket non bloquant devrait bloquer. EALREADY Une connexion est deja en cours sur un socket non bloquant. ECONNABORTED Une connexion a ete fermee durant un appel a accept(2). EHOSTUNREACH Aucune entree dans la table de routage ne correspond a l'adresse de destination. EINVAL Un parametre non valable a ete fourni. EISCONN connect(2) a ete appelee sur un socket deja connecte. EMSGSIZE Le datagramme est plus grand que le MTU DDP. ENODEV Le peripherique reseau n'est pas disponible ou est incapable d'utiliser le protocole IP. ENOENT SIOCGSTAMP a ete appele sur un socket qu'aucun paquet n'a atteint. ENOMEM et ENOBUFS Pas assez de memoire. ENOPKG Un sous-systeme du noyau n'est pas configure. ENOPROTOOPT et EOPNOTSUPP Passage d'une option de socket non valable. ENOTCONN L'operation n'est definie que pour un socket connecte, mais ce socket n'etait pas connecte. EPERM L'utilisateur n'a pas les permissions necessaires. EPIPE La connexion a ete fermee prematurement ou volontairement par l'autre extremite. ESOCKTNOSUPPORT Le socket n'est pas configure ou un type inconnu a ete demande. VERSIONS AppleTalk est pris en charge par Linux 2.0 et ulterieurs. Les interfaces /proc existent depuis Linux 2.2. NOTES Soyez tres prudents avec l'option SO_BROADCAST, elle n'est pas privilegiee sous Linux. Il est facile de surcharger le reseau en ecrivant sans faire attention vers des adresses broadcast. Compatibilite L'interface socket AppleTalk de base est compatible avec netatalk sur les systemes derives de BSD. Plusieurs systemes BSD peuvent echouer a verifier SO_BROADCAST lorsqu'ils envoient des trames broadcast. Cela peut poser des problemes de compatibilite. Le mode socket raw est specifique a Linux et il existe pour une prise en charge plus facile le paquet CAP et les outils de supervision AppleTalk. BOGUES Il y a trop de valeurs d'erreurs heterogenes. Les ioctls utilisees pour configurer les tables de routage, les peripheriques, les tables AARP et d'autres peripheriques ne sont pas encore decrites. VOIR AUSSI recvmsg(2), sendmsg(2), capabilities(7), socket(7) TRADUCTION La traduction francaise de cette page de manuel a ete creee par Christophe Blaess , Stephan Rafin , Thierry Vignaud , Francois Micaux, Alain Portal , Jean-Philippe Guerard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas Francois , Florentin Duneau , Simon Paillard , Denis Barbier , David Prevot et Jean-Pierre Giraud Cette traduction est une documentation libre ; veuillez vous reporter a la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITE LEGALE. Si vous decouvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message a . Pages du manuel de Linux 6.06 31 octobre 2023 ddp(7)