Skip to content

fix: get pxe_enabled from BIOS setting instead of naming heuristic#1857

Open
stevekeay wants to merge 1 commit intomainfrom
inspect-honour-bios-pxe-port
Open

fix: get pxe_enabled from BIOS setting instead of naming heuristic#1857
stevekeay wants to merge 1 commit intomainfrom
inspect-honour-bios-pxe-port

Conversation

@stevekeay
Copy link
Contributor

As part of the enrolment process we populate the BIOS setting for which NIC to use for PXE boot (HttpDev1Interface). This is likely to be the correct interface, so stop using the naming-convention heuristic in PortBiosNameHook to choose the PXE port and instead honour the setting that we pull from the BIOS.

Add a new BiosPxePortHook inspection hook that uses Ironic's built-in bios interface (task.driver.bios.cache_bios_settings) to populate the BIOS settings DB, then reads HttpDev1Interface via BIOSSetting.get() to determine which NIC to mark as the PXE port. The prefix-matching logic handles the case where the BIOS FQDD is more specific than the EthernetInterface identity (e.g. NIC.Integrated.1-1-1 vs NIC.Integrated.1-1).

PortBiosNameHook retains responsibility for setting the port name, extra.bios_name, physical_network and local_link_connection but no longer touches the pxe flag.

@stevekeay stevekeay changed the title Set pxe_enabled from BIOS setting instead of naming heuristic fix: get pxe_enabled from BIOS setting instead of naming heuristic Mar 23, 2026
@stevekeay stevekeay force-pushed the inspect-honour-bios-pxe-port branch 2 times, most recently from 7c90a9f to c985b6f Compare March 23, 2026 15:23
@stevekeay stevekeay marked this pull request as draft March 23, 2026 15:27
@stevekeay stevekeay force-pushed the inspect-honour-bios-pxe-port branch 3 times, most recently from 9bf139f to 96981fd Compare March 23, 2026 15:57
As part of the enrolment process we populate the BIOS setting for which
NIC to use for PXE boot (HttpDev1Interface).  This is likely to be the
correct interface, so stop using the naming-convention heuristic in
PortBiosNameHook to choose the PXE port and instead honour the setting
that we pull from the BIOS.

This now uses Ironic's built-in bios interface
(task.driver.bios.cache_bios_settings) to populate the BIOS settings DB,
then reads HttpDev1Interface via BIOSSetting.get() to determine which
NIC to mark as the PXE port.  The prefix-matching logic handles the case
where the BIOS FQDD is more specific than the EthernetInterface
identity (e.g. NIC.Integrated.1-1-1 vs NIC.Integrated.1-1).
@stevekeay stevekeay force-pushed the inspect-honour-bios-pxe-port branch from 96981fd to ab7bf21 Compare March 23, 2026 16:09
@stevekeay stevekeay marked this pull request as ready for review March 23, 2026 16:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant