Skip to content

Commit 507488c

Browse files
juarochaccoueffe
andauthored
Fixing indentation and address-family under neighbor (#554)
* Fixing indentation and address-family under neighbor * Fixing IPv6 address-family * Adding filter and fixing identantion * Fixing BGP ASN * Update ndfc_vrf_lite_ebgp.j2 update-source loopback in lower case as expect in running. netascode-bleaf21(config)# sh run bgp | sec update-source update-source loopback0 update-source Ethernet1/2.120 update-source Ethernet1/2.110 update-source Ethernet1/2.120 update-source Ethernet1/2.130 update-source loopback10 update-source loopback100 --------- Co-authored-by: Charly Coueffe <75327499+ccoueffe@users.noreply.github.com>
1 parent 7a5ac4a commit 507488c

2 files changed

Lines changed: 118 additions & 117 deletions

File tree

plugins/action/common/prepare_plugins/prep_108_vrf_lites.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121

2222
from jinja2 import ChainableUndefined, Environment, FileSystemLoader
2323
from ansible_collections.cisco.nac_dc_vxlan.plugins.plugin_utils.helper_functions import hostname_to_ip_mapping
24-
from ansible_collections.ansible.utils.plugins.filter import ipaddr
24+
from ansible_collections.ansible.utils.plugins.filter import ipaddr, ipv4, ipv6
2525

2626

2727
class PreparePlugin:
@@ -48,6 +48,8 @@ def prepare(self):
4848
)
4949

5050
env.filters["ipaddr"] = ipaddr.ipaddr
51+
env.filters["ipv4"] = ipv4.ipv4
52+
env.filters["ipv6"] = ipv6.ipv6
5153
template = env.get_template(template_filename)
5254
if "overlay_extensions" in model_data["vxlan"]:
5355
if "vrf_lites" in model_data["vxlan"]["overlay_extensions"]:

roles/dtc/common/templates/ndfc_vrf_lite/ndfc_vrf_lite_ebgp.j2

