aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Brown <mcb30@ipxe.org>2013-12-05 15:12:50 +0000
committerMichael Brown <mcb30@ipxe.org>2013-12-05 15:12:50 +0000
commit4a6c453b5bff2b49903f91f4d07da91549c3d108 (patch)
treead2acd6988af9b33e6569b85d40d7b8d08fc2211
parentf3e5df3162b9e9dec0e91e59ad2567bcc78ef03d (diff)
downloadipxe-4a6c453b5bff2b49903f91f4d07da91549c3d108.tar.gz
[dhcpv6] Add DHCPv6 "filename" setting
Signed-off-by: Michael Brown <mcb30@ipxe.org>
-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 57758e516..2636b8ab2 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 61c26f24d..b86b83378 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,
+};