From 225be098db7095e779f3fa2f6cf53ca08c8faf9b Mon Sep 17 00:00:00 2001
From: Christian Poessinger <christian@poessinger.com>
Date: Fri, 30 Jul 2021 22:01:54 +0200
Subject: router-advert: T2745: use template common coding style in for loops

(cherry picked from commit f89a0cfc7d0d908cbe1715b760b07926ffa3f7b9)
---
 data/templates/router-advert/radvd.conf.tmpl | 80 +++++++++++++++-------------
 1 file changed, 43 insertions(+), 37 deletions(-)

(limited to 'data')

diff --git a/data/templates/router-advert/radvd.conf.tmpl b/data/templates/router-advert/radvd.conf.tmpl
index 9cc237512..88d066491 100644
--- a/data/templates/router-advert/radvd.conf.tmpl
+++ b/data/templates/router-advert/radvd.conf.tmpl
@@ -1,58 +1,64 @@
 ### Autogenerated by service_router-advert.py ###
 
 {% if interface is defined and interface is not none %}
-{%   for iface in interface %}
+{%   for iface, iface_config in interface.items() %}
 interface {{ iface }} {
     IgnoreIfMissing on;
-{%     if interface[iface].default_preference is defined and interface[iface].default_preference is not none %}
-    AdvDefaultPreference {{ interface[iface].default_preference }};
+{%     if iface_config.default_preference is defined and iface_config.default_preference is not none %}
+    AdvDefaultPreference {{ iface_config.default_preference }};
 {%     endif %}
-{%     if interface[iface].managed_flag is defined and interface[iface].managed_flag is not none %}
-    AdvManagedFlag {{ 'on' if interface[iface].managed_flag is defined else 'off' }};
+{%     if iface_config.managed_flag is defined and iface_config.managed_flag is not none %}
+    AdvManagedFlag {{ 'on' if iface_config.managed_flag is defined else 'off' }};
 {%     endif %}
-{%     if interface[iface].interval.max is defined and interface[iface].interval.max is not none %}
-    MaxRtrAdvInterval {{ interface[iface].interval.max }};
+{%     if iface_config.interval.max is defined and iface_config.interval.max is not none %}
+    MaxRtrAdvInterval {{ iface_config.interval.max }};
 {%     endif %}
-{%     if interface[iface].interval.min is defined and interface[iface].interval.min is not none %}
-    MinRtrAdvInterval {{ interface[iface].interval.min }};
+{%     if iface_config.interval.min is defined and iface_config.interval.min is not none %}
+    MinRtrAdvInterval {{ iface_config.interval.min }};
 {%   endif %}
-{%     if interface[iface].reachable_time is defined and interface[iface].reachable_time is not none %}
-    AdvReachableTime {{ interface[iface].reachable_time }};
+{%     if iface_config.reachable_time is defined and iface_config.reachable_time is not none %}
+    AdvReachableTime {{ iface_config.reachable_time }};
 {%   endif %}
-    AdvIntervalOpt {{ 'off' if interface[iface].no_send_advert is defined else 'on' }};
-    AdvSendAdvert {{ 'off' if interface[iface].no_send_advert is defined else 'on' }};
-{%     if interface[iface].default_lifetime is defined %}
-    AdvDefaultLifetime {{ interface[iface].default_lifetime }};
-{%     endif %}
-{%     if interface[iface].link_mtu is defined %}
-    AdvLinkMTU {{ interface[iface].link_mtu }};
-{%     endif %}
-    AdvOtherConfigFlag {{ 'on' if interface[iface].other_config_flag is defined else 'off' }};
-    AdvRetransTimer {{ interface[iface].retrans_timer }};
-    AdvCurHopLimit {{ interface[iface].hop_limit }};
-{%     if interface[iface].route is defined %}
-{%       for route in interface[iface].route %}
+    AdvIntervalOpt {{ 'off' if iface_config.no_send_advert is defined else 'on' }};
+    AdvSendAdvert {{ 'off' if iface_config.no_send_advert is defined else 'on' }};
+{%     if iface_config.default_lifetime is defined %}
+    AdvDefaultLifetime {{ iface_config.default_lifetime }};
+{%     endif %}
+{%     if iface_config.link_mtu is defined %}
+    AdvLinkMTU {{ iface_config.link_mtu }};
+{%     endif %}
+    AdvOtherConfigFlag {{ 'on' if iface_config.other_config_flag is defined else 'off' }};
+    AdvRetransTimer {{ iface_config.retrans_timer }};
+    AdvCurHopLimit {{ iface_config.hop_limit }};
+{%     if iface_config.route is defined %}
+{%       for route, route_options in iface_config.route.items() %}
     route {{ route }} {
-{%         if interface[iface].route[route].valid_lifetime is defined %}
-        AdvRouteLifetime {{ interface[iface].route[route].valid_lifetime }};
+{%         if route_options.valid_lifetime is defined %}
+        AdvRouteLifetime {{ route_options.valid_lifetime }};
 {%         endif %}
-{%         if interface[iface].route[route].route_preference is defined %}
-        AdvRoutePreference {{ interface[iface].route[route].route_preference }};
+{%         if route_options.route_preference is defined %}
+        AdvRoutePreference {{ route_options.route_preference }};
 {%         endif %}
-        RemoveRoute {{ 'off' if interface[iface].route[route].no_remove_route is defined else 'on' }};
+        RemoveRoute {{ 'off' if route_options.no_remove_route is defined else 'on' }};
     };
 {%       endfor %}
 {%     endif %}
-{%     for prefix in interface[iface].prefix %}
+{%     if iface_config.prefix is defined and iface_config.prefix is not none %}
+{%       for prefix, prefix_options in iface_config.prefix.items() %}
     prefix {{ prefix }} {
-        AdvAutonomous {{ 'off' if interface[iface].prefix[prefix].no_autonomous_flag is defined else 'on' }};
-        AdvValidLifetime {{ interface[iface].prefix[prefix].valid_lifetime }};
-        AdvOnLink {{ 'off' if interface[iface].prefix[prefix].no_on_link_flag is defined else 'on' }};
-        AdvPreferredLifetime {{ interface[iface].prefix[prefix].preferred_lifetime }};
+        AdvAutonomous {{ 'off' if prefix_options.no_autonomous_flag is defined else 'on' }};
+        AdvValidLifetime {{ prefix_options.valid_lifetime }};
+        AdvOnLink {{ 'off' if prefix_options.no_on_link_flag is defined else 'on' }};
+        AdvPreferredLifetime {{ prefix_options.preferred_lifetime }};
+    };
+{%       endfor %}
+{%     endif %}
+{%     if iface_config.name_server is defined %}
+    RDNSS {{ iface_config.name_server | join(" ") }} {
     };
-{%     endfor %}
-{%     if interface[iface].name_server is defined %}
-    RDNSS {{ interface[iface].name_server | join(" ") }} {
+{%     endif %}
+{%     if iface_config.dnssl is defined %}
+    DNSSL {{ iface_config.dnssl | join(" ") }} {
     };
 {%     endif %}
 };
-- 
cgit v1.2.3