Onload®️ — это высокопроизводительный сетевой стек пользовательского уровня, который ускоряет сетевой ввод-вывод TCP и UDP для приложений, использующих сокеты BSD в Linux.
OpenOnload включает в себя общую библиотеку пользовательского уровня, которая перехватывает сетевые системные вызовы и реализует стек протоколов, а также поддерживает модули ядра. Он совместим с полным API системных вызовов, включая те аспекты, которые обычно проблематичны для сети на уровне пользователя, такие как fork(), exec(), передача сокетов через сокеты домена Unix и развитие протокола, когда приложение не запланировано. .
OpenOnload распространяется в виде исходного кода. Инструкции по сборке, упаковке и установке можно найти на сайте DEVELOPING.md.
Если есть какие-либо интерфейсы, которые необходимо ускорить с помощью Onload, но не являются интерфейсами AMD Solarflare, выполните следующую команду, чтобы зарегистрировать эти интерфейсы для ускорения с помощью AF_XDP:
echo ens2f0 > /sys/module/sfc_resource/afxdp/register
Приложение, которое необходимо загрузить, следует запускать с префиксом командной строки onload
.
Публичный репозиторий — это проект, поддерживаемый сообществом. Ожидается, что при возникновении проблем в этом репозитории пользователи будут бегать из головы дерева git, чтобы получить последние изменения, а не использовать официальные версии Onload, которые обычно выпускались до появления последних критических изменений ядра, поскольку это может привести к поднимается много дублирующих вопросов. Несовместимости, возникшие в последних версиях ядра, вероятно, будут быстро исправлены здесь, в этом репозитории.
Поддерживаемые выпуски OpenOnload доступны по адресу https://www.xilinx.com/support/download/nic-software-and-drivers.html#open. Пожалуйста, сообщите о проблемах, связанных с поддерживаемыми выпусками Onload, по адресу [email protected].
Это дерево исходного кода совместимо со следующими ядрами и дистрибутивами Linux:
Onload обеспечивает оптимальное сетевое ускорение и дополнительные функции с использованием собственного аппаратного интерфейса ef_vi, предоставляемого сетевыми адаптерами AMD Solarflare, по сравнению с использованием механизма AF_XDP в Linux. В этом режиме поддержка ядра и драйверов AF_XDP не требуется.
Включена версия сетевого драйвера sfc для сетевых адаптеров AMD Solarflare.
Следующие адаптеры могут поддерживать OpenOnload без AF_XDP:
OpenOnload может ускорять приложения на сетевых адаптерах, отличных от Solarflare, с поддержкой AF_XDP.
Для поддержки нулевого копирования Onload необходимы драйверы сетевого адаптера AF_XDP для реализации необходимых примитивов AF_XDP. Обычно последние версии драйверов от производителей сетевых адаптеров поддерживают эти примитивы.
Поддержка AF_XDP — это работа, поддерживаемая сообществом, которая в настоящее время не находится на стадии релиза.
Если сетевой драйвер не поддерживает AF_XDP в собственном режиме, Onload попытается использовать общий режим XDP при регистрации интерфейса. Чтобы это работало, перед регистрацией интерфейса необходимо настроить помощник пользователя:
$ 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 можно собрать без драйвера SFC:
make
: использовать переменную HAVE_SFC=0
;onload_build
& onload_install
: используйте параметр --no-sfc
;onload_tool reload
: используйте параметр --onload-only
.Также его можно собрать без поддержки EFCT и AUX:
make
: использовать переменную HAVE_EFCT=0
;onload_build
: используйте параметр --no-efct
. Пожалуйста, посетите CONTRIBUTING.md
Этот файл: (c) Copyright 2020-2024 Advanced Micro Devices, Inc.