Onload®️ é uma pilha de rede de alto desempenho em nível de usuário, que acelera a E/S de rede TCP e UDP para aplicativos que usam soquetes BSD no Linux.
OpenOnload compreende uma biblioteca compartilhada em nível de usuário que intercepta chamadas de sistema relacionadas à rede e implementa a pilha de protocolos, além de suportar módulos de kernel. É compatível com a API de chamada de sistema completa, incluindo aqueles aspectos que geralmente são problemáticos para redes em nível de usuário, como fork(), exec(), passagem de soquetes através de soquetes de domínio Unix e avanço do protocolo quando o aplicativo não está agendado .
OpenOnload é distribuído como código-fonte. Instruções para construção, embalagem e instalação podem ser encontradas em DEVELOPING.md
Se houver alguma interface a ser acelerada pelo Onload que não seja interface AMD Solarflare, execute o seguinte para registrar essas interfaces a serem aceleradas usando AF_XDP:
echo ens2f0 > /sys/module/sfc_resource/afxdp/register
O aplicativo a ser Onloaded deve ser iniciado prefixando a linha de comando com onload
.
O repositório hospedado publicamente é um projeto apoiado pela comunidade. Ao levantar problemas neste repositório, espera-se que os usuários executem a partir do topo da árvore git para pegar as mudanças recentes, não usando versões oficiais do Onload que normalmente foram lançadas antes do aparecimento de mudanças recentes no kernel, pois isso provavelmente levará a muitas questões duplicadas sendo levantadas. As incompatibilidades introduzidas por versões recentes do kernel provavelmente serão corrigidas rapidamente aqui neste repositório.
Versões suportadas do OpenOnload estão disponíveis em https://www.xilinx.com/support/download/nic-software-and-drivers.html#open. Levante questões sobre versões suportadas do Onload com [email protected].
Esta árvore de origem é compatível com os seguintes kernels e distribuições Linux:
Onload fornece aceleração de rede ideal e recursos adicionais usando a interface de hardware ef_vi nativa fornecida pelos adaptadores de rede AMD Solarflare em comparação com o uso do mecanismo AF_XDP do Linux. Neste modo, o suporte do kernel e do driver para AF_XDP não é necessário.
Uma versão do driver de rede 'sfc' para adaptadores de rede AMD Solarflare está incluída.
Os seguintes adaptadores são capazes de suportar OpenOnload sem AF_XDP:
OpenOnload pode acelerar aplicativos em adaptadores de rede não Solarflare com suporte para AF_XDP.
Para suportar cópia zero, o Onload precisa de drivers de adaptador de rede AF_XDP para implementar as primitivas AF_XDP necessárias. Normalmente, os drivers mais recentes dos fornecedores de adaptadores de rede darão suporte a essas primitivas.
O suporte AF_XDP é um trabalho em andamento apoiado pela comunidade que atualmente não está com qualidade de lançamento.
Se um netdriver não suportar AF_XDP no modo nativo, o Onload tentará usar o modo XDP genérico ao registrar uma interface. Para que funcione, é necessário configurar o userland helper antes de registrar a 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 pode ser construído sem driver SFC:
make
: use a variável HAVE_SFC=0
;onload_build
& onload_install
: use o parâmetro --no-sfc
;onload_tool reload
: use o parâmetro --onload-only
.Além disso, pode ser construído sem suporte EFCT e AUX:
make
: use a variável HAVE_EFCT=0
;onload_build
: use o parâmetro --no-efct
. Por favor, consulte CONTRIBUTING.md
Este arquivo: (c) Copyright 2020-2024 Advanced Micro Devices, Inc.