diff --git a/net/frr/Makefile b/net/frr/Makefile
index 11c964bfd..7aa041dd2 100644
--- a/net/frr/Makefile
+++ b/net/frr/Makefile
@@ -1,6 +1,5 @@
PLUGIN_NAME= frr
-PLUGIN_VERSION= 1.21
-PLUGIN_REVISION= 3
+PLUGIN_VERSION= 1.22
PLUGIN_COMMENT= The FRRouting Protocol Suite
PLUGIN_DEPENDS= frr7
PLUGIN_MAINTAINER= franz.fabian.94@gmail.com
diff --git a/net/frr/pkg-descr b/net/frr/pkg-descr
index c0da55615..a5aa793d9 100644
--- a/net/frr/pkg-descr
+++ b/net/frr/pkg-descr
@@ -11,6 +11,10 @@ switching and routing, Internet access routers, and Internet peering.
Plugin Changelog
================
+1.22
+
+* Add BFD support
+
1.21
* Deprecate Ruby parser for FRR diagnostic output, remove Ruby dependency
diff --git a/net/frr/src/opnsense/mvc/app/controllers/OPNsense/Quagga/Api/BfdController.php b/net/frr/src/opnsense/mvc/app/controllers/OPNsense/Quagga/Api/BfdController.php
new file mode 100644
index 000000000..4904f54c0
--- /dev/null
+++ b/net/frr/src/opnsense/mvc/app/controllers/OPNsense/Quagga/Api/BfdController.php
@@ -0,0 +1,75 @@
+
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
+ * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+namespace OPNsense\Quagga\Api;
+
+use OPNsense\Base\ApiMutableModelControllerBase;
+
+class BfdController extends ApiMutableModelControllerBase
+{
+ protected static $internalModelName = 'bfd';
+ protected static $internalModelClass = '\OPNsense\Quagga\BFD';
+
+ public function searchNeighborAction()
+ {
+ return $this->searchBase(
+ 'neighbors.neighbor',
+ array("enabled",
+ "description",
+ "address")
+ );
+ }
+
+ public function getNeighborAction($uuid = null)
+ {
+ $this->sessionClose();
+ return $this->getBase('neighbor', 'neighbors.neighbor', $uuid);
+ }
+
+ public function addNeighborAction()
+ {
+ return $this->addBase('neighbor', 'neighbors.neighbor');
+ }
+
+ public function delNeighborAction($uuid)
+ {
+ return $this->delBase('neighbors.neighbor', $uuid);
+ }
+
+ public function setNeighborAction($uuid)
+ {
+ return $this->setBase('neighbor', 'neighbors.neighbor', $uuid);
+ }
+
+ public function toggleNeighborAction($uuid)
+ {
+ return $this->toggleBase('neighbors.neighbor', $uuid);
+ }
+}
diff --git a/net/frr/src/opnsense/mvc/app/controllers/OPNsense/Quagga/BfdController.php b/net/frr/src/opnsense/mvc/app/controllers/OPNsense/Quagga/BfdController.php
new file mode 100644
index 000000000..93575aa03
--- /dev/null
+++ b/net/frr/src/opnsense/mvc/app/controllers/OPNsense/Quagga/BfdController.php
@@ -0,0 +1,39 @@
+
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
+ * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+namespace OPNsense\Quagga;
+
+class BfdController extends \OPNsense\Base\IndexController
+{
+ public function indexAction()
+ {
+ $this->view->bfdForm = $this->getForm("bfd");
+ $this->view->formDialogEditBFDNeighbor = $this->getForm("dialogEditBFDNeighbor");
+ $this->view->pick('OPNsense/Quagga/bfd');
+ }
+}
diff --git a/net/frr/src/opnsense/mvc/app/controllers/OPNsense/Quagga/forms/bfd.xml b/net/frr/src/opnsense/mvc/app/controllers/OPNsense/Quagga/forms/bfd.xml
new file mode 100644
index 000000000..a0233c4cf
--- /dev/null
+++ b/net/frr/src/opnsense/mvc/app/controllers/OPNsense/Quagga/forms/bfd.xml
@@ -0,0 +1,8 @@
+