CODESYS Control 使用 Linux XDP
eXpress Data Path (XDP) 是 Linux 内核的扩展,用于直接在网络堆栈的输入端发送和接收具有非常高性能的网络包。
XDP 可以与一起使用 CODESYS Control 在特定条件下。
支持的设备
CODESYS Control for Linux SL
CODESYS Control for Linux ARM SL
CODESYS Control for Linux ARM64 SL
CODESYS Virtual Control for Linux SL
CODESYS Virtual Control for Linux ARM SL
CODESYS Virtual Control for Linux ARM64 SL
要求
这个 CODESYS Control SL 运行时版本必须高于或等于版本 V4.21.0.0。
Linux 内核版本必须高于或等于版本 V6.1,并带有以下配置标志:
CONFIG_BPF=yCONFIG_BPF_SYSCALL=yCONFIG_BPF_JIT=yCONFIG_HAVE_EBPF_JIT=yCONFIG_XDP_SOCKETS=y
这些包裹
libxdp1和libbpf1必须安装。系统中必须存在支持 XDP 的网卡和相应的驱动程序(例如带有 igc 的英特尔 i226)。
XDP 驱动程序必须支持零复制。
有关 XDP 和 eBPF 技术的更多信息,请参阅以下内容:
小心
操作系统有以下限制:使用 XDP 需要以 root 权限运行运行时。
使用 Linux XDP
查询当前 XDP 配置:
ethernet-xdp-get <interface>示例:
ethernet-xdp-get enp1s0
为每个网络适配器单独启用 XDP:
ethernet-xdp-set <interface> on示例:
ethernet-xdp-set enp1s0 on
为每个网络适配器分别禁用 XDP:
ethernet-xdp-set <interface> off示例:
ethernet-xdp-set enp1s0 off
包括 eBPF
在 4.21.0.0 及更高版本中,eBPF 程序与相应的版本一起安装 CODESYS Control SL 产品。
eBPF 程序用于决定传入的包是否应采用正常路径通过 Linux 网络堆栈,或者是否应将其直接转发到 CODESYS 通过 XDP 运行时间。
CODESYS 负责在运行时使用此程序。
安装后,您将在以下位置找到该程序: ../opt/codesys/lib/bpfprog.o。
可以在以下位置找到源代码和说明: ../usr/share/doc/codesyscontrol/bpfprog。