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)