From 2d5a614633a52712b63968fe3c9791492722fbe3 Mon Sep 17 00:00:00 2001 From: "Dustin C. Hatch" Date: Fri, 6 Apr 2018 20:16:02 -0500 Subject: [PATCH] roles/radvd: Support multiple prefixes per network It is occasionally necessary to advertise multiple prefixes on the same interface, particularly when those prefixes are not on-link. The *radvd* role thus now expects each item in `radvd_interfaces` list to have a `prefixes` property, which itself is a list of prefixes to advertise. Prefixes can specify properties such as `on_link`, `autonomous`, `preferred_lifetime`, etc. --- roles/radvd/templates/radvd.conf.j2 | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/roles/radvd/templates/radvd.conf.j2 b/roles/radvd/templates/radvd.conf.j2 index dd65565..5a4be03 100644 --- a/roles/radvd/templates/radvd.conf.j2 +++ b/roles/radvd/templates/radvd.conf.j2 @@ -5,11 +5,19 @@ interface {{ iface.interface }} {% if iface.other_config|d(False) %} AdvOtherConfigFlag on; {% endif %} +{% for prefix in iface.prefixes %} - prefix {{ iface.prefix }} { - AdvOnLink {% if iface.on_link|d(True) %}on{% else %}off{% endif %}; - AdvAutonomous {% if iface.autonomous|d(True) %}on{% else %}off{% endif %}; + prefix {{ prefix.prefix }} { + AdvOnLink {% if prefix.on_link|d(True) %}on{% else %}off{% endif %}; + AdvAutonomous {% if prefix.autonomous|d(True) %}on{% else %}off{% endif %}; +{% if prefix.valid_lifetime is defined %} + AdvValidLifetime {{ prefix.valid_lifetime }}; +{% endif %} +{% if prefix.preferred_lifetime is defined %} + AdvPreferredLifetime {{ prefix.preferred_lifetime }}; +{% endif %} }; +{% endfor %} {% if iface.rdnss is defined %} {% for address in iface.rdnss %}