39 lines
1.8 KiB
Django/Jinja
39 lines
1.8 KiB
Django/Jinja
{% block bgp_peer %}
|
|
neighbor {{ neighbor_addr }} remote-as {{ bgp_session['asn'] }}
|
|
neighbor {{ neighbor_addr }} description {{ bgp_session['name'] }}
|
|
{# set the bgp neighbor timers if they have not default values #}
|
|
{% if (bgp_session['keepalive'] is defined and bgp_session['keepalive'] | int != 60)
|
|
or (bgp_session['holdtime'] is defined and bgp_session['holdtime'] | int != 180) %}
|
|
neighbor {{ neighbor_addr }} timers {{ bgp_session['keepalive'] }} {{ bgp_session['holdtime'] }}
|
|
{% endif %}
|
|
{% if bgp_session.has_key('admin_status') and bgp_session['admin_status'] == 'down' or not bgp_session.has_key('admin_status') and DEVICE_METADATA['localhost'].has_key('default_bgp_status') and DEVICE_METADATA['localhost']['default_bgp_status'] == 'down' %}
|
|
neighbor {{ neighbor_addr }} shutdown
|
|
{% endif %}
|
|
{% if neighbor_addr | ipv4 %}
|
|
address-family ipv4
|
|
neighbor {{ neighbor_addr }} peer-group PEER_V4
|
|
{% elif neighbor_addr | ipv6 %}
|
|
address-family ipv6
|
|
{% if bgp_session['asn'] != DEVICE_METADATA['localhost']['bgp_asn'] %}
|
|
neighbor {{ neighbor_addr }} route-map set-next-hop-global-v6 in
|
|
{% endif %}
|
|
neighbor {{ neighbor_addr }} peer-group PEER_V6
|
|
{% endif %}
|
|
{% if bgp_session['rrclient'] | int != 0 %}
|
|
neighbor {{ neighbor_addr }} route-reflector-client
|
|
{% endif %}
|
|
{% if bgp_session['nhopself'] | int != 0 %}
|
|
neighbor {{ neighbor_addr }} next-hop-self
|
|
{% endif %}
|
|
{% if bgp_session["asn"] == DEVICE_METADATA['localhost']['bgp_asn']
|
|
and DEVICE_METADATA['localhost']['type'] == "SpineChassisFrontendRouter"
|
|
and (not bgp_session.has_key("local_addr") or bgp_session["local_addr"] not in interfaces_in_vnets) %}
|
|
address-family l2vpn evpn
|
|
neighbor {{ neighbor_addr }} activate
|
|
advertise-all-vni
|
|
exit-address-family
|
|
{% endif %}
|
|
neighbor {{ neighbor_addr }} activate
|
|
exit-address-family
|
|
{% endblock bgp_peer %}
|