43342b33b8
This commit has following changes: * Add templates and code to support VoQ chassis iBGP peers * Add support to convert a new VoQChassisInternal element in the BGPSession element of the minigraph to a new BGP_VOQ_CHASSIS_NEIGHBOR table in CONFIG_DB. * Add a new set of "voq_chassis" templates to docker-fpm-frr * Add a new BGP peer manager to bgpcfgd to add neighbors from the BGP_VOQ_CHASSIS_NEIGHBOR table using the voq_chassis templates. * Add a test case for minigraph.py, making sure the VoQChassisInternal element creates a BGP_VOQ_CHASSIS_NEIGHBOR entry, but not if its value is "false". * Add a set of test cases for the new voq_chassis templates in sonic-bgpcfgd tests. Note that the templates expect the new "bgp bestpath peer-type multipath-relax" bgpd configuration to be available. Signed-off-by: Joanne Mikkelson <jmmikkel@arista.com>
36 lines
1.5 KiB
Django/Jinja
36 lines
1.5 KiB
Django/Jinja
!
|
|
! template: bgpd/templates/voq_chassis/instance.conf.j2
|
|
!
|
|
bgp bestpath as-path multipath-relax
|
|
bgp bestpath peer-type multipath-relax
|
|
!
|
|
neighbor {{ neighbor_addr }} peer-group VOQ_CHASSIS_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'] | default("60") }} {{ bgp_session['holdtime'] | default("180") }}
|
|
{% endif %}
|
|
!
|
|
{% if 'admin_status' in bgp_session and bgp_session['admin_status'] == 'down' or 'admin_status' not in bgp_session and 'default_bgp_status' in CONFIG_DB__DEVICE_METADATA['localhost'] and CONFIG_DB__DEVICE_METADATA['localhost']['default_bgp_status'] == 'down' %}
|
|
neighbor {{ neighbor_addr }} shutdown
|
|
{% endif %}
|
|
!
|
|
address-family ipv4
|
|
{% if constants.bgp.maximum_paths.enabled is defined and constants.bgp.maximum_paths.enabled %}
|
|
maximum-paths ibgp {{ constants.bgp.maximum_paths.ipv4 | default(64) }}
|
|
{% endif %}
|
|
!
|
|
exit-address-family
|
|
!
|
|
address-family ipv6
|
|
{% if constants.bgp.maximum_paths.enabled is defined and constants.bgp.maximum_paths.enabled %}
|
|
maximum-paths ibgp {{ constants.bgp.maximum_paths.ipv6 | default(64) }}
|
|
{% endif %}
|
|
!
|
|
exit-address-family
|
|
!
|
|
! end of template: bgpd/templates/voq_chassis/instance.conf.j2
|
|
!
|