From 7a72050636f37ba90547f0ff663df7608a008d69 Mon Sep 17 00:00:00 2001 From: Monviech <79600909+Monviech@users.noreply.github.com> Date: Thu, 13 Feb 2025 11:07:18 +0100 Subject: [PATCH] net/frr: Implement frr.conf file (#4528) * net/frr: Implement frr.conf file, Part 1 * net/frr: Implement frr.conf file, Part 2 * net/frr: Implement frr.conf file, Part 3 * net/frr: Fix sa_policies.conf generation, include fix for passive interfaces https://github.com/opnsense/plugins/pull/4536, adjust comments --- .../templates/OPNsense/Quagga/+TARGETS | 14 +-- .../templates/OPNsense/Quagga/bfdd.conf | 20 +---- .../templates/OPNsense/Quagga/bgpd.conf | 26 +----- .../templates/OPNsense/Quagga/frr.conf | 8 ++ .../templates/OPNsense/Quagga/ospf6d.conf | 22 +---- .../OPNsense/Quagga/ospf6d_carp.conf | 1 + .../templates/OPNsense/Quagga/ospfd.conf | 86 ++++++++----------- .../templates/OPNsense/Quagga/ospfd_carp.conf | 1 + .../templates/OPNsense/Quagga/ripd.conf | 17 +--- .../OPNsense/Quagga/sa_policies.conf | 1 + .../templates/OPNsense/Quagga/staticd.conf | 12 +-- .../templates/OPNsense/Quagga/vtysh.conf | 1 + .../templates/OPNsense/Quagga/zebra.conf | 16 +--- 13 files changed, 60 insertions(+), 165 deletions(-) create mode 100644 net/frr/src/opnsense/service/templates/OPNsense/Quagga/frr.conf diff --git a/net/frr/src/opnsense/service/templates/OPNsense/Quagga/+TARGETS b/net/frr/src/opnsense/service/templates/OPNsense/Quagga/+TARGETS index 430e87167..9ee342bb4 100644 --- a/net/frr/src/opnsense/service/templates/OPNsense/Quagga/+TARGETS +++ b/net/frr/src/opnsense/service/templates/OPNsense/Quagga/+TARGETS @@ -1,13 +1,7 @@ -bfdd.conf:/usr/local/etc/frr/bfdd.conf -bgpd.conf:/usr/local/etc/frr/bgpd.conf -ospfd.conf:/usr/local/etc/frr/ospfd.conf -ospfd_carp.conf:/usr/local/etc/frr/ospfd_carp.conf -ospf6d.conf:/usr/local/etc/frr/ospf6d.conf -ospf6d_carp.conf:/usr/local/etc/frr/ospf6d_carp.conf -ripd.conf:/usr/local/etc/frr/ripd.conf -sa_policies.conf:/usr/local/etc/frr/sa_policies.conf -staticd.conf:/usr/local/etc/frr/staticd.conf frr:/etc/rc.conf.d/frr -zebra.conf:/usr/local/etc/frr/zebra.conf +frr.conf:/usr/local/etc/frr/frr.conf vtysh.conf:/usr/local/etc/frr/vtysh.conf +ospf6d_carp.conf:/usr/local/etc/frr/ospf6d_carp.conf +ospfd_carp.conf:/usr/local/etc/frr/ospfd_carp.conf +sa_policies.conf:/usr/local/etc/frr/sa_policies.conf syslog-ng-frr-events.conf:/usr/local/etc/syslog-ng.conf.d/frr-events.conf diff --git a/net/frr/src/opnsense/service/templates/OPNsense/Quagga/bfdd.conf b/net/frr/src/opnsense/service/templates/OPNsense/Quagga/bfdd.conf index 235d5d9b7..e4e3d832c 100644 --- a/net/frr/src/opnsense/service/templates/OPNsense/Quagga/bfdd.conf +++ b/net/frr/src/opnsense/service/templates/OPNsense/Quagga/bfdd.conf @@ -1,22 +1,5 @@ +{# included in frr.conf #} {% if helpers.exists('OPNsense.quagga.bfd.enabled') and OPNsense.quagga.bfd.enabled == '1' %} -! -! Zebra configuration saved from vty -! 2017/03/03 20:21:04 -! -{% if helpers.exists('OPNsense.quagga.general') %} -{% if helpers.exists('OPNsense.quagga.general.enablesyslog') and OPNsense.quagga.general.enablesyslog == '1' %} -log syslog {{ OPNsense.quagga.general.sysloglevel }} -{% endif %} -{% if helpers.exists('OPNsense.quagga.general.profile') %} -frr defaults {{ OPNsense.quagga.general.profile }} -{% endif %} -{% endif %} -! -! -! -line vty -! -! bfd {% if helpers.exists('OPNsense.quagga.bfd.neighbors.neighbor') %} {% for neighbor in helpers.toList('OPNsense.quagga.bfd.neighbors.neighbor') %} @@ -25,5 +8,4 @@ bfd {% endif %} {% endfor %} {% endif %} -! {% endif %} diff --git a/net/frr/src/opnsense/service/templates/OPNsense/Quagga/bgpd.conf b/net/frr/src/opnsense/service/templates/OPNsense/Quagga/bgpd.conf index 4dbaaa487..e560f3c25 100644 --- a/net/frr/src/opnsense/service/templates/OPNsense/Quagga/bgpd.conf +++ b/net/frr/src/opnsense/service/templates/OPNsense/Quagga/bgpd.conf @@ -1,3 +1,4 @@ +{# included in frr.conf #} {% if helpers.exists('OPNsense.quagga.bgp.enabled') and OPNsense.quagga.bgp.enabled == '1' %} {% from 'OPNsense/Macros/interface.macro' import physical_interface %} {% set addressFamilies = ['ipv4', 'ipv6' ] %} @@ -26,21 +27,6 @@ {% endif %} {% endfor %} {% endif %} -! -! Zebra configuration saved from vty -! 2017/03/03 20:21:04 -! -{% if helpers.exists('OPNsense.quagga.general') %} -{% if helpers.exists('OPNsense.quagga.general.enablesyslog') and OPNsense.quagga.general.enablesyslog == '1' %} -log syslog {{ OPNsense.quagga.general.sysloglevel }} -{% endif %} -{% if helpers.exists('OPNsense.quagga.general.profile') %} -frr defaults {{ OPNsense.quagga.general.profile }} -{% endif %} -{% endif %} -! -! -! {% if helpers.exists('OPNsense.quagga.bgp.asnumber') and OPNsense.quagga.bgp.asnumber != '' %} router bgp {{ OPNsense.quagga.bgp.asnumber }} {% if not helpers.empty('OPNsense.quagga.bgp.logneighborchanges') %} @@ -220,7 +206,6 @@ router bgp {{ OPNsense.quagga.bgp.asnumber }} {% endif %} {% endfor %} exit-address-family -! {% endfor %} {% if helpers.exists('OPNsense.quagga.bgp.prefixlists.prefixlist') %} @@ -228,13 +213,11 @@ router bgp {{ OPNsense.quagga.bgp.asnumber }} {% if prefixlist.enabled == '1' and prefixlist.version == 'IPv4' %} ip prefix-list {{ prefixlist.name }} seq {{ prefixlist.seqnumber }} {{ prefixlist.action }} {{ prefixlist.network }} {% endif %} -! {% if prefixlist.enabled == '1' and prefixlist.version == 'IPv6' %} ipv6 prefix-list {{ prefixlist.name }} seq {{ prefixlist.seqnumber }} {{ prefixlist.action }} {{ prefixlist.network }} {% endif %} {% endfor %} {% endif %} -! {% if helpers.exists('OPNsense.quagga.bgp.aspaths.aspath') %} {% for aspath in helpers.sortDictList(OPNsense.quagga.bgp.aspaths.aspath, 'number' ) %} {% if aspath.enabled == '1' %} @@ -242,7 +225,6 @@ bgp as-path access-list {{ aspath.number }} {{ aspath.action }} {{ aspath.as }} {% endif %} {% endfor %} {% endif %} -! {% if helpers.exists('OPNsense.quagga.bgp.communitylists.communitylist') %} {% for communitylist in helpers.sortDictList(OPNsense.quagga.bgp.communitylists.communitylist, 'number' ) %} {% if communitylist.enabled == '1' %} @@ -250,7 +232,6 @@ bgp community-list {{ communitylist.number }} seq {{ communitylist.seqnumber }} {% endif %} {% endfor %} {% endif %} -! {% if helpers.exists('OPNsense.quagga.bgp.routemaps.routemap') %} {% for routemap in helpers.sortDictList(OPNsense.quagga.bgp.routemaps.routemap, 'name', 'id' ) %} {% if routemap.enabled == '1' %} @@ -290,13 +271,8 @@ route-map {{ routemap.name }} {{ routemap.action }} {{ routemap.id }} {% endif %} {% endfor %} {% endif %} -! {% endif %} -! {% if helpers.exists('OPNsense.quagga.bgpd.enabled') and OPNsense.quagga.general.enablesnmp == '1' %} agentx {% endif %} -! -line vty -! {% endif %} diff --git a/net/frr/src/opnsense/service/templates/OPNsense/Quagga/frr.conf b/net/frr/src/opnsense/service/templates/OPNsense/Quagga/frr.conf new file mode 100644 index 000000000..b8da1a348 --- /dev/null +++ b/net/frr/src/opnsense/service/templates/OPNsense/Quagga/frr.conf @@ -0,0 +1,8 @@ +{# Main configuration file #} +{% include "OPNsense/Quagga/zebra.conf" %} +{% include "OPNsense/Quagga/ripd.conf" %} +{% include "OPNsense/Quagga/ospfd.conf" %} +{% include "OPNsense/Quagga/ospf6d.conf" %} +{% include "OPNsense/Quagga/bgpd.conf" %} +{% include "OPNsense/Quagga/bfdd.conf" %} +{% include "OPNsense/Quagga/staticd.conf" %} diff --git a/net/frr/src/opnsense/service/templates/OPNsense/Quagga/ospf6d.conf b/net/frr/src/opnsense/service/templates/OPNsense/Quagga/ospf6d.conf index 3c066333a..f581d001a 100644 --- a/net/frr/src/opnsense/service/templates/OPNsense/Quagga/ospf6d.conf +++ b/net/frr/src/opnsense/service/templates/OPNsense/Quagga/ospf6d.conf @@ -1,26 +1,14 @@ +{# included in frr.conf #} {% macro cline(directive, modelname) -%}{% if modelname %} ipv6 ospf6 {{ directive }} {{ modelname }} {% endif %}{%- endmacro %} {% from 'OPNsense/Macros/interface.macro' import physical_interface %} {% if not helpers.empty('OPNsense.quagga.ospf6.enabled') %} -! -! Zebra configuration saved from vty -! 2017/03/03 20:21:04 -! {% if helpers.exists('OPNsense.quagga.general') %} -{% if not helpers.empty('OPNsense.quagga.general.enablesyslog') %} -log syslog {{ OPNsense.quagga.general.sysloglevel }} -{% endif %} -{% if helpers.exists('OPNsense.quagga.general.profile') %} -frr defaults {{ OPNsense.quagga.general.profile }} -{% endif %} {% if OPNsense.quagga.general.enablesnmp == '1' %} agentx {% endif %} {% endif %} -! -! -! {% for interface in helpers.toList('OPNsense.quagga.ospf6.interfaces.interface') %} {% if interface.enabled == '1' %} interface {{ physical_interface(interface.interfacename) }} @@ -38,10 +26,9 @@ interface {{ physical_interface(interface.interfacename) }} }}{{ cline("hello-interval",interface.hellointerval) }}{{ cline("priority",interface.priority) }}{{ cline("retransmit-interval",interface.retransmitinterval) -}}! +}} {% endif %} {% endfor %} -! router ospf6 {% if not helpers.empty('OPNsense.quagga.ospf6.routerid') %} ospf6 router-id {{ OPNsense.quagga.ospf6.routerid }} @@ -88,7 +75,6 @@ router ospf6 {% endif %} {% endfor %} {% endif %} -! {% if helpers.exists('OPNsense.quagga.ospf6.prefixlists.prefixlist') %} {% for prefixlist in helpers.sortDictList(OPNsense.quagga.ospf6.prefixlists.prefixlist, 'name', 'seqnumber' ) %} {% if prefixlist.enabled == '1' %} @@ -96,7 +82,6 @@ ipv6 prefix-list {{ prefixlist.name }} seq {{ prefixlist.seqnumber }} {{ prefixl {% endif %} {% endfor %} {% endif %} -! {% if helpers.exists('OPNsense.quagga.ospf6.routemaps.routemap') %} {% for routemap in helpers.sortDictList(OPNsense.quagga.ospf6.routemaps.routemap, 'name', 'id' ) %} {% if routemap.enabled == '1' %} @@ -115,7 +100,4 @@ route-map {{ routemap.name }} {{ routemap.action }} {{ routemap.id }} {% endif %} {% endfor %} {% endif %} -! -line vty -! {% endif %} diff --git a/net/frr/src/opnsense/service/templates/OPNsense/Quagga/ospf6d_carp.conf b/net/frr/src/opnsense/service/templates/OPNsense/Quagga/ospf6d_carp.conf index af3400036..3d03df677 100644 --- a/net/frr/src/opnsense/service/templates/OPNsense/Quagga/ospf6d_carp.conf +++ b/net/frr/src/opnsense/service/templates/OPNsense/Quagga/ospf6d_carp.conf @@ -1,3 +1,4 @@ +{# consumed by ospf6d.py #} {% from 'OPNsense/Macros/interface.macro' import physical_interface %} {% if helpers.exists('OPNsense.quagga.ospf6.interfaces.interface') %} {% for interface in helpers.toList('OPNsense.quagga.ospf6.interfaces.interface') %} diff --git a/net/frr/src/opnsense/service/templates/OPNsense/Quagga/ospfd.conf b/net/frr/src/opnsense/service/templates/OPNsense/Quagga/ospfd.conf index 03f648c2f..b937c735b 100644 --- a/net/frr/src/opnsense/service/templates/OPNsense/Quagga/ospfd.conf +++ b/net/frr/src/opnsense/service/templates/OPNsense/Quagga/ospfd.conf @@ -1,54 +1,51 @@ +{# included in frr.conf #} {% macro cline(directive, modelname) -%}{% if modelname %} ip ospf {{ directive }} {{ modelname }} {% endif %}{%- endmacro %} {% from 'OPNsense/Macros/interface.macro' import physical_interface %} {% if helpers.exists('OPNsense.quagga.ospf.enabled') and OPNsense.quagga.ospf.enabled == '1' %} -! -! Zebra configuration saved from vty -! 2017/03/03 20:21:04 -! {% if helpers.exists('OPNsense.quagga.general') %} -{% if helpers.exists('OPNsense.quagga.general.enablesyslog') and OPNsense.quagga.general.enablesyslog == '1' %} -log syslog {{ OPNsense.quagga.general.sysloglevel }} -{% endif %} -{% if helpers.exists('OPNsense.quagga.general.profile') %} -frr defaults {{ OPNsense.quagga.general.profile }} -{% endif %} {% if OPNsense.quagga.general.enablesnmp == '1' %} agentx {% endif %} {% endif %} -! -! -! -{% if helpers.exists('OPNsense.quagga.ospf.interfaces.interface') %} -{% for interface in helpers.toList('OPNsense.quagga.ospf.interfaces.interface') %} -{% if interface.enabled == '1' %} -interface {{ physical_interface(interface.interfacename) }} -{% if interface.bfd|default('') == '1' %} - ip ospf bfd -{% endif %} -{% if interface.networktype %} -{{ cline("network",interface.networktype) -}}{% endif %} -{% if interface.authtype and interface.authtype == 'message-digest' -%}{{ cline("authentication",interface.authtype) -}}{{ cline("message-digest-key " + interface.authkey_id + " md5",interface.authkey) -}}{% elif interface.authtype and interface.authtype == 'plain' -%}{{ cline("authentication",' ') -}}{{ cline("authentication-key",interface.authkey) -}}{% endif -%}{{ cline("area",interface.area) -}}{{ cline("cost",interface.cost) -}}{{ cline("dead-interval",interface.deadinterval) -}}{{ cline("hello-interval",interface.hellointerval) -}}{{ cline("priority",interface.priority) -}}{{ cline("retransmit-interval",interface.retransmitinterval) -}}! -{% endif %} -{% endfor %} +{% set passive_interfaces = [] %} +{% if helpers.exists('OPNsense.quagga.ospf.passiveinterfaces') and OPNsense.quagga.ospf.passiveinterfaces != '' %} +{% for line in OPNsense.quagga.ospf.passiveinterfaces.split(',') %} +{% set iface = physical_interface(line) %} +{% set _ = passive_interfaces.append(iface) %} +interface {{ iface }} + ip ospf passive +{% endfor %} +{% endif %} +{# Render only the enabled non-passive interfaces past this point #} +{% if helpers.exists('OPNsense.quagga.ospf.interfaces.interface') %} +{% for interface in helpers.toList('OPNsense.quagga.ospf.interfaces.interface') %} +{% set iface = physical_interface(interface.interfacename) %} +{% if interface.enabled == '1' and iface not in passive_interfaces %} +interface {{ iface }} +{% if interface.bfd|default('') == '1' %} + ip ospf bfd +{% endif %} +{% if interface.networktype %} + {{ cline("network", interface.networktype) }} +{% endif %} +{% if interface.authtype and interface.authtype == 'message-digest' %} + {{ cline("authentication", interface.authtype) }} + {{ cline("message-digest-key " + interface.authkey_id + " md5", interface.authkey) }} +{% elif interface.authtype and interface.authtype == 'plain' %} + {{ cline("authentication", ' ') }} + {{ cline("authentication-key", interface.authkey) }} +{% endif %} + {{ cline("area", interface.area) }} + {{ cline("cost", interface.cost) }} + {{ cline("dead-interval", interface.deadinterval) }} + {{ cline("hello-interval", interface.hellointerval) }} + {{ cline("priority", interface.priority) }} + {{ cline("retransmit-interval", interface.retransmitinterval) }} +{% endif %} +{% endfor %} {% endif %} -! router ospf {% if helpers.exists('OPNsense.quagga.ospf.logadjacencychanges') and OPNsense.quagga.ospf.logadjacencychanges == '1' %} log-adjacency-changes @@ -64,10 +61,6 @@ router ospf {% if helpers.exists('OPNsense.quagga.ospf.redistributemap') and OPNsense.quagga.ospf.redistributemap != '' %}{% set line = line + " route-map " + helpers.getUUID(OPNsense.quagga.ospf.redistributemap).name %}{% endif %} redistribute {{ line }} {% endfor %}{% endif %} -{% if helpers.exists('OPNsense.quagga.ospf.passiveinterfaces') and OPNsense.quagga.ospf.passiveinterfaces != '' %} -{% for line in OPNsense.quagga.ospf.passiveinterfaces.split(',') %} - passive-interface {{ physical_interface(line) }} -{% endfor %}{% endif %} {% if helpers.exists('OPNsense.quagga.ospf.networks.network') %} {% for network in helpers.toList('OPNsense.quagga.ospf.networks.network') %} {% if network.enabled == '1' %} @@ -98,7 +91,6 @@ router ospf default-information originate{% if helpers.exists('OPNsense.quagga.ospf.originatealways') and OPNsense.quagga.ospf.originatealways == '1' %} always {% endif %}{% if helpers.exists('OPNsense.quagga.ospf.originatemetric') and OPNsense.quagga.ospf.originatemetric != '' %} metric {{ OPNsense.quagga.ospf.originatemetric }}{% endif %} {% endif %} -! {% if helpers.exists('OPNsense.quagga.ospf.prefixlists.prefixlist') %} {% for prefixlist in helpers.sortDictList(OPNsense.quagga.ospf.prefixlists.prefixlist, 'name', 'seqnumber' ) %} {% if prefixlist.enabled == '1' %} @@ -106,7 +98,6 @@ ip prefix-list {{ prefixlist.name }} seq {{ prefixlist.seqnumber }} {{ prefixlis {% endif %} {% endfor %} {% endif %} -! {% if helpers.exists('OPNsense.quagga.ospf.routemaps.routemap') %} {% for routemap in helpers.sortDictList(OPNsense.quagga.ospf.routemaps.routemap, 'name', 'id' ) %} {% if routemap.enabled == '1' %} @@ -125,7 +116,4 @@ route-map {{ routemap.name }} {{ routemap.action }} {{ routemap.id }} {% endif %} {% endfor %} {% endif %} -! -line vty -! {% endif %} diff --git a/net/frr/src/opnsense/service/templates/OPNsense/Quagga/ospfd_carp.conf b/net/frr/src/opnsense/service/templates/OPNsense/Quagga/ospfd_carp.conf index 724d7cb3c..d67fdde4a 100644 --- a/net/frr/src/opnsense/service/templates/OPNsense/Quagga/ospfd_carp.conf +++ b/net/frr/src/opnsense/service/templates/OPNsense/Quagga/ospfd_carp.conf @@ -1,3 +1,4 @@ +{# consumed by ospfd.py #} {% from 'OPNsense/Macros/interface.macro' import physical_interface %} {% if helpers.exists('OPNsense.quagga.ospf.interfaces.interface') %} {% for interface in helpers.toList('OPNsense.quagga.ospf.interfaces.interface') %} diff --git a/net/frr/src/opnsense/service/templates/OPNsense/Quagga/ripd.conf b/net/frr/src/opnsense/service/templates/OPNsense/Quagga/ripd.conf index 70532d4f1..70d29a835 100644 --- a/net/frr/src/opnsense/service/templates/OPNsense/Quagga/ripd.conf +++ b/net/frr/src/opnsense/service/templates/OPNsense/Quagga/ripd.conf @@ -1,18 +1,6 @@ +{# included in frr.conf #} {% if helpers.exists('OPNsense.quagga.rip.enabled') and OPNsense.quagga.rip.enabled == '1' %} {% from 'OPNsense/Macros/interface.macro' import physical_interface %} -! -! Zebra configuration saved from vty -! 2017/03/26 22:40:16 -! -{% if helpers.exists('OPNsense.quagga.general') %} -{% if helpers.exists('OPNsense.quagga.general.enablesyslog') and OPNsense.quagga.general.enablesyslog == '1' %} -log syslog {{ OPNsense.quagga.general.sysloglevel }} -{% endif %} -{% if helpers.exists('OPNsense.quagga.general.profile') %} -frr defaults {{ OPNsense.quagga.general.profile }} -{% endif %} -{% endif %} -! router rip version {{ OPNsense.quagga.rip.version }} {% if helpers.exists('OPNsense.quagga.rip.redistribute') and OPNsense.quagga.rip.redistribute != '' %} @@ -31,7 +19,4 @@ router rip {% if helpers.exists('OPNsense.quagga.rip.defaultmetric') and OPNsense.quagga.rip.defaultmetric != '' %} default-metric {{ OPNsense.quagga.rip.defaultmetric }} {% endif %} -! -line vty -! {% endif %} diff --git a/net/frr/src/opnsense/service/templates/OPNsense/Quagga/sa_policies.conf b/net/frr/src/opnsense/service/templates/OPNsense/Quagga/sa_policies.conf index bb1587cf3..9f0df5422 100644 --- a/net/frr/src/opnsense/service/templates/OPNsense/Quagga/sa_policies.conf +++ b/net/frr/src/opnsense/service/templates/OPNsense/Quagga/sa_policies.conf @@ -1,3 +1,4 @@ +{# consumed by scripts/frr/register_sas #} {% if helpers.exists('OPNsense.quagga.bgp.enabled') and OPNsense.quagga.bgp.enabled == '1' %} {% if helpers.exists('OPNsense.quagga.bgp.neighbors.neighbor') %} {% for neighbor in helpers.toList('OPNsense.quagga.bgp.neighbors.neighbor') %} diff --git a/net/frr/src/opnsense/service/templates/OPNsense/Quagga/staticd.conf b/net/frr/src/opnsense/service/templates/OPNsense/Quagga/staticd.conf index 099a06ea7..fdff7d0f2 100644 --- a/net/frr/src/opnsense/service/templates/OPNsense/Quagga/staticd.conf +++ b/net/frr/src/opnsense/service/templates/OPNsense/Quagga/staticd.conf @@ -1,18 +1,8 @@ -! -! staticd Zebra config autogenerated by OPNsense -! +{# included in frr.conf #} {% if not helpers.empty('OPNsense.quagga.static.enabled') %} -{% if not helpers.empty('OPNsense.quagga.general') %} -log syslog {{ OPNsense.quagga.general.sysloglevel }} -{% endif %} -{% if not helpers.empty('OPNsense.quagga.general.profile') %} -frr defaults {{ OPNsense.quagga.general.profile }} -{% endif %} -! {% for route in helpers.toList('OPNsense.quagga.static.routes.route') %} {% if route.enabled == '1' %} {% if ':' in route.network %}ipv6{% else %}ip{% endif %} route {{ route.network }} {{ route.gateway|default('')}} {{ helpers.physical_interface(route.interfacename) }} {% endif %} {% endfor %} -! {% endif %} diff --git a/net/frr/src/opnsense/service/templates/OPNsense/Quagga/vtysh.conf b/net/frr/src/opnsense/service/templates/OPNsense/Quagga/vtysh.conf index e69de29bb..57d0b081d 100644 --- a/net/frr/src/opnsense/service/templates/OPNsense/Quagga/vtysh.conf +++ b/net/frr/src/opnsense/service/templates/OPNsense/Quagga/vtysh.conf @@ -0,0 +1 @@ +{# file is empty on purpose since vtysh requires a configuration file to exist #} diff --git a/net/frr/src/opnsense/service/templates/OPNsense/Quagga/zebra.conf b/net/frr/src/opnsense/service/templates/OPNsense/Quagga/zebra.conf index fbc685f72..1822f47f1 100644 --- a/net/frr/src/opnsense/service/templates/OPNsense/Quagga/zebra.conf +++ b/net/frr/src/opnsense/service/templates/OPNsense/Quagga/zebra.conf @@ -1,28 +1,14 @@ +{# included in frr.conf #} {% if helpers.exists('OPNsense.quagga.general') %} -! -! Zebra configuration saved from vty -! 2017/03/03 20:21:04 -! {% if helpers.exists('OPNsense.quagga.general.profile') %} frr defaults {{ OPNsense.quagga.general.profile }} {% endif %} {% if helpers.exists('OPNsense.quagga.general.enablesyslog') and OPNsense.quagga.general.enablesyslog == '1' %} log syslog {{ OPNsense.quagga.general.sysloglevel }} {% endif %} -! -! -! -! -! {% if OPNsense.quagga.general.enablesnmp == '1' %} agentx {% endif %} -! -! ip forwarding ipv6 forwarding -! -! -line vty -! {% endif %}