Man page - ddp(7)

Packages contains this manual

Available languages:

en fr pt_BR es ja ru ro

Manual

ddp

NOM
SYNOPSIS
DESCRIPTION
Format d’adresse
Options de socket
/proc interfaces
Ioctls
ERREURS
VERSIONS
NOTES
Compatibilité
BOGUES
VOIR AUSSI
TRADUCTION

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, 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 Ă  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).

Un socket AppleTalk est créé 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 données. Pour le type SOCK_RAW il faut indiquer ATPROTO_DDP .

Les sockets raw peuvent seulement ĂȘtre ouverts par un processus ayant UID effectif 0 ou ayant la capacitĂ© CAP_NET_RAW .

Format d’adresse

Une adresse de 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 / NƓud */
};

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 (« network byte order »). La valeur AT_ANYNET est gĂ©nĂ©rique et correspond aussi Ă  « ce rĂ©seau ». Le membre node de la structure at_addr contient le numĂ©ro de nƓud de l’hĂŽte. La valeur AT_ANYNODE est gĂ©nĂ©rique, et correspond aussi Ă  « ce nƓud d’hĂŽte ». La valeur ATADDR_BCAST est une adresse broadcast locale.

Options de socket

Il n’y a pas d’options spĂ©cifiques au protocole sur les sockets.

/proc interfaces

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

Le socket n’est pas configurĂ© 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

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. Cela peut poser des problĂšmes de compatibilitĂ©.

Le mode socket raw est spécifique à 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 hĂ©tĂ©rogĂšnes.

Les ioctls utilisĂ©es pour configurer les tables de routage, les pĂ©riphĂ©riques, les tables AARP et d’autres pĂ©riphĂ©riques ne sont pas encore dĂ©crites.

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 <stephan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org>, David Prévot <david@tilapin.org> et Jean-Pierre Giraud <jean-pierregiraud@neuf.fr>

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 à debian-l10n-french@lists.debian.org .