記述内容のほとんどは2023年当時のものです.
間違いなどに気づかれましたらぜひお知らせください.
- DPDK,Data Plane Development Kit
高速パケット処理用ライブラリand ネットワークドライバのセット
CPU/メモリ/NICへ,Kernelをバイパスしてアクセスすることで高速動作を実現
対応するNICがないと動作しないが,Intel製は概ね対応している.
なお,
- ipコマンドなど,Kernel Network Stack向けのツールとの相性が悪い
- 特定のNICやCPUを専有する
などの点から,同様のアプローチをLinux Kernel自身がもつ,AF_XDPを用いられることがあるとのこと.
https://blog.bobuhiro11.net/2021/12-07-ovs_afxdp.html#fn:2
- BPF,Berkeley Packet Filter
Kernel内でユーザランドからのコードを安全に実行するための枠組み
パケットフィルタリング用に開発されたが,昨今では汎用のKernel内仮想マシンとしての利用が進む
BPFプログラム(C言語)を作成すれば,Kernelの再コンパイル等なしにその動作を変更することが可能
eBPFに対し,cBPF(Classical BPF)とも. - OVS,Open vSwitch
ソフトウェアスイッチ.
カーネルモジュールとユーザスペースプロセスから成るが,諸般の事情からカーネルモジュールを用いる実装は2022年4月の2.18で廃止される予定とのこと.
(AF_XDPを用いるもの,DPDKを用いるもの,ユーザスペースで動作するものをそれぞれビルドすることができる.)
次第にAF_XDPに移行している.
https://blog.bobuhiro11.net/2021/12-07-ovs_afxdp.html#fn:2
v3.0以降,カーネルモジュールは一切使用されない.
v2.15以降,カーネルモジュールの利用は非推奨.
https://www.notion.so/iwi-ksl/fork-OVS-Version-19fcd8aba2b54b3ca526c8bef45ba79a?pvs=4
v3.2以降,SRv6をサポート.
- IPDK,Infrastructure Programmer Development Kit
- p4c
-
p4c-dpdk
-
p4c-ebpf
-
p4c-ubpf
p4rt-ovsと同時に発表,すでにp4c本体に取り込み済み.
uBPFをターゲットとするP4コンパイラバックエンド.
ステートフルレジスタを含む. -
p4c-xdp
XDPをターゲットとするP4コンパイラバックエンド.
Kernel 4.10.0-rc7以降が必要
VMwareにより開発.アーカイブ済み.p4c-ebpfへの誘導あり.特徴 p4c-ebpf p4c-xdp p4c-ubpf パケットフィルタリング はい はい はい パケットの変更とトンネリング いいえ はい はい 単純なパケット転送 はい はい はい レジスター いいえ いいえ はい カウンター はい はい いいえ チェックサムの計算 いいえ はい はい https://opennetworking.org/news-and-events/blog/p4c-ubpf-a-new-back-end-for-the-p4-compiler/
-