Especificaciones de registro de rutina de resolución de direcciones
El controlador dlpi puede soportar todos los tipos de interfaz genéricos. DLPI se implementa para permitir al usuario especificar rutinas de resolución de direcciones para entrada y salida utilizando el ioctl STREAMS I_STR o para confiar en las rutinas predeterminadas del sistema.
El sistema operativo proporciona rutinas de resolución de direcciones predeterminadas (almacenadas en el archivo /usr/include/sys/ndd.h ) que son específicas de la interfaz.
ndd->ndd_demuxer->nd_address_input
El controlador dlpi llama a la rutina de resolución de dirección de entrada con un puntero al encabezado MAC (y, opcionalmente, al encabezado LLC) y un puntero a una estructura de memoria intermedia (mbuf) que contiene datos. El contenido real del área de datos depende del tipo de formato de paquete que se haya especificado. (Consulte Datos específicos de registro de formato de paquete.)
ndd->ndd_demuxer->nd_address_resolve
El controlador dlpi llama a la rutina de resolución de direcciones de salida con un puntero a una estructura output_bundle (descrita en /usr/include/net/nd_lan.h), una estructura mbuf y una estructura ndd. El controlador asigna la dirección de destino akey_to_findy copia elpkt_formaty tiempo de vinculaciónllcen ayudantes. Si el usuario ha proporcionado un DSAP distinto del establecido en el momento de la vinculación, el controlador también copia los valores de DSAP en los ayudantes de helpers.The completa la cabecera MAC y llama a la subrutina ndd_output .
noinres(int fd) {
return istr(fd, DL_INPUT_RESOLVE, 0);
}