Votre IP: 38.107.179.244 
  
 
Google
 
Accueil e-mail Linux
Linux
Perl
Perl
C
Langage C
Dico
Dictionnaire
Biblio liens
Bibliothèque de liens
Index articles
Index articles
 

Date création : 30-03-2008 14:17:03

Linux  Vous êtes dans : GNU/Linux Astuces / Pages man [Section7 - Divers]


DDP

 

Index

  1. NOM
  2. SYNOPSIS
  3. DESCRIPTION
  4. FORMAT D'ADRESSE
  5. OPTIONS DES SOCKETS
  6. SYSCTLS
  7. IOCTLS
  8. NOTES
  9. VERSIONS
  10. ERREURS
  11. COMPATIBILITÉ
  12. BOGUES
  13. VOIR AUSSI
  14. TRADUCTION

 

NOMIndex

ddp - Implémentation Linux du protocole AppleTalk  

SYNOPSISIndex

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

DESCRIPTIONIndex

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 D'ADRESSEIndex

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 (« 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 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 SOCKETSIndex

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

SYSCTLSIndex

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

IOCTLSIndex

Toutes les ioctls décrites dans la page socket(7) s'appliquent au ddp.
 

NOTESIndex

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.  

VERSIONSIndex

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

ERREURSIndex

ENOTCONN
L'opération n'est définie que sur une socket connectée, mais cette socket n'était pas connectée.
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
Tentative d'attachement à une adresse déjà utilisée.
ENOMEM et ENOBUFS
Pas assez de mémoire.
ENOPROTOOPT et EOPNOTSUPP
Passage d'une option de socket non valable.
EPERM
L'utilisateur n'a pas les permissions nécessaires.
EADDRNOTAVAIL
Une interface inexistante a été demandée, ou l'adresse d'émission demandée n'était 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
connect(2) a été appelée 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é fermée durant un appel à accept(2).
EPIPE
La connexion a été fermée prématurément ou volontairement à l'autre extrêmité.
ENOENT
SIOCGSTAMP a été appelé sur une socket qu'aucun paquet n'a atteint.
EHOSTUNREACH
Aucune entrée dans la table de routage ne correspond à l'adresse de destination.
ENODEV
Le périphérique réseau n'est pas disponible ou est incapable d'utiliser le protocole IP.
ENOPKG
Un sous-système du noyau n'est pas configuré.
 

COMPATIBILITÉIndex

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.  

BOGUESIndex

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, et les tables AARP ne sont pas encore décrites.  

VOIR AUSSIIndex

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

TRADUCTIONIndex

Cette page de manuel a été traduite et mise à jour par Christophe Blaess <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis par Alain Portal <aportal AT univ-montp2 DOT fr> jusqu'en 2006.
La traduction de cette page de manuel est basée sur les traductions disponibles sur http://manpagesfr.free.fr/, mais est gérée par l'équipe francophone de traduction de Debian au travers de la liste de discussion debian-l10n-french.
Veuillez signaler toute erreur de traduction par un rapport de bogue sur le paquet manpages-fr.
Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « man -L C <section> <page_de_man> ».


Création : octobre 2007  © Tous droits réservés 2007 linux-perl-c
Valid HTML 4.01 TransitionalValid CSS