You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: honor a declared primary host NIC when selecting the boot device
ExpectedHostNic.primary is meant to say "this NIC is the host's boot
interface," but ingestion ignored it: a zero-DPU or NIC-mode host's
predicted interfaces always promoted as non-primary, so the declared NIC
never stuck and the host booted via the lowest-MAC fallback until an
operator ran set-primary-interface. The declared primary is now
authoritative across the writers that own a NIC -- recorded on the
prediction so it survives promotion, and honored by the DHCP path.
This also settles the pre-ingestion window for multi-NIC hosts: several
NICs that lease before ingestion each default to primary, and adopting the
second one tripped the one_primary_interface_per_machine index and failed
the host's ingestion. Ingestion now reconciles the adopted rows so exactly
one interface is primary.
- Record the declared primary on predicted_machine_interfaces and resolve
it through one ExpectedMachineData::declared_primary_mac() the writers
share; promotion and the DHCP find-or-create path both honor it.
- Reconcile the adopted interfaces at zero-DPU ingestion to exactly one
primary, ending the OnePrimaryInterface adoption failure.
- Nothing declared -> today's automation stands: DPU takeover during
ingestion, else the pick_boot_interface lowest-MAC fallback.
Tests cover the declared primary surviving DHCP arrival order, promotion
landing it on the real row, multi-NIC adoption no longer colliding, and a
resolver unit test.
Part of #2657 (epic #2660). The genuine-DPU-mode case -- a declared
integrated NIC while the DPU stays managed -- is tracked separately in
Signed-off-by: Chet Nichols III <chetn@nvidia.com>
#2668.
0 commit comments