From: Sean Edmond <seanedm...@microsoft.com> The recently integrated IPv6 patch series relies on the link-local address, or a statically assigned IPv6 address for network operations. This patch series adds IPv6 address assignment through DHCPv6.
The implementation meets the requirements in RFC 8415 for "Client/Server Exchanges Involving Four Messages": https://www.rfc-editor.org/rfc/rfc8415 The implementation sends/receives the minimum required DHCPv6 options to network boot. A new command (dhcp6) will execute the protocol. In addition, IPv6 functionality has been extended to the existing pxe commands ("pxe get" and "pxe boot"). changes in v3: - Always instance pxelinux_configfile (allows for clean-up of many ugly #ifdef) - clean-up includes in dhcpv6.c - clean-up single line comments - use strlcpy() for setting pxelinux_configfile - change API ordering to reduce fordard declarations in dhcpv6.c - remove <net6.h> and <net.h> include in dhcpv6.h - Add detailed function header to dhcp6_start() - Remove conditional include of dhcpv6.h - Remove inline from pxe_dhcp_option_path() - Remove ugly "pxe get"/"pxe boot" command definition (specify the maximum number of arguments and do number of parameter checking in c code) changes in v2: - Add sandbox test in test_net.py - Add CONFIG_CMD_DHCP6 to sandbox_defconfig - fix comment style (/**/ instead of //) - move addition of Kconfig from 1st patch to 2nd patch - Fix warning (warning: label ‘error_exit’ defined but not used") when CONFIG_DHCP6_PXE_DHCP_OPTION not configured - Fix dhcp6 command help - Use net_set_timeout_handler(0, NULL) in dhcpv6.c - Move USE_IP6_CMD_PARAM back to net6.h Sean Edmond (3): net: dhcp6: Add DHCPv6 (DHCP for IPv6) net: dhcp6: pxe: Add DHCP/PXE commands for IPv6 net: dhcp6: Add a sandbox test for dhcp6 boot/bootmeth_distro.c | 2 +- boot/bootmeth_pxe.c | 4 +- boot/pxe_utils.c | 3 +- cmd/Kconfig | 26 ++ cmd/net.c | 23 ++ cmd/pxe.c | 85 ++++- cmd/sysboot.c | 2 +- configs/sandbox_defconfig | 1 + include/net.h | 6 +- include/pxe_utils.h | 10 +- net/Makefile | 1 + net/dhcpv6.c | 719 ++++++++++++++++++++++++++++++++++++++ net/dhcpv6.h | 256 ++++++++++++++ net/net.c | 11 +- test/py/tests/test_net.py | 25 ++ 15 files changed, 1147 insertions(+), 27 deletions(-) create mode 100644 net/dhcpv6.c create mode 100644 net/dhcpv6.h -- 2.40.0