Directorio de artículos
Arquitectura del controlador de dispositivo de red
La arquitectura del controlador de red de Linux se puede dividir en cuatro capas, como se muestra en la siguiente figura, de arriba a abajo son la capa de interfaz de protocolo, la capa de interfaz de dispositivo de red y luego la capa de función del controlador de dispositivo que proporciona las funciones reales, así como el dispositivo de red y los medios de red. Piso.
Linux
El código fuente del kernel proporciona una interfaz de dispositivo de red y un código de nivel superior, por lo que el trabajo principal de trasplantar controladores de hardware de red específicos es completar el código correspondiente de la capa de función del controlador de dispositivo y definir struc t net_device
la estructura del tipo de interfaz de dispositivo de red de acuerdo con las características específicas del hardware de la capa subyacente. variable de cuerpo, e implementada en la que una función de operación correspondiente y el controlador de interrupciones Linux
para todos los dispositivos de red se abstraen como una interfaz uniforme, es decir, la interfaz de dispositivo de red, a través de la struct net_device
variable de estructura que representa el tipo de operación de los dispositivos de red en el núcleo, donde ambos que comprende un equipo de bucle ( loopback
), que incluye la interfaz de dispositivos de hardware con la red central por dev _ base
el dispositivo como un puntero de cabeza de lista para administrar todos los dispositivos de red.
En realidad, dev_base
apunta a device
un puntero de estructura, y se compone de device
estructuras del encabezado de la configuración de la tabla de lista, después de completar la inicialización del sistema, el sistema detecta que el dispositivo de red se almacena automáticamente en esta lista vinculada, cada entrada de la lista representa un Un dispositivo de red físico existente. Cuando se va a enviar un paquete de datos, el subsistema de red seleccionará la interfaz de red correspondiente para la transmisión de datos de acuerdo con la tabla de enrutamiento del sistema, y cuando se reciba el paquete de datos, recibirá los datos a través del programa de servicio de interrupción registrado por el controlador.