# XDPerf
XDPerf は、[[XDP]] と eBPF の live frames mode による高速パケット送出と、[[WebAssembly]] プラグインによるパケットテンプレート・変化規則を組み合わせたネットワークトラフィックジェネレーターである。
Go アプリケーションへ [[wazero]] を組み込み、Wasm が返したテンプレートを eBPF マップへ登録し、XDP が未変更の upstream ドライバを通じて送信する。(Source: [[@2026__KubeCon Japan Community Day__XDPerf - A High-Performance Traffic Generator Built with WASM and eBPF]])
## 中心設計
- 柔軟性: Rust、TinyGo、Go、C などからコンパイルした Wasm プラグインでパケット定義を記述
- 送信: `BPF_PROG_TEST_RUN` の live frames mode で、カーネル内ループから `XDP_TX` を実行
- メモリ: 一つの base packet と少数バイトの差分エントリを使い、全長 packet の毎回コピーを避ける
- 運用: DPDK の NIC 占有、hugepage、VFIO/UIO ドライバ束縛を避け、単一 Go バイナリとして導入
- 拡張: 新しいプロトコルは eBPF を変更せず Wasm プラグインとして追加
## 性能評価
資料の測定環境は Intel E810-C 100GbE、Linux 7.2-rc/6.8、32 コア Intel Xeon Platinum 8362 である。
64B で 116.5 Mpps、64B round-trip RX の 24 TX コアで 110.7 Mpps、256B 以上で 100G wire rate を示す。
IOMMU を有効にした 42.3 Mpps は `iommu=pt` で 115.8 Mpps へ改善し、veth では 1 queue の 7.4 Mpps に対して 8 queues で 61.3 Mpps となった。(Source: [[@2026__KubeCon Japan Community Day__XDPerf - A High-Performance Traffic Generator Built with WASM and eBPF]])
## 関連
- 開発・発表: [[Takeru Hayasaka]]
- 所属: [[BBSakura Networks]]
- 概念: [[XDP]] / [[eBPF]] / [[WebAssembly]] / [[RSS(Receive Side Scaling)]]
- 比較対象: [[DPDK]] / [[TRex]] / [[カーネルバイパスネットワーキング]]
- ソース: [[@2026__KubeCon Japan Community Day__XDPerf - A High-Performance Traffic Generator Built with WASM and eBPF]]