From 377b76a585f4f744a7a043754c21d6a3a6a52192 Mon Sep 17 00:00:00 2001 From: Andy Binder Date: Thu, 7 Aug 2025 18:52:29 +0200 Subject: [PATCH] net/frr: ospfd add point-to-multipoint options (#4879) --- .../Quagga/forms/dialogEditOSPFInterface.xml | 10 ++++++++ .../mvc/app/models/OPNsense/Quagga/OSPF.xml | 6 +++++ .../mvc/app/views/OPNsense/Quagga/ospf.volt | 23 +++++++++++++++++++ .../templates/OPNsense/Quagga/ospfd.conf | 8 +++++++ 4 files changed, 47 insertions(+) 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 bc08a4c8c..62b423943 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 @@ -135,4 +135,14 @@ dropdown Defines the OSPF network type, impacting adjacency and LSA flooding methods. "Broadcast Multi-Access": Assumes networks supporting multiple routers with broadcast capability (e.g., Ethernet). "Non-Broadcast Multi-Access (NBMA)"": For networks without broadcast support (e.g., Frame Relay); requires manual neighbor setup. "Point-to-Multipoint": Connects multiple routers over a single interface, treating each as a point-to-point link. "Point-to-Point": Directly connects two routers, simplifying adjacency and LSA transmission. + + interface.p2mpoptions + + dropdown + + Only for point-to-multipoint network type! non-broadcast: Disables multicast/broadcast, OSPF neighbors must be manually configured. delay-reflood: Delays LSA flooding until retransmission timer expires if no ACK received. + + false + + 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 dab6380a3..1f28cebb4 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 @@ -236,6 +236,12 @@ Point-to-point network + + + Delay reflood + Non-broadcast + + diff --git a/net/frr/src/opnsense/mvc/app/views/OPNsense/Quagga/ospf.volt b/net/frr/src/opnsense/mvc/app/views/OPNsense/Quagga/ospf.volt index 488a90831..87260985a 100644 --- a/net/frr/src/opnsense/mvc/app/views/OPNsense/Quagga/ospf.volt +++ b/net/frr/src/opnsense/mvc/app/views/OPNsense/Quagga/ospf.volt @@ -110,6 +110,29 @@ POSSIBILITY OF SUCH DAMAGE. ); } + $("#interface\\.networktype").on("keyup change", function () { + + const networktype = String($("#interface\\.networktype").val() || "") + + const styleVisibility = [ + { + class: "style_networktype", + visible: networktype === "point-to-multipoint" + }, + ]; + + styleVisibility.forEach(style => { + // hide/show rows with the class + const elements = $("." + style.class).closest("tr"); + style.visible ? elements.show() : elements.hide(); + + // hide/show thead only if its parent container has the same class + $(".table-responsive." + style.class).find("thead").each(function () { + style.visible ? $(this).show() : $(this).hide(); + }); + }); + }); + }); 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 41ec0c5d6..381ffa8b4 100644 --- a/net/frr/src/opnsense/service/templates/OPNsense/Quagga/ospfd.conf +++ b/net/frr/src/opnsense/service/templates/OPNsense/Quagga/ospfd.conf @@ -25,7 +25,15 @@ interface {{ iface }} ip ospf bfd {% endif %} {% if interface.networktype %} +{% if interface.networktype == 'point-to-multipoint' %} +{% if interface.p2mpoptions %} + {{ cline("network", "point-to-multipoint " ~ interface.p2mpoptions) }} +{% else %} + {{ cline("network", "point-to-multipoint") }} +{% endif %} +{% else %} {{ cline("network", interface.networktype) }} +{% endif %} {% endif %} {% if interface.authtype and interface.authtype == 'message-digest' %} {{ cline("authentication", interface.authtype) }}