! {{ ansible_managed }} hostname {{ tripleo_frr_hostname }} log file /var/log/frr/frr.log {{ tripleo_frr_log_level }} log timestamp precision {{ tripleo_frr_log_timestamp_precision }} service integrated-vtysh-config line vty router bgp {{ tripleo_frr_bgp_asn }} bgp log-neighbor-changes bgp graceful-shutdown neighbor uplink peer-group neighbor uplink remote-as {{ tripleo_frr_bgp_uplinks_scope }} ! neighbor uplink capability extended-nexthop {% if tripleo_frr_bfd %} neighbor uplink bfd {% endif %} {% for iface in tripleo_frr_bgp_uplinks_mapped %} neighbor {{ iface }} interface peer-group uplink {% endfor %} {% if tripleo_frr_bgp_neighbor_ttl_security_hops | int > 0 %} neighbor uplink ttl-security hops {{ tripleo_frr_bgp_neighbor_ttl_security_hops }} {% endif %} {% if tripleo_frr_bgp_ipv4 %} address-family ipv4 unicast redistribute connected {% if tripleo_frr_bgp_ipv4_allowas_in %} neighbor uplink allowas-in origin {% endif %} neighbor uplink prefix-list only-host-prefixes out exit-address-family {% endif %} {% if tripleo_frr_bgp_ipv6 %} address-family ipv6 unicast redistribute connected neighbor uplink activate {% if tripleo_frr_bgp_ipv6_allowas_in %} neighbor uplink allowas-in origin {% endif %} neighbor uplink prefix-list only-host-prefixes out exit-address-family {% endif %} {% if tripleo_frr_bgp_ipv4 %} ip prefix-list only-default permit 0.0.0.0/0 ip prefix-list only-host-prefixes permit 0.0.0.0/0 ge 32 route-map rm-only-default permit 10 match ip address prefix-list only-default set src {{ hostvars[inventory_hostname][tripleo_frr_bgp_ipv4_src_network ~ '_ip'] }} ip protocol bgp route-map rm-only-default {% endif %} {# tripleo_frr_bgp_ipv4 #} {% if tripleo_frr_bgp_ipv6 %} ipv6 prefix-list only-default permit ::/0 ipv6 prefix-list only-host-prefixes permit ::/0 ge 128 route-map rm-only-default permit 11 match ipv6 address prefix-list only-default set src {{ hostvars[inventory_hostname][tripleo_frr_bgp_ipv6_src_network ~ '_ip'] }} ipv6 protocol bgp route-map rm-only-default {% endif %}