blob: 8279e5abb8821dd0fc536ae55c4cedfcf65886a2 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
!
{% 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 %}
{% endif %}
auto-cost reference-bandwidth {{ auto_cost.reference_bandwidth }}
{% if default_information is defined and default_information.originate is defined and default_information.originate is not none %}
default-information originate {{ 'always' if default_information.originate.always is defined }} {{ 'metric ' + default_information.originate.metric if default_information.originate.metric is defined }} {{ 'metric-type ' + default_information.originate.metric_type if default_information.originate.metric_type is defined }} {{ 'route-map ' + default_information.originate.route_map if default_information.originate.route_map is defined }}
{% 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
!
|