From cef8147afd1d031c91cc90b7642aad8ae372c81b Mon Sep 17 00:00:00 2001 From: Brandon Stepler Date: Wed, 30 Jun 2021 13:10:00 -0400 Subject: dhcpdv6: T3658: add support for dhcpdv6 fixed-prefix6 (cherry picked from commit 2318c874c4ec43076c2664e473f7273928d9f2a6) --- data/templates/dhcp-server/dhcpdv6.conf.tmpl | 3 +++ interface-definitions/dhcpv6-server.xml.in | 12 ++++++++++++ smoketest/scripts/cli/test_service_dhcpv6-server.py | 3 +++ 3 files changed, 18 insertions(+) diff --git a/data/templates/dhcp-server/dhcpdv6.conf.tmpl b/data/templates/dhcp-server/dhcpdv6.conf.tmpl index 8d653ff72..45d629928 100644 --- a/data/templates/dhcp-server/dhcpdv6.conf.tmpl +++ b/data/templates/dhcp-server/dhcpdv6.conf.tmpl @@ -106,6 +106,9 @@ shared-network {{ network | replace('_','-') }} { {% endif %} {% if host_config.ipv6_address is defined and host_config.ipv6_address is not none %} fixed-address6 {{ host_config.ipv6_address }}; +{% endif %} +{% if host_config.ipv6_prefix is defined and host_config.ipv6_prefix is not none %} + fixed-prefix6 {{ host_config.ipv6_prefix }}; {% endif %} } {% endfor %} diff --git a/interface-definitions/dhcpv6-server.xml.in b/interface-definitions/dhcpv6-server.xml.in index a3cca06da..5d6c64685 100644 --- a/interface-definitions/dhcpv6-server.xml.in +++ b/interface-definitions/dhcpv6-server.xml.in @@ -360,6 +360,18 @@ + + + Client IPv6 prefix for this static mapping + + ipv6net + IPv6 prefix for this static mapping + + + + + + diff --git a/smoketest/scripts/cli/test_service_dhcpv6-server.py b/smoketest/scripts/cli/test_service_dhcpv6-server.py index 63c21866d..f97c7963f 100755 --- a/smoketest/scripts/cli/test_service_dhcpv6-server.py +++ b/smoketest/scripts/cli/test_service_dhcpv6-server.py @@ -89,6 +89,7 @@ class TestServiceDHCPServer(unittest.TestCase): cid = '00:01:00:01:12:34:56:78:aa:bb:cc:dd:ee:{}'.format(client_base) self.session.set(pool + ['static-mapping', client, 'identifier', cid]) self.session.set(pool + ['static-mapping', client, 'ipv6-address', inc_ip(subnet, client_base)]) + self.session.set(pool + ['static-mapping', client, 'ipv6-prefix', inc_ip(subnet, client_base << 64) + '/64']) client_base += 1 # commit changes @@ -117,8 +118,10 @@ class TestServiceDHCPServer(unittest.TestCase): for client in ['client1', 'client2', 'client3']: cid = '00:01:00:01:12:34:56:78:aa:bb:cc:dd:ee:{}'.format(client_base) ip = inc_ip(subnet, client_base) + prefix = inc_ip(subnet, client_base << 64) + '/64' self.assertIn(f'host {shared_net_name}_{client}' + ' {', config) self.assertIn(f'fixed-address6 {ip};', config) + self.assertIn(f'fixed-prefix6 {prefix};', config) self.assertIn(f'host-identifier option dhcp6.client-id {cid};', config) client_base += 1 -- cgit v1.2.3