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 @@ 4294967295 Cost 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 %}