bionic (7) ddp.7.gz

Provided by: manpages-es_1.55-10_all bug

NOMBRE

       ddp - Implementanción de Linux del protocolo AppleTalk

SINOPSIS

       #include <sys/socket.h>
       #include <netatalk/at.h>

       ddp_socket = socket(PF_APPLETALK, SOCK_DGRAM, 0);
       raw_socket = socket(PF_APPLETALK, SOCK_RAW, protocol);

DESCRIPCIÓN

       Linux  implementa  el protocolo Appletalk descrito en Inside Appletalk.  Únicamente la capa DDP y el AARP
       se encuentran dentro del núcleo. Están diseñados para ser usados mediante las  bibliotecas  netatalk  del
       protocolo.   Esta  página  documenta  la  interfaz  para aquellos que desean o necesitan usar la capa DDP
       directamente.

       La comunicación entre Appletalk y el programa de usuario  funciona  usando  una  interfaz  de  conectores
       compatible con BSD. Para más información sobre conectores, vea socket(7).

       Un  conector  Appletalk  se  crea llamando a la función socket(2) y pasando PF_APPLETALK como familia del
       conector. Los tipos de conectores válidos son SOCK_DGRAM para abrir un conector ddp o SOCK_RAW para abrir
       un  conector  raw  (directo).  protocol es el protocolo Appletalk a ser recibido o enviado. Para SOCK_RAW
       debe especificar ATPROTO_DDP.

       Los conectores directos sólo pueden ser abiertos por un proceso cuyo identificador  de  usuario  efectivo
       sea 0 o por un proceso que posea la capacidad CAP_NET_RAW.

FORMATO DE LAS DIRECCIONES

       La  dirección  de  un  conector Appletalk se define como la combinación de un número de red, un número de
       nodo y un número de puerto.

              struct at_addr {
                  u_short         s_net;
                  u_char          s_node;
              };

              struct sockaddr_atalk {
                  sa_family_t     sat_family; /* familia de direcciones */
                  u_char          sat_port;   /* port */
                  struct at_addr  sat_addr;   /* red/nodo */
              };

       A sat_family siempre se le asigna el valor AF_APPLETALK.  sat_port contiene el  puerto.  Los  números  de
       puerto  por  debajo  de  129  se conocen como puertos reservados.  Sólo los procesos con identificador de
       usuario efectivo 0 o con la capacidad  CAP_NET_BIND_SERVICE  pueden  enlazar  estos  conectores  mediante
       bind(2).   sat_addr  es  la dirección del anfitrión (host).  El miembro net de struct at_addr contiene la
       red del anfitrión expresada en el formato "orden de red" de los bytes. El valor AT_ANYNET es un comodín y
       también  implica “esta red.”  El miembro node de struct at_addr contiene el número de nodo del anfitrión.
       El valor AT_ANYNODE es un comodín y también implica “este nodo.” El valor de ATADDR_BCAST es la dirección
       de enlace de difusión local.

OPCIONES DE LOS CONECTORES

       No se soportan opciones de conector específicas del protocolo.

SYSCTLS

       IP  soporta una interfaz sysctl para configurar algunos parámetros AppleTalk globales. Se puede acceder a
       las sysctls leyendo o escribiendo los ficheros del  directorio  /proc/sys/net/atalk  o  con  la  interfaz
       sysctl(2).

       aarp-expiry-time
              El intervalo de tiempo (en segundos) antes de que una entrada de la cache AARP expire.

       aarp-resolve-time
              El intervalo de tiempo (en segundos) antes de que se resuelva una entrada de la cache AARP.

       aarp-retransmit-limit
              El número de retransmisiones de una entrada AARP antes de que el nodo sea declarado muerto.

       aarp-tick-time
              La frecuencia del cronómetro (en segundos) para el cronómetro que controla el AARP.

       Los valores por defecto coinciden con la especificación y nunca debe ser necesario el cambiarlos.

IOCTLS

       Todas las ioctls descritas en socket(7) se aplican también a ddp.

OBSERVACIONES

       Tenga  cuidado  con la opción SO_BROADCAST (no es privilegiada en Linux). Es fácil sobrecargar la red sin
       darse cuenta enviando a la direcciones de difusión.

VERSIONES

       Appletalk está soportado a partir de la versión 2.0 de Linux. La interfaz sysctl es nueva en  la  versión
       2.2 de Linux.

ERRORES

       ENOTCONN
              La operación sólo está definida en un conector conectado pero el conector no está conectado.

       EINVAL Se ha pasado un argumento inválido.

       EMSGSIZE
              El datagrama es mayor que la MTU de DDP.

       EACCES El  usuario  ha  intentado  ejecutar una operación sin los permisos necesarios.  Estos incluyen el
              enviar a una dirección de difusión sin haber activado la opción de difusión e intentar el enlace a
              un puerto reservado sin un identificador de usuario efectivo 0 y sin CAP_NET_BIND_SERVICE.

       EADDRINUSE
              Se ha intentado el enlace a una dirección ya en uso.

       ENOMEM y ENOBUFS
              No hay suficiente memoria disponible.

       ENOPROTOOPT y EOPNOTSUPP
              Se han pasado opciones de conector inválidas.

       EPERM  El  usuario  no  tiene  permiso  para  establecer  una  prioridad  más  alta, hacer un cambio a la
              configuración o enviar señales al proceso o grupo solicitado.

       EADDRNOTAVAIL
              Se ha solicitado una interfaz inexistente o la dirección fuente solicitada no es local.

       EAGAIN La operación se bloquearía sobre un conector bloqueante.

       ESOCKTNOSUPPORT
              El conector está sin configurar o se ha solicitado un tipo de conector desconocido.

       EISCONN
              Se ha llamado a connect(2) sobre un conector ya conectado.

       EALREADY
              Ya se está realizando una operación de conexión sobre un conector no bloqueante.

       ECONNABORTED
              Se ha cerrado la conexión durante un accept(2).

       EPIPE  La conexión ha sido cerrada o cancelada por el otro extremo.

       ENOENT Se ha llamado a SIOCGSTAMP sobre un conector en donde no han llegado paquetes.

       EHOSTUNREACH
              No existe una entrada en la tabla de enrutamiento que coincida con la dirección de destino.

       ENODEV El dispositivo de red no está disponible o es incapaz de enviar IP.

       ENOPKG No se ha configurado un subsistema del núcleo.

COMPATIBILIDAD

       La interfaz básica de conectores AppleTalk es compatible con netatalk en los sistemas derivados  de  BSD.
       Muchos  sistemas  BSD  fallan  al  comprobar SO_BROADCAST cuando se envían tramas de difusión. Esto puede
       conducir a problemas de compatibilidad.

       El modo de conector directo es  único  de  Linux  y  existe  para  soportar  más  fácilmente  el  paquete
       alternativo CAP y las herramientas de monitorización de AppleTalk.

FALLOS

       Hay demasiados valores de error inconsistentes.

       Las  ioctls  usadas  para  configurar  las  tablas  de  enrutamiento,  dispositivos,  tablas AARP y otros
       dispositivos no se han descrito todavía.

VÉASE TAMBIÉN

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