dhclient: support option 114, default-url ascii

This will enable further automation of HTTP UEFI boot loader support by
providing a specific option for providing the boot URL to FreeBSD.

Documented in:

https://www.iana.org/assignments/bootp-dhcp-parameters/bootp-dhcp-parameters.xhtml
https://kb.isc.org/docs/isc-dhcp-44-manual-pages-dhcp-options
https://tools.ietf.org/html/rfc3679

Approved by:	emaste
MFC after:	2 weeks
Sponsored by:	SkunkWerks, GmbH
Differential Revision:	https://reviews.freebsd.org/D22475
This commit is contained in:
Dave Cottlehuber 2019-11-22 20:22:16 +00:00
parent f19de0a945
commit 130cfcf3fc
4 changed files with 9 additions and 3 deletions

View File

@ -2601,6 +2601,7 @@ check_option(struct client_lease *l, int option)
case DHO_DHCP_CLIENT_IDENTIFIER: case DHO_DHCP_CLIENT_IDENTIFIER:
case DHO_BOOTFILE_NAME: case DHO_BOOTFILE_NAME:
case DHO_DHCP_USER_CLASS_ID: case DHO_DHCP_USER_CLASS_ID:
case DHO_URL:
case DHO_END: case DHO_END:
return (1); return (1);
case DHO_CLASSLESS_ROUTES: case DHO_CLASSLESS_ROUTES:

View File

@ -587,6 +587,9 @@ Servers should be listed in order of preference.
The StreetTalk Directory Assistance (STDA) server option specifies a The StreetTalk Directory Assistance (STDA) server option specifies a
list of STDA servers available to the client. list of STDA servers available to the client.
Servers should be listed in order of preference. Servers should be listed in order of preference.
.It Ic option url Ar string ;
This option specifies the URL that the client may use when using UEFI
boot from a HTTP server.
.El .El
.Sh SEE ALSO .Sh SEE ALSO
.Xr dhclient.conf 5 , .Xr dhclient.conf 5 ,
@ -595,7 +598,7 @@ Servers should be listed in order of preference.
.Xr dhclient 8 , .Xr dhclient 8 ,
.Xr dhcpd 8 .Xr dhcpd 8
.Rs .Rs
.%R "RFC 2131, RFC 2132" .%R "RFC 2131, RFC 2132, RFC 3769"
.Re .Re
.Sh AUTHORS .Sh AUTHORS
.An -nosplit .An -nosplit

View File

@ -171,6 +171,7 @@ struct dhcp_packet {
#define DHO_STREETTALK_SERVER 75 #define DHO_STREETTALK_SERVER 75
#define DHO_STREETTALK_DA_SERVER 76 #define DHO_STREETTALK_DA_SERVER 76
#define DHO_DHCP_USER_CLASS_ID 77 #define DHO_DHCP_USER_CLASS_ID 77
#define DHO_URL 114
#define DHO_DOMAIN_SEARCH 119 #define DHO_DOMAIN_SEARCH 119
#define DHO_CLASSLESS_ROUTES 121 #define DHO_CLASSLESS_ROUTES 121
#define DHO_END 255 #define DHO_END 255

View File

@ -181,7 +181,7 @@ struct option dhcp_options[256] = {
{ "option-111", "X", &dhcp_universe, 111 }, { "option-111", "X", &dhcp_universe, 111 },
{ "option-112", "X", &dhcp_universe, 112 }, { "option-112", "X", &dhcp_universe, 112 },
{ "option-113", "X", &dhcp_universe, 113 }, { "option-113", "X", &dhcp_universe, 113 },
{ "option-114", "X", &dhcp_universe, 114 }, { "url", "t", &dhcp_universe, 114 },
{ "option-115", "X", &dhcp_universe, 115 }, { "option-115", "X", &dhcp_universe, 115 },
{ "option-116", "X", &dhcp_universe, 116 }, { "option-116", "X", &dhcp_universe, 116 },
{ "option-117", "X", &dhcp_universe, 117 }, { "option-117", "X", &dhcp_universe, 117 },
@ -404,11 +404,12 @@ unsigned char dhcp_option_default_priority_list[] = {
DHO_STREETTALK_DA_SERVER, DHO_STREETTALK_DA_SERVER,
DHO_DHCP_USER_CLASS_ID, DHO_DHCP_USER_CLASS_ID,
DHO_DOMAIN_SEARCH, DHO_DOMAIN_SEARCH,
DHO_URL,
/* Presently-undefined options... */ /* Presently-undefined options... */
62, 63, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 62, 63, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 106, 107, 108, 109, 110, 111, 112, 113, 115, 116, 117,
118, 120, 122, 123, 124, 125, 126, 127, 128, 129, 130, 118, 120, 122, 123, 124, 125, 126, 127, 128, 129, 130,
131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,