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 対応のネットワークカードと対応するドライバ (例:Intel i226 with igc) がシステムに存在している必要があります。
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
ヒント
XDP を有効にすると、ユースケースのパフォーマンスが向上するかどうかを確認してください。多くの場合、サイクルタイムは短縮されますが、XDP がパフォーマンスに悪影響を及ぼすシナリオもあります
パフォーマンスを向上させる方法の詳細については、以下を参照してください。 パフォーマンス最適化.
eBPFが含まれています
バージョン 4.21.0.0 以降では、eBPF プログラムは対応するプログラムと共にインストールされます CODESYS Control SL 製品。
eBPF プログラムは、入ってくるパッケージを Linux ネットワークスタックを通常のルートで送るべきか、それとも直接 Linux ネットワークスタックに転送すべきかを決定するのに使用されます。 CODESYS XDP 経由のランタイム。
CODESYS 実行時にこのプログラムを使用する責任があります。
インストール後、プログラムは次の場所にあります。 ../opt/codesys/lib/bpfprog.o。
ソースコードと手順は、次の場所にあります。 ../usr/share/doc/codesyscontrol/bpfprog。