[cachedhcp] Automatically open network device matching cached DHCPACK

It is unintuitive to have to include an "ifopen" at the start of an
autoexec.ipxe script.  Provide a mechanism for upper-layer drivers to
mark a network device to be opened automatically upon registration,
and do so for the device to which the cached DHCPACK is applied.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
Michael Brown
2026-02-26 13:11:57 +00:00
parent 879549da39
commit efe8126372
3 changed files with 10 additions and 0 deletions
+3
View File
@@ -171,6 +171,9 @@ static int cachedhcp_apply ( struct cached_dhcp_packet *cache,
settings = netdev_settings ( netdev );
DBGC ( colour, "CACHEDHCP %s is for %s\n",
cache->name, netdev->name );
/* Mark network device to be opened automatically */
netdev->state |= NETDEV_AUTO_OPEN;
}
/* Register settings */
+3
View File
@@ -461,6 +461,9 @@ struct net_device {
/** Network device must be polled even when closed */
#define NETDEV_INSOMNIAC 0x0040
/** Network device should be opened automatically */
#define NETDEV_AUTO_OPEN 0x0080
/** Link-layer protocol table */
#define LL_PROTOCOLS __table ( struct ll_protocol, "ll_protocols" )
+4
View File
@@ -836,6 +836,10 @@ int register_netdev ( struct net_device *netdev ) {
}
}
/* Attempt to open device automatically, if applicable */
if ( netdev->state & NETDEV_AUTO_OPEN )
netdev_open ( netdev );
return 0;
err_probe: