ci: run NIC offload hardware qualification in CI
メンテナーはふだん 1 日以内に返信
@daniel-noland がすでに取り組んでいます。
2026年11月2日 から。
評価
この issue はまだ評価されていません。
説明
[!NOTE]
🤖 AI-drafted (Claude) on behalf of @mvachhar, reviewed by him before posting.
Target: 26.06 (to be set on the Hedgehog Eng project)
Problem
The NIC offload stack (#2030 → #2033) tests its rule compiler in CI against a software model of the NIC (dpdk::flow::model). Only the hardware qualification runners in nic-offload/src/qualify.rs check that model against a real NIC: qualify, qualify_transitions, reconcile_scenarios, install_probe, integrity_truth_table, integrity_rule_set and integrity_protocols.
- They are
#[ignore]d. - They need two cabled ports and are run by hand (
NIC_OFFLOAD_QUALIFY=<port under test>,<sending port>). - Results aren't tied to a commit, firmware or DPDK version.
A DPDK bump, a NIC firmware update or a new NIC model can make the model wrong while CI stays green. The offload is on by default and drops traffic before software sees it, so that's the failure mode to guard against.
Proposal
- A lab runner with a cabled BlueField-3 port pair (and later each NIC model we ship) that runs the qualification suite.
- Nightly.
- On changes to
nic-offload/,dpdk/src/flow/, the DPDK pin, or NIC firmware.
- Record each run (commit, NIC, firmware and DPDK version, results) as a CI artifact.
- Check hardware observations in as fixtures, so ordinary CI holds the model to them without hardware.
integrity_model_matches_hardwarealready does this for integrity verdicts; extend it toqualify's per-NIC parsing observations (fragments, IPv6 extension headers, VLAN tags). - Turn offload on by default only for NIC types that have been qualified.
Until the runner exists: changes to the paths above should come with a recorded manual qualification run.
- 主要言語
- Rust
- スター
- 21
- フォーク
- 9
- 平均マージ
- 2日 8時間
- マージ済み PR(30日)
- 99
環境構築
- Dockerfile または Docker Compose ファイルあり
- プルリクエストのテンプレートなし
- コントリビューションガイドなし
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
githedgehog/dataplane のほかの issue
-
難易度 3/5 1〜2日 初心者へのやさしさ 69/100
githedgehog/dataplane#2052 ·
メンテナーはふだん 1 日以内に返信
-
DPDK workers hold VPC counters until their next packet対応中かも @Fredi-raspall が 4 日前に担当しました。 オープンarea/dpdk bug
難易度 4/5 3〜5日 初心者へのやさしさ 56/100
githedgehog/dataplane#2047 · コメント 2 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 4/5 3〜5日 初心者へのやさしさ 48/100
githedgehog/dataplane#2023 ·
メンテナーはふだん 1 日以内に返信
-
Support SYN cookies対応中かも @qmonnet が 16 日前に担当しました。 オープン
githedgehog/dataplane#1981 · 担当者 1 名 ·
メンテナーはふだん 1 日以内に返信
-
dataplane v0.30.0: gateway does not recover after a dataplane pod restart, the control-plane taps lose their IPv4 addresses対応中かも @daniel-noland が 16 日前に担当しました。 オープンbug
githedgehog/dataplane#1977 · コメント 2 件 · 担当者 1 名 ·
メンテナーはふだん 1 日以内に返信
githedgehog/dataplane の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 83/100
n0-computer/iroh#4669 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
rubys/roundhouse#1950 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
cloudflare/workers-rs#1130 ·
メンテナーはふだん 11 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 69/100
vfarcic/dot-agent-deck#2160 · コメント 2 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
RustCrypto/utils#1597 ·
メンテナーはふだん 1 日以内に返信