From 4a6c453b5bff2b49903f91f4d07da91549c3d108 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Thu, 5 Dec 2013 15:12:50 +0000 Subject: [PATCH] [dhcpv6] Add DHCPv6 "filename" setting Signed-off-by: Michael Brown --- src/include/ipxe/dhcpv6.h | 6 ++++++ src/net/udp/dhcpv6.c | 10 ++++++++++ 2 files changed, 16 insertions(+) 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, +};