{% if helpers.exists('OPNsense.quagga.general.enabled') and OPNsense.quagga.general.enabled == '1' %}
# XXX rc.d/frr splits up defunct "frr" service into frr_daemons
# and we always start "zebra" so for now this works:
zebra_setup="/usr/local/opnsense/scripts/frr/setup.sh"
frr_enable="YES"
{% if helpers.exists('OPNsense.quagga.general.enablecarp') and OPNsense.quagga.general.enablecarp == '1' %}
start_precmd="ifconfig | grep 'carp: MASTER'"
{% endif %}
frr_daemons="mgmtd zebra{%
if helpers.exists('OPNsense.quagga.ospf.enabled') and OPNsense.quagga.ospf.enabled == '1' %} ospfd{% endif %}{%
if helpers.exists('OPNsense.quagga.rip.enabled') and OPNsense.quagga.rip.enabled == '1' %} ripd{% endif %}{%
if helpers.exists('OPNsense.quagga.bfd.enabled') and OPNsense.quagga.bfd.enabled == '1' %} bfdd{% endif %}{%
if helpers.exists('OPNsense.quagga.bgp.enabled') and OPNsense.quagga.bgp.enabled == '1' %} bgpd{% endif %}{%
if helpers.exists('OPNsense.quagga.ospf6.enabled') and OPNsense.quagga.ospf6.enabled == '1' %} ospf6d{% endif %}{%
if helpers.exists('OPNsense.quagga.ripng.enabled') and OPNsense.quagga.ripng.enabled == '1' %} ripngd{% endif %}{%
if helpers.exists('OPNsense.quagga.static.enabled') and OPNsense.quagga.static.enabled == '1' %} staticd{% endif %}"
frr_carp_demote="{%
    if not helpers.empty('OPNsense.quagga.ospf.carp_demote') %} ospfd{% endif %}{%
    if not helpers.empty('OPNsense.quagga.ospf6.carp_demote') %} ospf6d{% endif
%}"
watchfrr_flags="-r /usr/local/opnsense/scripts/frr/frr_wrapper.shbBrestartbB%s -s /usr/local/opnsense/scripts/frr/frr_wrapper.shbBstartbB%s -k /usr/sbin/servicebBfrrbBstopbB%s -b bB -t 30"
{% if OPNsense.quagga.general.enablesnmp == '1' %}
zebra_flags="${zebra_flags} -M snmp"
bgpd_flags="${bgpd_flags} -M snmp"
ospfd_flags="${ospfd_flags} -M snmp"
ospf6d_flags="${ospf6d_flags} -M snmp"
{% endif %}
{% else %}
frr_enable="NO"
{% endif %}
