Section: Manual del Programador de Linux (7)
Updated: 1 mayo 1999
Index Return to Main
Contents
ddp - Implementanción de Linux del protocolo AppleTalk
ddp_socket = socket(PF_APPLETALK, SOCK_DGRAM,
0);
raw_socket = socket(PF_APPLETALK, SOCK_RAW,
protocol);
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 librerías 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.
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 lqesta red.rq 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 lqeste nodo.rq El valor de ATADDR_BCAST es la dirección de enlace de difusión local.
No se soportan opciones de conector específicas del protocolo.
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).
Los valores por defecto coinciden con la especificación y nunca debe ser necesario el cambiarlos.
Todas las ioctls descritas en socket(7) se aplican también a ddp.
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.
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.
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.
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.
This document was created by man2html, using
the manual pages.
Time: 06:16:29 GMT, January 22, 2005