From 09311c34f9d4cb8f19bc674261cdcf708c984a30 Mon Sep 17 00:00:00 2001 From: Julia Kreger Date: Mon, 3 Dec 2018 10:20:34 -0800 Subject: [PATCH] Add ipxe6 dnsmasq tag to enable ipv6 dhcp client matching DHCPv6 has different mode of operation and the request class 175 option no longer works for iPXE to allow configurations to be set that delineate the address requestor as an iPXE client or a ROM client seeking a bootloader over via DHCPv6. In order to support iPXE, ironic needs to be able to match on to the user class that is transmitted in the DHCPv6 requests. From there, dnsmasq can choose the correct reply and a node can boot up to be deployed by ironic. Change-Id: I6328297deaabdc94b6356930dd978b02f432799c Story: 2004502 Task: 28243 --- neutron/agent/linux/dhcp.py | 1 + neutron/tests/unit/agent/linux/test_dhcp.py | 1 + 2 files changed, 2 insertions(+) diff --git a/neutron/agent/linux/dhcp.py b/neutron/agent/linux/dhcp.py index 2bbc3d2d39e..04a2d3564ea 100644 --- a/neutron/agent/linux/dhcp.py +++ b/neutron/agent/linux/dhcp.py @@ -337,6 +337,7 @@ class Dnsmasq(DhcpLocalProcess): '--dhcp-optsfile=%s' % self.get_conf_file_name('opts'), '--dhcp-leasefile=%s' % self.get_conf_file_name('leases'), '--dhcp-match=set:ipxe,175', + '--dhcp-userclass=set:ipxe6,iPXE', '--local-service', ] if self.device_manager.driver.bridged: diff --git a/neutron/tests/unit/agent/linux/test_dhcp.py b/neutron/tests/unit/agent/linux/test_dhcp.py index 942ef479894..0d7c68e3174 100644 --- a/neutron/tests/unit/agent/linux/test_dhcp.py +++ b/neutron/tests/unit/agent/linux/test_dhcp.py @@ -1260,6 +1260,7 @@ class TestDnsmasq(TestBase): '--dhcp-optsfile=/dhcp/%s/opts' % network.id, '--dhcp-leasefile=/dhcp/%s/leases' % network.id, '--dhcp-match=set:ipxe,175', + '--dhcp-userclass=set:ipxe6,iPXE', '--local-service', '--bind-interfaces', ]