log syslog all;
router id {{ bird.bgp.common[inventory_hostname].routerid }};

protocol device {
}

protocol direct {
  disabled;
  ipv4;
  ipv6;
}

protocol kernel KERNEL4 {
  ipv4 {
    export all;	# Export to protocol. default is export none
  };
}

protocol kernel KERNEL6 {
  ipv6 { export all; };
}

{% for protocol_static in bird.bgp.static %}
protocol static {{ protocol_static.name }} {
  ipv4;
{% for network in protocol_static['networks'][inventory_hostname] %}
  route {{ network.ip }}/{{ network.mask_dash }} via "lo" { bgp_local_pref = {{ network.bgp_local_pref }}; };
{% endfor %}
}
{% endfor %}

{% for protocol_bgp in bird.bgp.bgp %}
protocol bgp {{ protocol_bgp.name }} {
{% if protocol_bgp.confederation is defined %}
  confederation {{ protocol_bgp.confederation }};
  confederation member yes;
{% endif %}
  local as {{ protocol_bgp.local_asnum }};
  neighbor {{ protocol_bgp.remote_addr }} as {{ protocol_bgp.remote_asnum }};
  hold time 30;
  ipv4 {
    export filter {
{% for proto in protocol_bgp.export %}
      if proto = "{{ proto }}" then accept;
{% endfor %}
      else reject;
    };
  };
}
{% endfor %}