Onload®️ est une pile réseau hautes performances au niveau utilisateur, qui accélère les E/S réseau TCP et UDP pour les applications utilisant les sockets BSD sous Linux.
OpenOnload comprend une bibliothèque partagée au niveau utilisateur qui intercepte les appels système liés au réseau et implémente la pile de protocoles, ainsi que les modules de noyau prenant en charge. Il est compatible avec l'API d'appel système complet, y compris les aspects qui posent généralement problème pour la mise en réseau au niveau de l'utilisateur, tels que fork(), exec(), le passage des sockets via les sockets de domaine Unix et l'avancement du protocole lorsque l'application n'est pas planifiée. .
OpenOnload est distribué sous forme de code source. Les instructions pour la construction, l'emballage et l'installation peuvent être trouvées dans DEVELOPING.md
S'il existe des interfaces à accélérer par Onload qui ne sont pas des interfaces AMD Solarflare, exécutez ce qui suit pour enregistrer ces interfaces à accélérer à l'aide de AF_XDP :
echo ens2f0 > /sys/module/sfc_resource/afxdp/register
L'application à charger doit être lancée en préfixant la ligne de commande par onload
.
Le référentiel hébergé publiquement est un projet soutenu par la communauté. Lorsqu'ils soulèvent des problèmes sur ce référentiel, il est prévu que les utilisateurs s'exécutent à partir de la tête de l'arborescence Git pour récupérer les modifications récentes, sans utiliser les versions officielles de Onload qui ont généralement été publiées avant l'apparition des dernières modifications du noyau, car cela est susceptible de conduire à de nombreux problèmes en double sont soulevés. Les incompatibilités introduites par les versions récentes du noyau seront probablement corrigées rapidement ici dans ce référentiel.
Les versions prises en charge d'OpenOnload sont disponibles sur https://www.xilinx.com/support/download/nic-software-and-drivers.html#open. Veuillez signaler les problèmes concernant les versions prises en charge d'Onload à [email protected].
Cette arborescence des sources est compatible avec les noyaux et distributions Linux suivants :
Onload offre une accélération réseau optimale et des fonctionnalités supplémentaires en utilisant l'interface matérielle native ef_vi fournie par les adaptateurs réseau AMD Solarflare par rapport à l'utilisation du mécanisme AF_XDP de Linux. Dans ce mode, la prise en charge du noyau et des pilotes pour AF_XDP n'est pas requise.
Une version du pilote net « sfc » pour les adaptateurs réseau AMD Solarflare est incluse.
Les adaptateurs suivants sont capables de prendre en charge OpenOnload sans AF_XDP :
OpenOnload peut accélérer les applications sur des adaptateurs réseau non Solarflare avec la prise en charge d'AF_XDP.
Pour prendre en charge la copie zéro, Onload a besoin de pilotes de carte réseau AF_XDP pour implémenter les primitives AF_XDP nécessaires. Généralement, les derniers pilotes des fournisseurs de cartes réseau prennent en charge ces primitives.
Le support AF_XDP est un travail en cours soutenu par la communauté qui n'est pas actuellement au niveau de la qualité de version.
Si un netdriver ne prend pas en charge AF_XDP en mode natif, Onload tentera d'utiliser le mode XDP générique lors de l'enregistrement d'une interface. Pour que cela fonctionne, il faut configurer userland helper avant d'enregistrer l'interface :
$ 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 peut être construit sans pilote SFC :
make
: utilisez la variable HAVE_SFC=0
;onload_build
& onload_install
: utilisez le paramètre --no-sfc
;onload_tool reload
: utilisez le paramètre --onload-only
.En outre, il peut être construit sans prise en charge EFCT et AUX :
make
: utilisez la variable HAVE_EFCT=0
;onload_build
: utilisez le paramètre --no-efct
. Veuillez consulter CONTRIBUTING.md
Ce fichier : (c) Copyright 2020-2024 Advanced Micro Devices, Inc.