Onload®️ es una pila de red a nivel de usuario de alto rendimiento, que acelera la E/S de red TCP y UDP para aplicaciones que utilizan sockets BSD en Linux.
OpenOnload comprende una biblioteca compartida a nivel de usuario que intercepta llamadas al sistema relacionadas con la red e implementa la pila de protocolos y los módulos de soporte del kernel. Es compatible con la API de llamadas al sistema completa, incluidos aquellos aspectos que suelen ser problemáticos para las redes a nivel de usuario, como fork(), exec(), pasar sockets a través de sockets de dominio Unix y hacer avanzar el protocolo cuando la aplicación no está programada. .
OpenOnload se distribuye como código fuente. Las instrucciones para construir, empaquetar e instalar se pueden encontrar en DEVELOPING.md
Si hay interfaces que se acelerarán mediante Onload que no son interfaces AMD Solarflare, ejecute lo siguiente para registrar esas interfaces que se acelerarán mediante AF_XDP:
echo ens2f0 > /sys/module/sfc_resource/afxdp/register
La aplicación que se va a cargar debe iniciarse anteponiendo la línea de comando con onload
.
El repositorio alojado públicamente es un proyecto respaldado por la comunidad. Al plantear problemas en este repositorio, se espera que los usuarios ejecuten desde la cabecera del árbol de Git para detectar los cambios recientes, y no utilicen las versiones oficiales de Onload que normalmente se lanzaron antes de que aparecieran los cambios recientes en el kernel, ya que eso probablemente conducirá a Se plantean muchas cuestiones duplicadas. Es probable que las incompatibilidades introducidas por las versiones recientes del kernel se solucionen rápidamente aquí en este repositorio.
Las versiones compatibles de OpenOnload están disponibles en https://www.xilinx.com/support/download/nic-software-and-drivers.html#open. Plantee problemas sobre las versiones compatibles de Onload con [email protected].
Este árbol de fuentes es compatible con los siguientes kernels y distribuciones de Linux:
Onload proporciona una aceleración de red óptima y funciones adicionales utilizando la interfaz de hardware nativa ef_vi proporcionada por los adaptadores de red AMD Solarflare en comparación con el uso del mecanismo AF_XDP de Linux. En este modo, no se requiere compatibilidad con el kernel y el controlador para AF_XDP.
Se incluye una versión del controlador de red 'sfc' para adaptadores de red AMD Solarflare.
Los siguientes adaptadores pueden admitir OpenOnload sin AF_XDP:
OpenOnload puede acelerar aplicaciones en adaptadores de red que no sean Solarflare con soporte para AF_XDP.
Para admitir la copia cero, Onload necesita controladores de adaptador de red AF_XDP para implementar las primitivas AF_XDP necesarias. Normalmente, los controladores más recientes de los proveedores de adaptadores de red admitirán estas primitivas.
El soporte de AF_XDP es un trabajo en progreso respaldado por la comunidad que actualmente no se encuentra en calidad de lanzamiento.
Si un netdriver no admite AF_XDP en modo nativo, Onload intentará utilizar el modo XDP genérico al registrar una interfaz. Para que funcione, hay que configurar el asistente de usuario antes de registrar la interfaz:
$ make -C ./src/tools/bpf_link_helper/
$ echo $( realpath ./src/tools/bpf_link_helper/bpf-link-helper ) | sudo tee /sys/module/sfc_resource/parameters/bpf_link_helper
OpenOnload se puede construir sin el controlador SFC:
make
: use la variable HAVE_SFC=0
;onload_build
y onload_install
: use el parámetro --no-sfc
;onload_tool reload
: use el parámetro --onload-only
.Además, se puede construir sin soporte EFCT y AUX:
make
: use la variable HAVE_EFCT=0
;onload_build
: utiliza el parámetro --no-efct
. Por favor consulte CONTRIBUTING.md
Este archivo: (c) Copyright 2020-2024 Advanced Micro Devices, Inc.