! {% if interface is defined and interface is not none %} {% for iface, iface_config in interface.items() %} interface {{ iface }} {{ 'vrf ' + vrf if vrf is defined and vrf is not none }} {% if iface_config.area is defined and iface_config.area is not none %} ipv6 ospf6 area {{ iface_config.area }} {% endif %} {% if iface_config.cost is defined and iface_config.cost is not none %} ipv6 ospf6 cost {{ iface_config.cost }} {% endif %} {% if iface_config.priority is defined and iface_config.priority is not none %} ipv6 ospf6 priority {{ iface_config.priority }} {% endif %} {% if iface_config.hello_interval is defined and iface_config.hello_interval is not none %} ipv6 ospf6 hello-interval {{ iface_config.hello_interval }} {% endif %} {% if iface_config.retransmit_interval is defined and iface_config.retransmit_interval is not none %} ipv6 ospf6 retransmit-interval {{ iface_config.retransmit_interval }} {% endif %} {% if iface_config.transmit_delay is defined and iface_config.transmit_delay is not none %} ipv6 ospf6 transmit-delay {{ iface_config.transmit_delay }} {% endif %} {% if iface_config.dead_interval is defined and iface_config.dead_interval is not none %} ipv6 ospf6 dead-interval {{ iface_config.dead_interval }} {% endif %} {% if iface_config.bfd is defined %} ipv6 ospf6 bfd {% if iface_config.bfd.profile is defined and iface_config.bfd.profile is not none %} ipv6 ospf6 bfd profile {{ iface_config.bfd.profile }} {% endif %} {% endif %} {% if iface_config.mtu_ignore is defined %} ipv6 ospf6 mtu-ignore {% endif %} {% if iface_config.ifmtu is defined and iface_config.ifmtu is not none %} ipv6 ospf6 ifmtu {{ iface_config.ifmtu }} {% endif %} {% if iface_config.network is defined and iface_config.network is not none %} ipv6 ospf6 network {{ iface_config.network }} {% endif %} {% if iface_config.instance_id is defined and iface_config.instance_id is not none %} ipv6 ospf6 instance-id {{ iface_config.instance_id }} {% endif %} {% if iface_config.passive is defined %} ipv6 ospf6 passive {% endif %} exit ! {% endfor %} {% endif %} ! router ospf6 {{ 'vrf ' + vrf if vrf is defined and vrf is not none }} {% if area is defined and area is not none %} {% for area_id, area_config in area.items() %} {% if area_config.area_type is defined and area_config.area_type is not none %} {% for type, type_config in area_config.area_type.items() %} area {{ area_id }} {{ type }} {{ 'default-information-originate' if type_config.default_information_originate is defined }} {{ 'no-summary' if type_config.no_summary is defined }} {% endfor %} {% endif %} {% if area_config.range is defined and area_config.range is not none %} {% for prefix, prefix_config in area_config.range.items() %} area {{ area_id }} range {{ prefix }} {{ 'advertise' if prefix_config.advertise is defined }} {{ 'not-advertise' if prefix_config.not_advertise is defined }} {% endfor %} {% endif %} {% if area_config.export_list is defined and area_config.export_list is not none %} area {{ area_id }} export-list {{ area_config.export_list }} {% endif %} {% if area_config.import_list is defined and area_config.import_list is not none %} area {{ area_id }} import-list {{ area_config.import_list }} {% endif %} {% endfor %} auto-cost reference-bandwidth {{ auto_cost.reference_bandwidth }} {% endif %} {% if distance is defined and distance is not none %} {% if distance.global is defined and distance.global is not none %} distance {{ distance.global }} {% endif %} {% if distance.ospfv3 is defined and distance.ospfv3 is not none %} distance ospf6 {{ 'intra-area ' + distance.ospfv3.intra_area if distance.ospfv3.intra_area is defined }} {{ 'inter-area ' + distance.ospfv3.inter_area if distance.ospfv3.inter_area is defined }} {{ 'external ' + distance.ospfv3.external if distance.ospfv3.external is defined }} {% endif %} {% endif %} {% if log_adjacency_changes is defined %} log-adjacency-changes {{ "detail" if log_adjacency_changes.detail is defined }} {% endif %} {% if parameters is defined and parameters is not none %} {% if parameters.router_id is defined and parameters.router_id is not none %} ospf6 router-id {{ parameters.router_id }} {% endif %} {% endif %} {% if redistribute is defined and redistribute is not none %} {% for protocol, options in redistribute.items() %} redistribute {{ protocol }} {{ 'route-map ' + options.route_map if options.route_map is defined }} {% endfor %} {% endif %} exit !