summaryrefslogtreecommitdiff
path: root/data/templates
diff options
context:
space:
mode:
authorChristian Poessinger <christian@poessinger.com>2020-08-23 00:04:09 +0200
committerChristian Poessinger <christian@poessinger.com>2020-08-23 01:10:46 +0200
commitec1cf7dd1508e4a84d99818c7e34d093242b3331 (patch)
treec05f822aed8f03ead38c00658350d516961b88eb /data/templates
parent5a5974d5a00b482cabd3dee92bc365d3c9f399bc (diff)
downloadvyos-1x-ec1cf7dd1508e4a84d99818c7e34d093242b3331.tar.gz
vyos-1x-ec1cf7dd1508e4a84d99818c7e34d093242b3331.zip
dhcpv6-pd: T2821: support dhcpv6-pd without "address dhcpv6"
Currently DHCPv6-PD requires an interface address configured to dhcpv6 on the CLI. This is not required also sometimes there is either no dhcpv6 interface addressing available (PPPoE) or wanted. This limitation was artificial due to the old interface code. Change the implementation to spawn the DHCPv6 client and request a prefix even when there is no address request configured.
Diffstat (limited to 'data/templates')
-rw-r--r--data/templates/dhcp-client/ipv6.tmpl12
1 files changed, 8 insertions, 4 deletions
diff --git a/data/templates/dhcp-client/ipv6.tmpl b/data/templates/dhcp-client/ipv6.tmpl
index e9285d86b..85841fe94 100644
--- a/data/templates/dhcp-client/ipv6.tmpl
+++ b/data/templates/dhcp-client/ipv6.tmpl
@@ -2,13 +2,15 @@
# man https://www.unix.com/man-page/debian/5/dhcp6c.conf/
interface {{ ifname }} {
+{% if address is defined and 'dhcpv6' in address %}
request domain-name-servers;
request domain-name;
-{% if dhcpv6_options is defined and dhcpv6_options.parameters_only is defined %}
+{% if dhcpv6_options is defined and dhcpv6_options.parameters_only is defined %}
information-only;
-{% endif %}
-{% if dhcpv6_options is not defined or dhcpv6_options.temporary is not defined %}
+{% endif %}
+{% if dhcpv6_options is not defined or dhcpv6_options.temporary is not defined %}
send ia-na 0; # non-temporary address
+{% endif %}
{% endif %}
{% if dhcpv6_options is defined and dhcpv6_options.pd is defined %}
{% for pd in dhcpv6_options.pd %}
@@ -17,10 +19,12 @@ interface {{ ifname }} {
{% endif %}
};
-{% if dhcpv6_options is not defined or dhcpv6_options.temporary is not defined %}
+{% if address is defined and 'dhcpv6' in address %}
+{% if dhcpv6_options is not defined or dhcpv6_options.temporary is not defined %}
id-assoc na 0 {
# Identity association for non temporary address
};
+{% endif %}
{% endif %}
{% if dhcpv6_options is defined and dhcpv6_options.pd is defined %}