Provided by: manpages-fr_1.67.0-1_all bug

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
       UID effectif nul ou ayant la capacité CAP_NET_RAW.

FORMAT DADRESSE
       Une  socket  AppleTalk  est définie comme la combinaison d’un numéro de
       réseau, d’un numéro de noeud et d’un numéro de port.

              struct at_addr {
                  u_short    s_net;
                  u_char     s_node;
              };

              struct sockaddr_atalk {
                  sa_family_t     sat_family; /* Famille d’adresse */
                  u_char          sat_port;   /* Port              */
                  struct at_addr  sat_addr;   /* noeud / 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 à “ce  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 à “cet  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  sysctls  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 noeud 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.

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.

VERSIONS

       Appletalk est supporté par Linux 2.0 et ultérieurs. L’interface  sysctl
       est nouvelle dans Linux 2.2.

ERREURS

       ENOTCONN
              L’opération  n’est  définie  que  sur une socket connectée et ce
              n’était pas le cas.

       EINVAL Argument invalide.

       EMSGSIZE
              Le datagramme est plus grand que le MTU DDP.

       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.

       ENOMEM et ENOBUFS
              Pas assez de mémoire

       ENOPROTOOPT  EOPNOTSUPP
              Option invalide.

       EPERM  L’utilisateur n’a pas les permissions nécessaires.

       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.

       ESOCKTNOSUPPORT
              La  socket n’est pas configurée ou on a demandé un type inconnu.

       EISCONN
              On appelle connect(2) sur une socket déjà connectée.

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

       EPIPE  La connexion a été fermée par l’interlocuteur.

       ENOENT SIOCGSTAMP a été appelée sur une socket où  aucun  paquet  n’est
              arrivé.

       EHOSTUNREACH
              Aucune entrée dans la table de routage ne correspond à l’adresse
              de destination.

       ENODEV Périphérique réseau non disponible ou incapable d’envoyer en IP.

       ENOPKG Un sous-système du noyau n’est pas configuré.

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
       paquet 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 décrites encore.

VOIR AUSSI

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

TRADUCTION

       Christophe Blaess, 2000-2003.