From 14dda8a1d3593e11546c32e59c8da5b05bdc512d Mon Sep 17 00:00:00 2001 From: MarkStitson Date: Sun, 2 Jul 2023 17:30:06 +0100 Subject: [PATCH] net/frr - BFD for OSPF (#3488) * BFD for OSPF/OSPF6 --- .../OPNsense/Quagga/forms/dialogEditOSPF6Interface.xml | 6 ++++++ .../OPNsense/Quagga/forms/dialogEditOSPFInterface.xml | 6 ++++++ .../src/opnsense/mvc/app/models/OPNsense/Quagga/OSPF.xml | 4 ++++ .../src/opnsense/mvc/app/models/OPNsense/Quagga/OSPF6.xml | 4 ++++ .../opnsense/service/templates/OPNsense/Quagga/bgpd.conf | 4 ++-- .../opnsense/service/templates/OPNsense/Quagga/ospf6d.conf | 3 +++ .../opnsense/service/templates/OPNsense/Quagga/ospfd.conf | 3 +++ 7 files changed, 28 insertions(+), 2 deletions(-) diff --git a/net/frr/src/opnsense/mvc/app/controllers/OPNsense/Quagga/forms/dialogEditOSPF6Interface.xml b/net/frr/src/opnsense/mvc/app/controllers/OPNsense/Quagga/forms/dialogEditOSPF6Interface.xml index 2ddc6d816..ec7300f00 100644 --- a/net/frr/src/opnsense/mvc/app/controllers/OPNsense/Quagga/forms/dialogEditOSPF6Interface.xml +++ b/net/frr/src/opnsense/mvc/app/controllers/OPNsense/Quagga/forms/dialogEditOSPF6Interface.xml @@ -63,6 +63,12 @@ text + + interface.bfd + + checkbox + You can enable BFD support for this interface. You will also need to configure BFD peers. + interface.networktype diff --git a/net/frr/src/opnsense/mvc/app/controllers/OPNsense/Quagga/forms/dialogEditOSPFInterface.xml b/net/frr/src/opnsense/mvc/app/controllers/OPNsense/Quagga/forms/dialogEditOSPFInterface.xml index 34842de34..d46200e62 100644 --- a/net/frr/src/opnsense/mvc/app/controllers/OPNsense/Quagga/forms/dialogEditOSPFInterface.xml +++ b/net/frr/src/opnsense/mvc/app/controllers/OPNsense/Quagga/forms/dialogEditOSPFInterface.xml @@ -74,6 +74,12 @@ text + + interface.bfd + + checkbox + You can enable BFD support for this interface. You will also need to configure BFD peers. + interface.networktype diff --git a/net/frr/src/opnsense/mvc/app/models/OPNsense/Quagga/OSPF.xml b/net/frr/src/opnsense/mvc/app/models/OPNsense/Quagga/OSPF.xml index 1a676a02c..22f3cecc4 100644 --- a/net/frr/src/opnsense/mvc/app/models/OPNsense/Quagga/OSPF.xml +++ b/net/frr/src/opnsense/mvc/app/models/OPNsense/Quagga/OSPF.xml @@ -217,6 +217,10 @@ 4294967295 Priority must be between 0 and 4294967295. + + 0 + N + N N diff --git a/net/frr/src/opnsense/mvc/app/models/OPNsense/Quagga/OSPF6.xml b/net/frr/src/opnsense/mvc/app/models/OPNsense/Quagga/OSPF6.xml index b6a9b1b65..47da7c5d0 100644 --- a/net/frr/src/opnsense/mvc/app/models/OPNsense/Quagga/OSPF6.xml +++ b/net/frr/src/opnsense/mvc/app/models/OPNsense/Quagga/OSPF6.xml @@ -102,6 +102,10 @@ 4294967295 Priority must be between 0 and 4294967295. + + 0 + N + N N 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 d608696c0..041f0b8e5 100644 --- a/net/frr/src/opnsense/service/templates/OPNsense/Quagga/bgpd.conf +++ b/net/frr/src/opnsense/service/templates/OPNsense/Quagga/bgpd.conf @@ -60,7 +60,7 @@ router bgp {{ OPNsense.quagga.bgp.asnumber }} {% for neighbor in helpers.toList('OPNsense.quagga.bgp.neighbors.neighbor') %} {% if neighbor.enabled == '1' %} neighbor {{ neighbor.address }} remote-as {{ neighbor.remoteas }} -{% if 'bfd' in neighbor and neighbor.bfd == '1' %} +{% if neighbor.bfd|default('') == '1' %} neighbor {{ neighbor.address }} bfd {% endif %} {% if 'password' in neighbor and neighbor.password != '' %} @@ -107,7 +107,7 @@ router bgp {{ OPNsense.quagga.bgp.asnumber }} network {{ network }} {% endfor %} {% for neighbor in neighbors[addressFamily] %} - neighbor {{ neighbor.address }} activate + neighbor {{ neighbor.address }} activate {% if 'nexthopself' in neighbor and neighbor.nexthopself == '1' %} neighbor {{ neighbor.address }} next-hop-self {% if 'nexthopselfall' in neighbor and neighbor.nexthopselfall == '1' %}all{% endif %} 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 92fb578d9..8aabfb7bc 100644 --- a/net/frr/src/opnsense/service/templates/OPNsense/Quagga/ospf6d.conf +++ b/net/frr/src/opnsense/service/templates/OPNsense/Quagga/ospf6d.conf @@ -25,6 +25,9 @@ agentx {% for interface in helpers.toList('OPNsense.quagga.ospf6.interfaces.interface') %} {% if interface.enabled == '1' %} interface {{ physical_interface(interface.interfacename) }} +{% if interface.bfd|default('') == '1' %} + ipv6 ospf6 bfd +{% endif %} {% if interface.networktype %} ipv6 ospf6 network {{ interface.networktype }} {% endif %} 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 350f4925c..017749645 100644 --- a/net/frr/src/opnsense/service/templates/OPNsense/Quagga/ospfd.conf +++ b/net/frr/src/opnsense/service/templates/OPNsense/Quagga/ospfd.conf @@ -25,6 +25,9 @@ agentx {% 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 %}