From b24cec32088b118b3e1cf6de1a1abc27c326eb2a Mon Sep 17 00:00:00 2001
From: Monviech <79600909+Monviech@users.noreply.github.com>
Date: Tue, 27 May 2025 17:01:17 +0200
Subject: [PATCH] net/frr: Add bgp listen range to peer groups (#4722)
---
.../OPNsense/Quagga/forms/dialogEditBGPPeergroups.xml | 8 ++++++++
.../src/opnsense/mvc/app/models/OPNsense/Quagga/BGP.xml | 7 +++++++
.../opnsense/service/templates/OPNsense/Quagga/bgpd.conf | 5 +++++
3 files changed, 20 insertions(+)
diff --git a/net/frr/src/opnsense/mvc/app/controllers/OPNsense/Quagga/forms/dialogEditBGPPeergroups.xml b/net/frr/src/opnsense/mvc/app/controllers/OPNsense/Quagga/forms/dialogEditBGPPeergroups.xml
index 4f29080fc..50f122d47 100644
--- a/net/frr/src/opnsense/mvc/app/controllers/OPNsense/Quagga/forms/dialogEditBGPPeergroups.xml
+++ b/net/frr/src/opnsense/mvc/app/controllers/OPNsense/Quagga/forms/dialogEditBGPPeergroups.xml
@@ -33,6 +33,14 @@
false
+
+ peergroup.listenranges
+
+ select_multiple
+
+ true
+ Enter one or multiple IP networks in CIDR notation. Accept connections from any peers in the specified prefix.
+
peergroup.updatesource
diff --git a/net/frr/src/opnsense/mvc/app/models/OPNsense/Quagga/BGP.xml b/net/frr/src/opnsense/mvc/app/models/OPNsense/Quagga/BGP.xml
index 2d9095972..53a356be7 100644
--- a/net/frr/src/opnsense/mvc/app/models/OPNsense/Quagga/BGP.xml
+++ b/net/frr/src/opnsense/mvc/app/models/OPNsense/Quagga/BGP.xml
@@ -439,6 +439,13 @@
1
4294967295
+
+ ,
+ Y
+ Y
+ Y
+ Please enter one or multiple valid IP networks in CIDR notation.
+
Y
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 ba1faa37c..51c0ba3d9 100644
--- a/net/frr/src/opnsense/service/templates/OPNsense/Quagga/bgpd.conf
+++ b/net/frr/src/opnsense/service/templates/OPNsense/Quagga/bgpd.conf
@@ -98,6 +98,11 @@ router bgp {{ OPNsense.quagga.bgp.asnumber }}
{% endif %}
{% endfor %}
{% endif %}
+{% if peergroup.listenranges %}
+{% for prefix in peergroup.listenranges.split(',') %}
+ bgp listen range {{ prefix }} peer-group {{ peergroup.name }}
+{% endfor %}
+{% endif %}
{% endif %}
{% endfor %}
{% if helpers.exists('OPNsense.quagga.bgp.neighbors.neighbor') %}