!
bfd
{% if profile is defined and profile is not none %}
{%   for profile_name, profile_config in profile.items() %}
 profile {{ profile_name }}
  detect-multiplier {{ profile_config.interval.multiplier }}
  receive-interval {{ profile_config.interval.receive }}
  transmit-interval {{ profile_config.interval.transmit }}
{%     if profile_config.interval['echo-interval'] is defined and profile_config.interval['echo-interval'] is not none %}
  echo-interval {{ profile_config.interval['echo-interval'] }}
{%     endif %}
{%     if profile_config['echo-mode'] is defined %}
  echo-mode
{%     endif %}
{%     if profile_config.shutdown is defined %}
  shutdown
{%     else %}
  no shutdown
{%     endif %}
  exit
{%   endfor %}
{% endif %}
{% if peer is defined and peer is not none %}
{%   for peer_name, peer_config in peer.items() %}
 peer {{ peer_name }}{{ ' multihop' if peer_config.multihop is defined }}{{ ' local-address ' + peer_config.source.address if peer_config.source is defined and peer_config.source.address is defined }}{{ ' interface ' + peer_config.source.interface if peer_config.source is defined and peer_config.source.interface is defined }}
  detect-multiplier {{ peer_config.interval.multiplier }}
  receive-interval {{ peer_config.interval.receive }}
  transmit-interval {{ peer_config.interval.transmit }}
{%     if peer_config.interval['echo-interval'] is defined and peer_config.interval['echo-interval'] is not none %}
 echo-interval {{ peer_config.interval['echo-interval'] }}
{%     endif %}
{%     if peer_config['echo-mode'] is defined %}
  echo-mode
{%     endif %}
{%     if peer_config.shutdown is defined %}
  shutdown
{%     else %}
  no shutdown
{%     endif %}
  exit
{%   endfor %}
{% endif %}
 end
!