From 7a9c2eca888768c1c666c677b26ce3efe20aaa6b Mon Sep 17 00:00:00 2001
From: Monviech <79600909+Monviech@users.noreply.github.com>
Date: Sat, 2 Aug 2025 12:38:09 +0200
Subject: [PATCH] net/frr: Add address family selection to peer groups (#4861)
* net/frr: Add address family selection to peer groups
---
net/frr/Makefile | 2 +-
net/frr/pkg-descr | 1 +
.../OPNsense/Quagga/forms/dialogEditBGPPeergroups.xml | 7 +++++++
.../opnsense/mvc/app/models/OPNsense/Quagga/BGP.xml | 11 ++++++++++-
.../service/templates/OPNsense/Quagga/bgpd.conf | 2 +-
5 files changed, 20 insertions(+), 3 deletions(-)
diff --git a/net/frr/Makefile b/net/frr/Makefile
index 18cc19683..3a8147256 100644
--- a/net/frr/Makefile
+++ b/net/frr/Makefile
@@ -1,6 +1,6 @@
PLUGIN_NAME= frr
PLUGIN_VERSION= 1.45
-PLUGIN_REVISION= 1
+PLUGIN_REVISION= 2
PLUGIN_COMMENT= The FRRouting Protocol Suite
PLUGIN_DEPENDS= frr10-pythontools
PLUGIN_MAINTAINER= ad@opnsense.org
diff --git a/net/frr/pkg-descr b/net/frr/pkg-descr
index 6ef350023..40f4e9546 100644
--- a/net/frr/pkg-descr
+++ b/net/frr/pkg-descr
@@ -19,6 +19,7 @@ Plugin Changelog
* Fix peer group activation (opnsense/plugins/pull/4777)
* Switch to FRR 10 (opnsense/plugins/pull/4741)
* Further adjustments for FRR 10
+* Add address family selection to peer groups (opnsense/plugins/pull/4861)
1.44
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 50f122d47..4f1ad2a72 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,13 @@
false
+
+ peergroup.family
+
+ dropdown
+ select_multiple
+ Select which address families to activate for this peer group.
+
peergroup.listenranges
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 5253f0233..eed6157a0 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
@@ -1,7 +1,7 @@
//OPNsense/quagga/bgp
BGP Routing configuration
- 1.1.0
+ 1.1.1
0
@@ -439,6 +439,15 @@
1
4294967295
+
+ Y
+ ipv4
+ Y
+
+ IPv4
+ IPv6
+
+
,
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 4e29d3707..5f64a9bc3 100644
--- a/net/frr/src/opnsense/service/templates/OPNsense/Quagga/bgpd.conf
+++ b/net/frr/src/opnsense/service/templates/OPNsense/Quagga/bgpd.conf
@@ -163,7 +163,7 @@ router bgp {{ OPNsense.quagga.bgp.asnumber }}
network {{ network }}
{% endfor %}
{% for peergroup in helpers.toList('OPNsense.quagga.bgp.peergroups.peergroup') %}
-{% if peergroup.enabled == '1' %}
+{% if peergroup.enabled == '1' and (addressFamily in peergroup.family.split(',')) %}
neighbor {{ peergroup.name }} activate
{% endif %}
{% endfor %}