¿Por qué * BSD usa nombres específicos del controlador para las interfaces de red?
Para simplificar las cosas. Si busca una interfaz llamada bge0
y echa un vistazo a los manuales o utiliza su sistema de enlace mnemónico , recordará rápidamente que este controlador es un Broadcom Gigabit Etherhet . Este documento también es útil.
¿Significa que no hay una capa de abstracción que describa "una interfaz de red genérica" en el núcleo, por lo que cada controlador se abordaría internamente a través de su propia API?
La regla aquí es:
- Use el nombre del conductor para crear un nombre de dispositivo;
- Use la identificación PCI más baja para crear el número justo después del nombre del dispositivo;
No se necesita capa de abstracción. Así de simple
(¿cómo) afecta a los subsistemas como la agregación de enlaces, la conformación del tráfico, QoS (ALTQ), el filtrado y otros?
Los nombres de interfaz no deben interferir en la configuración del tráfico.
Precisamente, parece que bajo pfSense, no puedo usar ALTQ con una interfaz virtual de agregación de enlaces (LAG).
Hoy debería funcionar:
¿Es esta una limitación interna de BSD debido a la falta de una capa de abstracción adecuada?
No es que no haya una capa adecuada para manejar esto. Se debe a que podría usar otros recursos para manejar esos nombres, como crear nombres de interfaz ( /etc/rc.conf
) o cambiar su ID de pci en la configuración de la placa base. Y como han dicho otros sobre esta pregunta, incluso Linux va a tomar este camino biosdevname
.