057ced0391
The one big bgp configuration template was splitted into chunks. Currently we have three types of bgp neighbor peers: general bgp peers. They are represented by CONFIG_DB::BGP_NEIGHBOR table entries dynamic bgp peers. They are represented by CONFIG_DB::BGP_PEER_RANGE table entries monitors bgp peers. They are represented by CONFIG_DB::BGP_MONITORS table entries This PR introduces three templates for each peer type: bgp policies: represent policieas that will be applied to the bgp peer-group (ip prefix-lists, route-maps, etc) bgp peer-group: represent bgp peer group which has common configuration for the bgp peer type and uses bgp routing policy from the previous item bgp peer-group instance: represent bgp configuration, which will be used to instatiate a bgp peer-group for the bgp peer-type. Usually this one is simple, consist of the referral to the bgp peer-group, bgp peer description and bgp peer ip address. This PR redefined constant.yml file. Now this file has a setting for to use or don't use bgp_neighbor metadata. This file has more parameters for now, which are not used. They will be used in the next iteration of bgpcfgd. Currently all tests have been disabled. I'm going to create next PR with the tests right after this PR is merged. I'm going to introduce better bgpcfgd in a short time. It will include support of dynamic changes for the templates. FIX:: #4231
27 lines
755 B
Django/Jinja
Executable File
27 lines
755 B
Django/Jinja
Executable File
#!/bin/bash
|
|
## vtysh only accepts script in stdin, so cannot be directly used in shebang
|
|
## Cut the tail of this script and feed vtysh stdin
|
|
sed -n -e '9,$p' < "$0" | vtysh "$@"
|
|
## Exit with vtysh return code
|
|
exit $?
|
|
|
|
## vtysh script start from next line, which line number MUST equal in 'sed' command above
|
|
|
|
configure terminal
|
|
router bgp {{ DEVICE_METADATA['localhost']['bgp_asn'] }}
|
|
{% for neighbor_addr in BGP_NEIGHBOR %}
|
|
{% if neighbor_addr | ipv4 %}
|
|
neighbor {{ neighbor_addr }} route-map ISOLATE out
|
|
{% else %}
|
|
address-family ipv6
|
|
neighbor {{ neighbor_addr }} route-map ISOLATE out
|
|
exit-address-family
|
|
{% endif %}
|
|
{% endfor %}
|
|
exit
|
|
exit
|
|
|
|
{% for neighbor_addr in BGP_NEIGHBOR %}
|
|
clear ip bgp {{ neighbor_addr }} soft out
|
|
{% endfor %}
|