# ハードウェアオフロードネットワークスタックのテスト ## 定義 ハードウェアオフロードネットワークスタックのテストとは、RDMA NICのようにOSカーネルをバイパスしてハードウェア(NIC/DPU/プログラマブルスイッチ)に実装されたネットワークスタックの正しさ(仕様準拠性)と性能を検証する取り組みである。ソフトウェアネットワークスタックのテストツール(例: packetdrill)が前提とする`libpcap`・TUNデバイスのようなシムレイヤーによるイベント注入・挙動計測は、カーネルバイパスするハードウェアスタックには適用できないため、独自の手法が必要になる。(Source: [[@2023__SIGCOMM__Understanding the Micro-Behaviors of Hardware Offloaded Network Stacks with Lumina]]) ## 横断的知見 - 現時点では単一ソース([[@2023__SIGCOMM__Understanding the Micro-Behaviors of Hardware Offloaded Network Stacks with Lumina]])からの立ち上げであり、横断的知見は次のソースが追加された時点で蓄積する。ソースページ本文には次の要素が記録されている: (1) プログラマブルスイッチをin-networkイベント注入器として使う設計(ソフトウェアシムレイヤーが使えないハードウェアスタックへの対応)、(2) パケットドロップ・ECNマーク・パケット破損という決定論的イベントの注入と、コネクションごとの反復番号(ITER)による再送パケットの細粒度識別、(3) オンチップ資源が限られるプログラマブルスイッチでは全解析を完結できないため、全パケットをミラーリングして専用サーバー群へオフライン解析を委譲する設計、(4) 遺伝的アルゴリズムベースのfuzzingによる自動テストケース生成。 ## 未解決の問い - 決定論的イベント注入によるRDMA NICの仕様準拠性検証(Lumina)と、first-party trafficを用いた性能異常の事前探索(Collie・Husky、[[RDMA]]参照)を統合したテスト手法は構築可能か。 - Luminaの手法(プログラマブルスイッチによるin-network決定論的イベント注入)は、RDMA以外のハードウェアオフロード型トランスポート(SRD・SOLAR・Ultra Ethernet Transport)にも適用可能か。プロトコルごとに固有の課題(パケットフォーマットの違い、再送識別の方式)はどう変わるか。 - Luminaが発見したバグ(ETS非work-conserving性、noisy neighbor、カウンタ不整合)のような「見えないRNIC内部状態」由来の問題を、本番監視系([[RDMAネットワーク監視]]参照)でリアルタイムに検知するには、どのような追加計装が必要か。 - ソフトウェアネットワークスタックのテストツール(packetdrill)とハードウェアオフロード型スタックのテストツール(Lumina)の設計原則をどこまで統一的なフレームワークとして扱えるか。 ## 関連 - ソース: [[@2023__SIGCOMM__Understanding the Micro-Behaviors of Hardware Offloaded Network Stacks with Lumina]] - 概念: [[RDMA]] / [[RDMAネットワーク監視]] ## 出典 - [[@2023__SIGCOMM__Understanding the Micro-Behaviors of Hardware Offloaded Network Stacks with Lumina]](Lumina: プログラマブルスイッチによる決定論的イベント注入とパケットミラーリングでRDMA NICの正しさ・性能を検証するツール。NVIDIA/Intelの4機種で複数の重大バグを発見しベンダーに確認させた)