Onload®️ 是一個高效能使用者層級網路堆疊,它可以為 Linux 上使用 BSD 套接字的應用程式加速 TCP 和 UDP 網路 I/O。
OpenOnload 包含一個使用者等級共用程式庫,用於攔截網路相關的系統呼叫並實作協定棧,並支援核心模組。它與完整的系統呼叫 API 相容,包括用戶級網路通常會出現問題的那些方面,例如 fork()、exec()、透過 Unix 網域套接字傳遞套接字以及在應用程式未調度時推進協定。
OpenOnload 作為原始碼分發。建置、打包和安裝的說明可以在 DEVELOPING.md 中找到
如果 Onload 需要加速的接口不是 AMD Solarflare 接口,請執行以下命令,使用 AF_XDP 註冊這些需要加速的接口:
echo ens2f0 > /sys/module/sfc_resource/afxdp/register
要 Onloaded 的應用程式應透過在命令列中新增onload
前綴來啟動。
公共託管的儲存庫是一個社區支持的專案。當在此存儲庫上提出問題時,預計用戶將從 git 樹的頭部運行以獲取最近的更改,而不是使用通常在最近的重大內核更改出現之前發布的 Onload 官方版本,因為這可能會導致提出了許多重複的問題。最新核心版本引入的不相容性可能會在此儲存庫中快速修復。
OpenOnload 支援的版本可從 https://www.xilinx.com/support/download/nic-software-and-drivers.html#open 取得。請透過 [email protected] 提出有關支援的 Onload 版本的問題。
此原始碼樹與以下 Linux 核心和發行版相容:
與使用 Linux 的 AF_XDP 機制相比,Onload 使用 AMD Solarflare 網路適配器提供的本機 ef_vi 硬體介面提供最佳網路加速和附加功能。在此模式下,不需要核心和驅動程式支援 AF_XDP。
包含適用於 AMD Solarflare 網路介面卡的「sfc」網路驅動程式版本。
以下適配器能夠在沒有 AF_XDP 的情況下支援 OpenOnload:
OpenOnload 可以透過對 AF_XDP 的支援來加速非 Solarflare 網路介面卡上的應用程式。
為了支援零複製,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) 版權所有 2020-2024 Advanced Micro Devices, Inc.