Parece que las tarjetas Solarflare proporcionan su propia lógica de traducción de direcciones [1].
Normalmente, no se puede permitir que los procesos del espacio de usuario se comuniquen directamente con los dispositivos PCI, ya que pueden indicar a estos dispositivos que lean / escriban en ubicaciones de memoria arbitrarias. Una posible solución es tener una IOMMU (como AMD IOMMU o Intel VT-d) incrustada en el bus PCI, que el núcleo puede configurar para proporcionar controles de acceso y traducción de direcciones. Solarflare parece haber agregado parte de esa funcionalidad a sus tarjetas directamente, que es controlada por un controlador en el núcleo. Ese pequeño bit no se puede delegar en el espacio de usuario, pero todo el trabajo pesado que generalmente se realiza en la pila de red puede serlo, ya que todas las E / S se limitan a búferes de espacio de usuario particulares.
Referencias
[1] Introducción a la familia SFC91xx ASIC, Servicio de traducción de direcciones escalable: “Si bien esta función ahora es compatible con muchos conjuntos de chips de placa base de servidor habilitados para IOMMU, es el caso de que la compatibilidad de controladores para IOMMU siga siendo inmadura para muchos sistemas operativos y muchos clientes de Solarflare prefieren use el servicio de traducción de direcciones provisto en los ASIC de Solarflare con madurez
ayuda al conductor “.
- Controlador lógico programable (PLC): ¿Cómo se puede configurar la transmisión de datos de Unitronics v350 a través de TCP / IP de modo que cualquier caja de Linux pueda recibirla?
- ¿Puedo hacer ping a mi computadora portátil que está conectada a WiFi desde una instancia EC2?
- ¿Cuántos mensajes totales se envían directamente desde y hacia el cliente DNS y el servidor cliente DNS cuando un cliente necesita un nombre resuelto en una dirección IP correspondiente?
- ¿A qué red corresponde el NetID en su dirección IPv4?
- ¿Cuál es el número máximo de conexiones TCP simultáneas logradas a una dirección IP y puerto?