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 b7091f4f0..1413f214f 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
@@ -37,6 +37,18 @@
text
+
+ interface.cost_demoted
+
+ text
+
+
+ interface.carp_depend_on
+
+ dropdown
+ The carp VHID to depend on, when this virtual address is not in master state,
+ the interface cost will be set to the demoted cost (specified above).
+ interface.hellointerval
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 ef022849a..445f2786a 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
@@ -165,6 +165,17 @@
4294967295Cost must be between 0 and 4294967295.
+
+
+ 0
+ N
+ 4294967295
+ Cost must be between 0 and 4294967295.
+
+
+ carp
+ N
+ 0
diff --git a/net/frr/src/opnsense/service/templates/OPNsense/Quagga/+TARGETS b/net/frr/src/opnsense/service/templates/OPNsense/Quagga/+TARGETS
index b01f28018..a09b88d86 100644
--- a/net/frr/src/opnsense/service/templates/OPNsense/Quagga/+TARGETS
+++ b/net/frr/src/opnsense/service/templates/OPNsense/Quagga/+TARGETS
@@ -1,5 +1,6 @@
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
ripd.conf:/usr/local/etc/frr/ripd.conf
frr:/etc/rc.conf.d/frr
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
new file mode 100644
index 000000000..90e2149e2
--- /dev/null
+++ b/net/frr/src/opnsense/service/templates/OPNsense/Quagga/ospfd_carp.conf
@@ -0,0 +1,11 @@
+{% if helpers.exists('OPNsense.quagga.ospf.interfaces.interface') %}
+{% for interface in helpers.toList('OPNsense.quagga.ospf.interfaces.interface') %}
+{% if interface.enabled == '1' %}
+[interface_interface.interfacename]
+interface={{interface.interfacename}}
+default_cost={{interface.cost|default('10')}}
+demoted_cost={{interface.cost_demoted|default('')}}
+carp_depend_on={{interface.carp_depend_on|default('')}}
+{% endif %}
+{% endfor %}
+{% endif %}