Lines changed: 115 additions & 116 deletions
Original file line numberDiff line numberDiff line change
@@ -21,23 +21,13 @@
2121
{% elif switch_item.bgp.graceful_restart_helper is not defined and (item.bgp.graceful_restart_helper | default(defaults.vxlan.overlay_extensions.vrf_lites.bgp.graceful_restart_helper)) %}
2222
graceful-restart-helper
2323
{% endif %}
24-
{% if switch_item.bgp.local_as %}
24+
{% if switch_item.bgp.local_as and item.vrf.lower() != 'default' %}
2525
local-as {{ switch_item.bgp.local_as }}
26-
{% elif item.bgp.local_as %}
26+
{% elif item.bgp.local_as and item.vrf.lower() != 'default' %}
2727
local-as {{ item.bgp.local_as }}
2828
{% endif %}
29-
{% set address_family = {'address_family_v4': false, 'address_family_v6': false } %}
30-
{% if switch_item.bgp_peers is defined %}
31-
{% for peer in switch_item.bgp_peers %}
32-
{% if "address_family_ipv4_unicast" in peer %}
33-
{% set _ = address_family.update({'address_family_v4': true}) %}
34-
{% elif "address_family_ipv6_unicast" in peer %}
35-
{% set _ = address_family.update({'address_family_v6': true}) %}
36-
{% endif %}
37-
{% endfor %}
38-
{% endif %}
39-
{% if switch_item.bgp.address_family_ipv4_unicast or address_family["address_family_v4"] is true %}
4029
address-family ipv4 unicast
30+
{% if switch_item.bgp.address_family_ipv4_unicast %}
4131
{% if (switch_item.bgp.address_family_ipv4_unicast.ebgp_distance or switch_item.bgp.address_family_ipv4_unicast.ibgp_distance or switch_item.bgp.address_family_ipv4_unicast.local_distance) %}
4232
distance {{ switch_item.bgp.address_family_ipv4_unicast.ebgp_distance | default(defaults.vxlan.overlay_extensions.vrf_lites.bgp.address_family_ipv4_unicast.ebgp_distance) }} {{ switch_item.bgp.address_family_ipv4_unicast.ibgp_distance | default(defaults.vxlan.overlay_extensions.vrf_lites.bgp.address_family_ipv4_unicast.ibgp_distance) }} {{ switch_item.bgp.address_family_ipv4_unicast.local_distance | default(defaults.vxlan.overlay_extensions.vrf_lites.bgp.address_family_ipv4_unicast.local_distance) }}
4333
{% endif %}
@@ -53,17 +43,19 @@
5343
{% if switch_item.bgp.address_family_ipv4_unicast.additional_paths_selection_route_map %}
5444
additional-paths selection route-map {{ switch_item.bgp.address_family_ipv4_unicast.additional_paths_selection_route_map }}
5545
{% endif %}
56-
{% if switch_item.redistribution %}
57-
{% for switch_redist in switch_item.redistribution %}
58-
{% if switch_redist.source == 'static' and switch_redist.route_map_ipv4 %}
46+
{% endif %}
47+
{% if switch_item.redistribution %}
48+
{% for switch_redist in switch_item.redistribution %}
49+
{% if switch_redist.source == 'static' and switch_redist.route_map_ipv4 %}
5950
redistribute static route-map {{ switch_redist.route_map_ipv4 }}
60-
{% endif %}
61-
{% endfor %}
62-
{% endif %}
63-
!
51+
{% endif %}
52+
{% if switch_redist.source == 'ospf' and switch_redist.route_map_ipv4 %}
53+
redistribute ospf {{ switch_redist.protocol_tag }} route-map {{ switch_redist.route_map_ipv4 }}
54+
{% endif %}
55+
{% endfor %}
6456
{% endif %}
65-
{% if switch_item.bgp.address_family_ipv6_unicast or address_family["address_family_v6"] is true %}
6657
address-family ipv6 unicast
58+
{% if switch_item.bgp.address_family_ipv6_unicast %}
6759
{% if (switch_item.bgp.address_family_ipv6_unicast.ebgp_distance or switch_item.bgp.address_family_ipv6_unicast.ibgp_distance or switch_item.bgp.address_family_ipv6_unicast.local_distance) %}
6860
distance {{ switch_item.bgp.address_family_ipv6_unicast.ebgp_distance | default(defaults.vxlan.overlay_extensions.vrf_lites.bgp.address_family_ipv6_unicast.ebgp_distance) }} {{ switch_item.bgp.address_family_ipv6_unicast.ibgp_distance | default(defaults.vxlan.overlay_extensions.vrf_lites.bgp.address_family_ipv6_unicast.ibgp_distance) }} {{ switch_item.bgp.address_family_ipv6_unicast.local_distance | default(defaults.vxlan.overlay_extensions.vrf_lites.bgp.address_family_ipv6_unicast.local_distance) }}
6961
{% endif %}
@@ -79,109 +71,115 @@
7971
{% if switch_item.bgp.address_family_ipv6_unicast.additional_paths_selection_route_map %}
8072
additional-paths selection route-map {{ switch_item.bgp.address_family_ipv6_unicast.additional_paths_selection_route_map }}
8173
{% endif %}
82-
{% if switch_item.redistribution %}
83-
{% for switch_redist in switch_item.redistribution %}
84-
{% if switch_redist.source == 'static' and switch_redist.route_map_ipv6 %}
74+
{% endif %}
75+
{% if switch_item.redistribution %}
76+
{% for switch_redist in switch_item.redistribution %}
77+
{% if switch_redist.source == 'static' and switch_redist.route_map_ipv6 %}
8578
redistribute static route-map {{ switch_redist.route_map_ipv6 }}
86-
{% endif %}
87-
{% endfor %}
88-
{% endif %}
89-
!
79+
{% endif %}
80+
{% if switch_redist.source == 'ospf' and switch_redist.route_map_ipv6 %}
81+
redistribute ospf {{ switch_redist.protocol_tag }} route-map {{ switch_redist.route_map_ipv6 }}
82+
{% endif %}
83+
{% endfor %}
9084
{% endif %}
85+
{# bgp peer loop #}
9186
{% if switch_item.bgp_peers %}
92-
{% for peer in switch_item.bgp_peers %}
93-
neighbor {{ peer.address }}
94-
remote-as {{ peer.remote_as }}
95-
{% if peer.local_as %}
96-
local-as {{ peer.local_as }} no-prepend replace-as
87+
{% for peer in switch_item.bgp_peers %}
88+
neighbor {{ peer.address }}
89+
remote-as {{ peer.remote_as }}
90+
{% if peer.local_as %}
91+
local-as {{ peer.local_as }} no-prepend replace-as
92+
{% endif %}
93+
{% if peer.description %}
94+
description {{ peer.description }}
95+
{% endif %}
96+
{% if peer.update_source %}
97+
update-source {{ peer.update_source }}
98+
{% elif switch_item.loopback_id %}
99+
update-source loopback{{ switch_item.loopback_id }}
100+
{% endif %}
101+
{% if peer.bfd.enabled | default(defaults.vxlan.overlay_extensions.vrf_lites.switches.bgp_peers.bfd.enabled) %}
102+
bfd
103+
{% endif %}
104+
{% if peer.disable_connected_check | default(defaults.vxlan.overlay_extensions.vrf_lites.switches.bgp_peers.disable_connected_check) %}
105+
disable-connected-check
106+
{% endif %}
107+
{% if peer.remove_private_as_all | default(defaults.vxlan.overlay_extensions.vrf_lites.switches.bgp_peers.remove_private_as_all) %}
108+
remove-private-as all
109+
{% elif peer.remove_private_as | default(defaults.vxlan.overlay_extensions.vrf_lites.switches.bgp_peers.remove_private_as) %}
110+
remove-private-as
111+
{% endif %}
112+
{% if peer.ebgp_multihop is defined %}
113+
ebgp-multihop {{ peer.ebgp_multihop }}
114+
{% endif %}
115+
{% if peer.password is defined %}
116+
password 3 {{ peer.password }}
117+
{% endif %}
118+
{% if (peer.address | ipv4()) or peer.address_family_ipv4_unicast is defined %}
119+
address-family ipv4 unicast
120+
{% endif %}
121+
{% if peer.address_family_ipv4_unicast %}
122+
{% if peer.address_family_ipv4_unicast.route_map_in %}
123+
route-map {{ peer.address_family_ipv4_unicast.route_map_in }} in
97124
{% endif %}
98-
{% if peer.description %}
99-
description {{ peer.description }}
125+
{% if peer.address_family_ipv4_unicast.route_map_out %}
126+
route-map {{ peer.address_family_ipv4_unicast.route_map_out }} out
100127
{% endif %}
101-
{% if peer.update_source %}
102-
update-source {{ peer.update_source }}
103-
{% elif switch_item.loopback_id %}
104-
update-source Loopback{{ switch_item.loopback_id }}
128+
{% if peer.address_family_ipv4_unicast.weight %}
129+
weight {{ peer.address_family_ipv4_unicast.weight }}
105130
{% endif %}
106-
{% if peer.bfd.enabled | default(defaults.vxlan.overlay_extensions.vrf_lites.switches.bgp_peers.bfd.enabled) %}
107-
bfd
108-
{% endif %}
109-
{% if peer.disable_connected_check | default(defaults.vxlan.overlay_extensions.vrf_lites.switches.bgp_peers.disable_connected_check) %}
110-
disable-connected-check
111-
{% endif %}
112-
{% if peer.remove_private_as_all | default(defaults.vxlan.overlay_extensions.vrf_lites.switches.bgp_peers.remove_private_as_all) %}
113-
remove-private-as all
114-
{% elif peer.remove_private_as | default(defaults.vxlan.overlay_extensions.vrf_lites.switches.bgp_peers.remove_private_as) %}
115-
remove-private-as
116-
{% endif %}
117-
{% if peer.ebgp_multihop is defined %}
118-
ebgp-multihop {{ peer.ebgp_multihop }}
119-
{% endif %}
120-
{% if peer.password is defined %}
121-
password 3 {{ peer.password }}
122-
{% endif %}
123-
{% if peer.address_family_ipv4_unicast %}
124-
address-family ipv4 unicast
125-
{% if peer.address_family_ipv4_unicast.route_map_in %}
126-
route-map {{ peer.address_family_ipv4_unicast.route_map_in }} in
127-
{% endif %}
128-
{% if peer.address_family_ipv4_unicast.route_map_out %}
129-
route-map {{ peer.address_family_ipv4_unicast.route_map_out }} out
130-
{% endif %}
131-
{% if peer.address_family_ipv4_unicast.weight %}
132-
weight {{ peer.address_family_ipv4_unicast.weight }}
133-
{% endif %}
134-
{% if peer.address_family_ipv4_unicast.allow_as_in %}
135-
allowas-in {{ peer.address_family_ipv4_unicast.allow_as_in_number | default(defaults.vxlan.overlay_extensions.vrf_lites.switches.bgp_peers.address_family_ipv4_unicast.allow_as_in_number) }}
136-
{% endif %}
137-
{% if peer.address_family_ipv4_unicast.send_community | default(defaults.vxlan.overlay_extensions.vrf_lites.switches.bgp_peers.address_family_ipv4_unicast.send_community) %}
138-
send-community
139-
{% endif %}
140-
{% if peer.address_family_ipv4_unicast.send_ext_community | default(defaults.vxlan.overlay_extensions.vrf_lites.switches.bgp_peers.address_family_ipv4_unicast.send_ext_community) %}
141-
send-community extended
142-
{% endif %}
143-
{% if peer.address_family_ipv4_unicast.as_override | default(defaults.vxlan.overlay_extensions.vrf_lites.bgp.address_family_ipv4_unicast.as_override) %}
144-
as-override
145-
{% endif %}
146-
{% if peer.address_family_ipv4_unicast.next_hop_self | default(defaults.vxlan.overlay_extensions.vrf_lites.bgp.address_family_ipv4_unicast.next_hop_self) %}
147-
next-hop-self
148-
{% endif %}
149-
{% if peer.address_family_ipv4_unicast.default_originate | default(defaults.vxlan.overlay_extensions.vrf_lites.bgp.address_family_ipv4_unicast.default_originate) %}
150-
default-originate
151-
{% endif %}
152-
!
131+
{% if peer.address_family_ipv4_unicast.allow_as_in %}
132+
allowas-in {{ peer.address_family_ipv4_unicast.allow_as_in_number | default(defaults.vxlan.overlay_extensions.vrf_lites.switches.bgp_peers.address_family_ipv4_unicast.allow_as_in_number) }}
153133
{% endif %}
154-
{% if peer.address_family_ipv6_unicast %}
155-
address-family ipv6 unicast
156-
{% if peer.address_family_ipv6_unicast.route_map_in %}
157-
route-map {{ peer.address_family_ipv6_unicast.route_map_in }} in
158-
{% endif %}
159-
{% if peer.address_family_ipv6_unicast.route_map_out %}
160-
route-map {{ peer.address_family_ipv6_unicast.route_map_out }} out
161-
{% endif %}
162-
{% if peer.address_family_ipv6_unicast.weight %}
163-
weight {{ peer.address_family_ipv6_unicast.weight }}
164-
{% endif %}
165-
{% if peer.address_family_ipv6_unicast.allow_as_in %}
166-
allowas-in {{ peer.address_family_ipv6_unicast.allow_as_in_number | default(defaults.vxlan.overlay_extensions.vrf_lites.switches.bgp_peers.address_family_ipv6_unicast.allow_as_in_number) }}
167-
{% endif %}
168-
{% if peer.address_family_ipv6_unicast.send_community | default(defaults.vxlan.overlay_extensions.vrf_lites.switches.bgp_peers.address_family_ipv6_unicast.send_community) %}
169-
send-community
170-
{% endif %}
171-
{% if peer.address_family_ipv6_unicast.send_ext_community | default(defaults.vxlan.overlay_extensions.vrf_lites.switches.bgp_peers.address_family_ipv6_unicast.send_ext_community) %}
172-
send-community extended
173-
{% endif %}
174-
{% if peer.address_family_ipv6_unicast.as_override| default(defaults.vxlan.overlay_extensions.vrf_lites.switches.bgp_peers.address_family_ipv6_unicast.as_override) %}
175-
as-override
176-
{% endif %}
177-
{% if peer.address_family_ipv6_unicast.next_hop_self | default(defaults.vxlan.overlay_extensions.vrf_lites.switches.bgp_peers.address_family_ipv6_unicast.next_hop_self) %}
178-
next-hop-self
179-
{% endif %}
180-
{% if peer.address_family_ipv6_unicast.default_originate | default(defaults.vxlan.overlay_extensions.vrf_lites.switches.bgp_peers.address_family_ipv6_unicast.default_originate) %}
181-
default-originate
182-
{% endif %}
134+
{% if peer.address_family_ipv4_unicast.send_community | default(defaults.vxlan.overlay_extensions.vrf_lites.switches.bgp_peers.address_family_ipv4_unicast.send_community) %}
135+
send-community
183136
{% endif %}
184-
{% endfor %}
137+
{% if peer.address_family_ipv4_unicast.send_ext_community | default(defaults.vxlan.overlay_extensions.vrf_lites.switches.bgp_peers.address_family_ipv4_unicast.send_ext_community) %}
138+
send-community extended
139+
{% endif %}
140+
{% if peer.address_family_ipv4_unicast.as_override | default(defaults.vxlan.overlay_extensions.vrf_lites.bgp.address_family_ipv4_unicast.as_override) %}
141+
as-override
142+
{% endif %}
143+
{% if peer.address_family_ipv4_unicast.next_hop_self | default(defaults.vxlan.overlay_extensions.vrf_lites.bgp.address_family_ipv4_unicast.next_hop_self) %}
144+
next-hop-self
145+
{% endif %}
146+
{% if peer.address_family_ipv4_unicast.default_originate | default(defaults.vxlan.overlay_extensions.vrf_lites.bgp.address_family_ipv4_unicast.default_originate) %}
147+
default-originate
148+
{% endif %}
149+
{% endif %}
150+
{% if (peer.address | ipv6()) or peer.address_family_ipv6_unicast is defined %}
151+
address-family ipv6 unicast
152+
{% endif %}
153+
{% if peer.address_family_ipv6_unicast %}
154+
{% if peer.address_family_ipv6_unicast.route_map_in %}
155+
route-map {{ peer.address_family_ipv6_unicast.route_map_in }} in
156+
{% endif %}
157+
{% if peer.address_family_ipv6_unicast.route_map_out %}
158+
route-map {{ peer.address_family_ipv6_unicast.route_map_out }} out
159+
{% endif %}
160+
{% if peer.address_family_ipv6_unicast.weight %}
161+
weight {{ peer.address_family_ipv6_unicast.weight }}
162+
{% endif %}
163+
{% if peer.address_family_ipv6_unicast.allow_as_in %}
164+
allowas-in {{ peer.address_family_ipv6_unicast.allow_as_in_number | default(defaults.vxlan.overlay_extensions.vrf_lites.switches.bgp_peers.address_family_ipv6_unicast.allow_as_in_number) }}
165+
{% endif %}
166+
{% if peer.address_family_ipv6_unicast.send_community | default(defaults.vxlan.overlay_extensions.vrf_lites.switches.bgp_peers.address_family_ipv6_unicast.send_community) %}
167+
send-community
168+
{% endif %}
169+
{% if peer.address_family_ipv6_unicast.send_ext_community | default(defaults.vxlan.overlay_extensions.vrf_lites.switches.bgp_peers.address_family_ipv6_unicast.send_ext_community) %}
170+
send-community extended
171+
{% endif %}
172+
{% if peer.address_family_ipv6_unicast.as_override| default(defaults.vxlan.overlay_extensions.vrf_lites.switches.bgp_peers.address_family_ipv6_unicast.as_override) %}
173+
as-override
174+
{% endif %}
175+
{% if peer.address_family_ipv6_unicast.next_hop_self | default(defaults.vxlan.overlay_extensions.vrf_lites.switches.bgp_peers.address_family_ipv6_unicast.next_hop_self) %}
176+
next-hop-self
177+
{% endif %}
178+
{% if peer.address_family_ipv6_unicast.default_originate | default(defaults.vxlan.overlay_extensions.vrf_lites.switches.bgp_peers.address_family_ipv6_unicast.default_originate) %}
179+
default-originate
180+
{% endif %}
181+
{% endif %}
182+
{% endfor %}
185183
{% endif %}
186184
{% endmacro %}
187185

@@ -202,5 +200,6 @@ router bgp {{ MD_Extended.vxlan.global[simplified_fabric_type].bgp_asn }}
202200
router bgp {{ MD_Extended.vxlan.global[simplified_fabric_type].bgp_asn }}
203201
{# Other VRFs #}
204202
vrf {{ item.vrf }}
203+
205204
{{- vrf_lite_ebgp_vrf_config(item, switch_item, defaults) | indent(2) -}}
206205
{% endif %}

0 commit comments

Comments
 (0)