summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/include/ipxe/dhcpv6.h6
-rw-r--r--src/net/udp/dhcpv6.c10
2 files changed, 16 insertions, 0 deletions
diff --git a/src/include/ipxe/dhcpv6.h b/src/include/ipxe/dhcpv6.h
index 57758e51..2636b8ab 100644
--- a/src/include/ipxe/dhcpv6.h
+++ b/src/include/ipxe/dhcpv6.h
@@ -151,6 +151,12 @@ struct dhcpv6_user_class_option {
/** DHCPv6 domain search list option */
#define DHCPV6_DOMAIN_LIST 24
+/** DHCPv6 bootfile URI option */
+#define DHCPV6_BOOTFILE_URL 59
+
+/** DHCPv6 bootfile parameters option */
+#define DHCPV6_BOOTFILE_PARAM 60
+
/** DHCPv6 syslog server option
*
* This option code has not yet been assigned by IANA. Please update
diff --git a/src/net/udp/dhcpv6.c b/src/net/udp/dhcpv6.c
index 61c26f24..b86b8337 100644
--- a/src/net/udp/dhcpv6.c
+++ b/src/net/udp/dhcpv6.c
@@ -363,6 +363,7 @@ static int dhcpv6_register ( struct dhcpv6_option_list *options,
/** Options to be requested */
static uint16_t dhcpv6_requested_options[] = {
htons ( DHCPV6_DNS_SERVERS ), htons ( DHCPV6_DOMAIN_LIST ),
+ htons ( DHCPV6_BOOTFILE_URL ), htons ( DHCPV6_BOOTFILE_PARAM ),
};
/**
@@ -969,3 +970,12 @@ int start_dhcpv6 ( struct interface *job, struct net_device *netdev,
ref_put ( &dhcpv6->refcnt );
return rc;
}
+
+/** Boot filename setting */
+const struct setting filename6_setting __setting ( SETTING_BOOT, filename ) = {
+ .name = "filename",
+ .description = "Boot filename",
+ .tag = DHCPV6_BOOTFILE_URL,
+ .type = &setting_type_string,
+ .scope = &ipv6_scope,
+};