ci: run NIC offload hardware qualification in CI

Aperta
#2,034 1 commento 0 reazioni 2 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

@daniel-noland ci sta già lavorando.

Dal 2/11/2026.

Valutazione

Questa issue non è ancora stata valutata.

Descrizione

[!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

  1. 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.
  2. Record each run (commit, NIC, firmware and DPDK version, results) as a CI artifact.
  3. Check hardware observations in as fixtures, so ordinary CI holds the model to them without hardware. integrity_model_matches_hardware already does this for integrity verdicts; extend it to qualify's per-NIC parsing observations (fragments, IPv6 extension headers, VLAN tags).
  4. 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.

Lingua principale
Rust
Stelle
21
Fork
9
Merge medio
2g 8h
PR unite (30g)
99

Preparare l'ambiente

  • Include un Dockerfile o un file Docker Compose
  • Nessun modello di pull request
  • Nessuna guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di githedgehog/dataplane

Tutte le issue di githedgehog/dataplane

Issue simili

Altre issue su Rust

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.