diff --git a/src/netom/templates/netom0/junos-0/bgp/neighbors.j2 b/src/netom/templates/netom0/junos-0/bgp/neighbors.j2 index 7d10315..ebb6dd9 100644 --- a/src/netom/templates/netom0/junos-0/bgp/neighbors.j2 +++ b/src/netom/templates/netom0/junos-0/bgp/neighbors.j2 @@ -1,11 +1,16 @@ +{% set printed_localas = { 'flag': false } %} {% for name, group in peer_groups.items() %} group {{ name }} { + type {{ peer_type }}; {% for peer in group %} {% if peer.local_address %} local-address {{ peer.local_address }}; {% endif %} {% if peer.local_as %} +{% if printed_localas.flag == false %} local-as {{ peer.local_as }}; +{% if printed_localas.update({ 'flag': true }) %}{% endif %} +{% endif %} {% endif %} {% if peer.enabled == False %} inactive: neighbor {{ peer.neighbor_address }} { @@ -37,4 +42,4 @@ group {{ name }} { } {% endfor %} } -{% endfor %} \ No newline at end of file +{% endfor %} diff --git a/src/netom/templates/netom0/junos-set-0/bgp/neighbors.j2 b/src/netom/templates/netom0/junos-set-0/bgp/neighbors.j2 index 3f2cae7..787ec22 100644 --- a/src/netom/templates/netom0/junos-set-0/bgp/neighbors.j2 +++ b/src/netom/templates/netom0/junos-set-0/bgp/neighbors.j2 @@ -1,30 +1,38 @@ +{% set printed_localas = { 'flag': false } %} +{% set printed_type = { 'flag': false } %} {% for name, group in peer_groups.items() %} {% for peer in group %} -set protocols bgp group {{ peer.peer_group }} type {{ peer.peer_type }} -set protocols bgp group {{ peer.peer_group }} neighbor {{ peer.neighbor_address }} peer-as {{ peer.peer_as }} +{% if printed_type.flag == false %} +set protocols bgp group {{ name }} type {{ peer.peer_type }} +{% if printed_type.update({ 'flag': true }) %}{% endif %} +{% endif %} +{% if peer.local_as %} +{% if printed_localas.flag == false %} +set protocols bgp group {{ name }} local-as {{ peer.local_as }} +{% if printed_localas.update({ 'flag': true }) %}{% endif %} +{% endif %} +{% endif %} +set protocols bgp group {{ name }} neighbor {{ peer.neighbor_address }} peer-as {{ peer.peer_as }} {% if peer.description %} -set protocols bgp group {{ peer.peer_group }} neighbor {{ peer.neighbor_address }} description "{{ peer.description }}" +set protocols bgp group {{ name }} neighbor {{ peer.neighbor_address }} description "{{ peer.description }}" {% endif %} {% if peer.local_address %} -set protocols bgp group {{ peer.peer_group }} neighbor {{ peer.neighbor_address }} local-address {{ peer.local_address }} -{% endif %} -{% if peer.local_as %}} -set protocols bgp group {{ peer.peer_group }} neighbor {{ peer.neighbor_address }} local-as {{ peer.local_as }} +set protocols bgp group {{ name }} neighbor {{ peer.neighbor_address }} local-address {{ peer.local_address }} {% endif %} {% if peer.import_policy %} -set protocols bgp group {{ peer.peer_group }} neighbor {{ peer.neighbor_address }} import {{ peer.import_policy }} +set protocols bgp group {{ name }} neighbor {{ peer.neighbor_address }} import {{ peer.import_policy }} {% endif %} {% if peer.export_policy %} -set protocols bgp group {{ peer.peer_group }} neighbor {{ peer.neighbor_address }} export {{ peer.export_policy }} +set protocols bgp group {{ name }} neighbor {{ peer.neighbor_address }} export {{ peer.export_policy }} {% endif %} {% if peer.auth_password %} -set protocols bgp group {{ peer.peer_group }} neighbor {{ peer.neighbor_address }} authentication-key {{ peer.auth_password }} +set protocols bgp group {{ name }} neighbor {{ peer.neighbor_address }} authentication-key {{ peer.auth_password }} {% endif %} {% if peer.max_prefixes %} -set protocols bgp group {{ peer.peer_group }} neighbor {{ peer.neighbor_address }} family inet unicast prefix-limit maximum {{ peer.max_prefixes }} +set protocols bgp group {{ name }} neighbor {{ peer.neighbor_address }} family inet unicast prefix-limit maximum {{ peer.max_prefixes }} {% endif %} {% if peer.enabled == False %} -deactivate protocols bgp group {{ peer.peer_group }} neighbor {{ peer.neighbor_address }} +deactivate protocols bgp group {{ name }} neighbor {{ peer.neighbor_address }} {% endif %} {% endfor %} -{% endfor %} \ No newline at end of file +{% endfor %}