mirror of
https://github.com/ipxe/ipxe
synced 2025-12-21 12:30:20 +03:00
Add FEATURE() macro, plus code to display features at startup time,
and generate DHCP options to indicate features to DHCP server (and to PXE NBPs).
This commit is contained in:
@@ -70,6 +70,10 @@ static uint8_t dhcp_request_options_data[] = {
|
||||
DHCP_END
|
||||
};
|
||||
|
||||
/** DHCP feature codes */
|
||||
static uint8_t dhcp_features[0] __table_start ( uint8_t, dhcp_features );
|
||||
static uint8_t dhcp_features_end[0] __table_end ( uint8_t, dhcp_features );
|
||||
|
||||
/**
|
||||
* Name a DHCP packet type
|
||||
*
|
||||
@@ -508,6 +512,7 @@ int create_dhcp_request ( struct net_device *netdev, int msgtype,
|
||||
struct dhcp_packet *dhcppkt ) {
|
||||
struct device_description *desc = &netdev->dev->desc;
|
||||
struct dhcp_netdev_desc dhcp_desc;
|
||||
size_t dhcp_features_len;
|
||||
int rc;
|
||||
|
||||
/* Create DHCP packet */
|
||||
@@ -544,6 +549,16 @@ int create_dhcp_request ( struct net_device *netdev, int msgtype,
|
||||
}
|
||||
}
|
||||
|
||||
/* Add options to identify the feature list */
|
||||
dhcp_features_len = ( dhcp_features_end - dhcp_features );
|
||||
if ( ( rc = set_dhcp_packet_option ( dhcppkt, DHCP_EB_ENCAP,
|
||||
dhcp_features,
|
||||
dhcp_features_len ) ) != 0 ) {
|
||||
DBG ( "DHCP could not set features list option: %s\n",
|
||||
strerror ( rc ) );
|
||||
return rc;
|
||||
}
|
||||
|
||||
/* Add options to identify the network device */
|
||||
dhcp_desc.type = desc->bus_type;
|
||||
dhcp_desc.vendor = htons ( desc->vendor );
|
||||
|
||||
Reference in New Issue
Block a user