ddp(7) Miscellaneous Information Manual ddp(7) NOMBRE ddp - Implementancion de Linux del protocolo AppleTalk SINOPSIS #include #include ddp_socket = socket(AF_APPLETALK, SOCK_DGRAM, 0); raw_socket = socket(AF_APPLETALK, SOCK_RAW, protocol); DESCRIPCION Linux implementa el protocolo AppleTalk descrito en Inside AppleTalk. Unicamente la capa DDP y el AARP se encuentran dentro del nucleo. Estan disenados para ser usados mediante las bibliotecas netatalk del protocolo. Esta pagina documenta la interfaz para aquellos que desean o necesitan usar la capa DDP directamente. La comunicacion entre AppleTalk y el programa de usuario funciona usando una interfaz de conectores compatible con BSD. Para mas informacion sobre conectores, vea socket(7). Un conector Appletalk se crea llamando a la funcion socket(2) y pasando AF_APPLETALK como familia del conector. Los tipos de conectores validos 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 solo 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 direccion de un conector AppleTalk se define como la combinacion de un numero de red, un numero de nodo y un numero de puerto. struct at_addr { unsigned short s_net; unsigned char s_node; }; struct sockaddr_atalk { sa_family_t sat_family; /* familia de direcciones */ unsigned 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 numeros de puerto por debajo de 129 se conocen como puertos reservados. Solo 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 direccion del anfitrion (host). El miembro net de struct at_addr contiene la red del anfitrion expresada en el formato "orden de red" de los bytes. El valor AT_ANYNET es un comodin y tambien implica "esta red". El miembro node de struct at_addr contiene el numero de nodo del anfitrion. El valor AT_ANYNODE es un comodin y tambien implica "este nodo". El valor de ATADDR_BCAST es la direccion de enlace de difusion local. Opciones de los conectores No se soportan opciones de conector especificas del protocolo. Interfaces /proc IP soporta un conjunto de interfaces /proc para configurar algunos parametros AppleTalk globales. Se puede acceder a ellos leyendo o escribiendo los ficheros del directorio /proc/sys/net/atalk. 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 numero de retransmisiones de una entrada AARP antes de que el nodo sea declarado muerto. aarp-tick-time La frecuencia del cronometro (en segundos) para el cronometro que controla el AARP. Los valores por defecto coinciden con la especificacion y nunca debe ser necesario el cambiarlos. Ioctls Todas las ioctls descritas en socket(7) se aplican tambien a DDP. ERRORES EACCES El usuario ha intentado ejecutar una operacion sin los permisos necesarios. Estos incluyen el enviar a una direccion de difusion sin haber activado la opcion de difusion 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 direccion ya en uso. EADDRNOTAVAIL Se ha solicitado una interfaz inexistente o la direccion fuente solicitada no es local. EAGAIN La operacion se bloquearia sobre un conector bloqueante. EALREADY Ya se esta realizando una operacion de conexion sobre un conector no bloqueante. ECONNABORTED Se ha cerrado la conexion durante un accept(2). EHOSTUNREACH No existe una entrada en la tabla de enrutamiento que coincida con la direccion de destino. EINVAL Se ha pasado un argumento invalido. EISCONN Se ha llamado a connect(2) sobre un conector ya conectado. EMSGSIZE El datagrama es mayor que la MTU de DDP. ENODEV El dispositivo de red no esta disponible o es incapaz de enviar IP. ENOENT Se ha llamado a SIOCGSTAMP sobre un conector en donde no han llegado paquetes. ENOMEM y ENOBUFS No hay suficiente memoria disponible. ENOPKG No se ha configurado un subsistema del nucleo. ENOPROTOOPT y EOPNOTSUPP Se han pasado opciones de conector invalidas. ENOTCONN La operacion solo esta definida en un conector conectado pero el conector no esta conectado. EPERM El usuario no tiene permiso para establecer una prioridad mas alta, hacer un cambio a la configuracion o enviar senales al proceso o grupo solicitado. EPIPE La conexion ha sido cerrada o cancelada por el otro extremo. ESOCKTNOSUPPORT El conector esta sin configurar o se ha solicitado un tipo de conector desconocido. VERSIONES El soporte para Appletalk esta incluido a partir de la version 2.0 de Linux. La interfaz /proc existe desde la version 2.2 de Linux. NOTAS Tenga cuidado con la opcion SO_BROADCAST; no es privilegiada en Linux. Es facil sobrecargar la red sin darse cuenta enviando a la direcciones de difusion. Compatibilidad La interfaz basica de conectores AppleTalk es compatible con netatalk en los sistemas derivados de BSD. Muchos sistemas BSD fallan al comprobar SO_BROADCAST cuando se envian tramas de difusion. Esto puede conducir a problemas de compatibilidad. El modo de conector directo es unico de Linux y existe para soportar mas facilmente el paquete alternativo CAP y las herramientas de monitorizacion de AppleTalk. ERRORES 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 todavia. VEASE TAMBIEN recvmsg(2), sendmsg(2), capabilities(7), socket(7) TRADUCCION La traduccion al espanol de esta pagina del manual fue creada por Juan Piernas y Marcos Fouces Esta traduccion es documentacion libre; lea la GNU General Public License Version 3 o posterior con respecto a las condiciones de copyright. No existe NINGUNA RESPONSABILIDAD. Si encuentra algun error en la traduccion de esta pagina del manual, envie un correo electronico a . Paginas de manual de Linux 6.06 31 Octubre 2023 ddp(7)