public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
From: Gabriel Goller <g.goller@proxmox.com>
To: pve-devel@lists.proxmox.com
Subject: [pve-devel] [PATCH frr 1/2] bump frr to 10.4.1, remove obsolete patches
Date: Fri, 21 Nov 2025 15:13:22 +0100	[thread overview]
Message-ID: <20251121141446.349501-2-g.goller@proxmox.com> (raw)
In-Reply-To: <20251121141446.349501-1-g.goller@proxmox.com>

Bump the frr source to 10.4.1 (now that 10.5.0 has been released
upstream). This allows us to drop the fabricd dummy-as-loopback patches
as these have been merged upstream. This bump will also fix the libyang
errors in the journal (https://bugzilla.proxmox.com/show_bug.cgi?id=6968).

Fixes: #6968
Signed-off-by: Gabriel Goller <g.goller@proxmox.com>
---
 ...ummy_as_loopback-option-per-default.patch} |   0
 ...A_IF_DUMMY-flag-for-dummy-interfaces.patch | 125 -----------
 ...on-to-treat-dummy-interfaces-as-loop.patch | 206 ------------------
 ...dd-dependancy-to-networking.service.patch} |   0
 ...-starting-order-for-debian-packages.patch} |   0
 debian/patches/series                         |   8 +-
 frr                                           |   2 +-
 7 files changed, 4 insertions(+), 337 deletions(-)
 rename debian/patches/pve/{0006-fabricd-enable-dummy_as_loopback-option-per-default.patch => 0004-fabricd-enable-dummy_as_loopback-option-per-default.patch} (100%)
 delete mode 100644 debian/patches/pve/0004-zebra-add-ZEBRA_IF_DUMMY-flag-for-dummy-interfaces.patch
 delete mode 100644 debian/patches/pve/0005-fabricd-add-option-to-treat-dummy-interfaces-as-loop.patch
 rename debian/patches/pve/{0007-systemd-add-dependancy-to-networking.service.patch => 0005-systemd-add-dependancy-to-networking.service.patch} (100%)
 rename debian/patches/pve/{0007-tools-fix-daemon-starting-order-for-debian-packages.patch => 0006-tools-fix-daemon-starting-order-for-debian-packages.patch} (100%)

diff --git a/debian/patches/pve/0006-fabricd-enable-dummy_as_loopback-option-per-default.patch b/debian/patches/pve/0004-fabricd-enable-dummy_as_loopback-option-per-default.patch
similarity index 100%
rename from debian/patches/pve/0006-fabricd-enable-dummy_as_loopback-option-per-default.patch
rename to debian/patches/pve/0004-fabricd-enable-dummy_as_loopback-option-per-default.patch
diff --git a/debian/patches/pve/0004-zebra-add-ZEBRA_IF_DUMMY-flag-for-dummy-interfaces.patch b/debian/patches/pve/0004-zebra-add-ZEBRA_IF_DUMMY-flag-for-dummy-interfaces.patch
deleted file mode 100644
index 3c0df893236a..000000000000
--- a/debian/patches/pve/0004-zebra-add-ZEBRA_IF_DUMMY-flag-for-dummy-interfaces.patch
+++ /dev/null
@@ -1,125 +0,0 @@
-From 7cf60fd0bdaa45311eea886cee6d1f290a4ac2d2 Mon Sep 17 00:00:00 2001
-From: Gabriel Goller <g.goller@proxmox.com>
-Date: Tue, 25 Feb 2025 10:13:34 +0100
-Subject: [PATCH] zebra: add ZEBRA_IF_DUMMY flag for dummy interfaces
-
-Introduce ZEBRA_IF_DUMMY interface flag to identify Linux dummy interfaces [0].
-These interfaces behave similarly to loopback interfaces and can be
-specially handled by daemons.
-
-[0]: https://github.com/torvalds/linux/blob/master/drivers/net/dummy.c
-
-Link: https://github.com/FRRouting/frr/pull/18242
-Signed-off-by: Gabriel Goller <g.goller@proxmox.com>
----
- lib/if.h               | 1 +
- zebra/if_netlink.c     | 3 +++
- zebra/interface.c      | 7 +++++++
- zebra/interface.h      | 6 +++++-
- zebra/zebra_nb_state.c | 3 +++
- 5 files changed, 19 insertions(+), 1 deletion(-)
-
-Index: b/lib/if.h
-===================================================================
---- a/lib/if.h	2025-03-07 11:09:47.571424092 +0100
-+++ b/lib/if.h	2025-03-07 11:09:47.568424088 +0100
-@@ -242,6 +242,7 @@
- #define ZEBRA_INTERFACE_SUB        (1 << 1)
- #define ZEBRA_INTERFACE_LINKDETECTION (1 << 2)
- #define ZEBRA_INTERFACE_VRF_LOOPBACK (1 << 3)
-+#define ZEBRA_INTERFACE_DUMMY (1 << 4)
- 
- 	/* Interface flags. */
- 	uint64_t flags;
-Index: b/zebra/if_netlink.c
-===================================================================
---- a/zebra/if_netlink.c	2025-03-07 11:09:47.571424092 +0100
-+++ b/zebra/if_netlink.c	2025-03-07 11:09:47.568424088 +0100
-@@ -221,6 +221,8 @@
- 		*zif_type = ZEBRA_IF_BOND;
- 	else if (strcmp(kind, "gre") == 0)
- 		*zif_type = ZEBRA_IF_GRE;
-+	else if (strcmp(kind, "dummy") == 0)
-+		*zif_type = ZEBRA_IF_DUMMY;
- }
- 
- static void netlink_vrf_change(struct nlmsghdr *h, struct rtattr *tb,
-@@ -576,6 +578,7 @@
- 	case ZEBRA_IF_MACVLAN:
- 	case ZEBRA_IF_VETH:
- 	case ZEBRA_IF_BOND:
-+	case ZEBRA_IF_DUMMY:
- 		break;
- 	}
- }
-Index: b/zebra/interface.c
-===================================================================
---- a/zebra/interface.c	2025-03-07 11:09:47.571424092 +0100
-+++ b/zebra/interface.c	2025-03-07 11:09:47.568424088 +0100
-@@ -584,6 +584,9 @@
- 
- 	zebra_interface_add_update(ifp);
- 
-+	if (IS_ZEBRA_IF_DUMMY(ifp))
-+		SET_FLAG(ifp->status, ZEBRA_INTERFACE_DUMMY);
-+
- 	if (!CHECK_FLAG(ifp->status, ZEBRA_INTERFACE_ACTIVE)) {
- 		SET_FLAG(ifp->status, ZEBRA_INTERFACE_ACTIVE);
- 
-@@ -1646,6 +1649,7 @@
- 	case ZEBRA_IF_MACVLAN:
- 	case ZEBRA_IF_VETH:
- 	case ZEBRA_IF_BOND:
-+	case ZEBRA_IF_DUMMY:
- 		break;
- 	}
- }
-@@ -2398,6 +2402,9 @@
- 	case ZEBRA_IF_GRE:
- 		return "GRE";
- 
-+	case ZEBRA_IF_DUMMY:
-+		return "dummy";
-+
- 	default:
- 		return "Unknown";
- 	}
-Index: b/zebra/interface.h
-===================================================================
---- a/zebra/interface.h	2025-03-07 11:09:47.571424092 +0100
-+++ b/zebra/interface.h	2025-03-07 11:09:47.569424090 +0100
-@@ -39,7 +39,8 @@
- 	ZEBRA_IF_MACVLAN,   /* MAC VLAN interface*/
- 	ZEBRA_IF_VETH,      /* VETH interface*/
- 	ZEBRA_IF_BOND,	    /* Bond */
--	ZEBRA_IF_GRE,      /* GRE interface */
-+	ZEBRA_IF_GRE,       /* GRE interface */
-+	ZEBRA_IF_DUMMY,     /* Dummy interface */
- };
- 
- /* Zebra "slave" interface type */
-@@ -246,6 +247,9 @@
- #define IS_ZEBRA_IF_GRE(ifp)                                               \
- 	(((struct zebra_if *)(ifp->info))->zif_type == ZEBRA_IF_GRE)
- 
-+#define IS_ZEBRA_IF_DUMMY(ifp)                                               \
-+	(((struct zebra_if *)(ifp->info))->zif_type == ZEBRA_IF_DUMMY)
-+
- #define IS_ZEBRA_IF_BRIDGE_SLAVE(ifp)					\
- 	(((struct zebra_if *)(ifp->info))->zif_slave_type                      \
- 	 == ZEBRA_IF_SLAVE_BRIDGE)
-Index: b/zebra/zebra_nb_state.c
-===================================================================
---- a/zebra/zebra_nb_state.c	2025-03-07 11:09:47.571424092 +0100
-+++ b/zebra/zebra_nb_state.c	2025-03-07 11:09:47.569424090 +0100
-@@ -87,6 +87,9 @@
- 	case ZEBRA_IF_GRE:
- 		type = "frr-zebra:zif-gre";
- 		break;
-+	case ZEBRA_IF_DUMMY:
-+		type = "frr-zebra:zif-dummy";
-+		break;
- 	}
- 
- 	if (!type)
-
diff --git a/debian/patches/pve/0005-fabricd-add-option-to-treat-dummy-interfaces-as-loop.patch b/debian/patches/pve/0005-fabricd-add-option-to-treat-dummy-interfaces-as-loop.patch
deleted file mode 100644
index eb7e4a03dd81..000000000000
--- a/debian/patches/pve/0005-fabricd-add-option-to-treat-dummy-interfaces-as-loop.patch
+++ /dev/null
@@ -1,206 +0,0 @@
-From 99aab947f7b89b31f08ba9ccf755ff60af9005a8 Mon Sep 17 00:00:00 2001
-From: Gabriel Goller <g.goller@proxmox.com>
-Date: Tue, 25 Feb 2025 10:24:58 +0100
-Subject: [PATCH] fabricd: add option to treat dummy interfaces as loopback
- interfaces
-
-Enable dummy-interfaces to be used as router-id interfaces in openfabric
-networks. This allows multiple openfabric routers with different
-router-ids on a single node when using IP unnumbered setup (interfaces
-without IPs configured). Previously we were limited by having a single
-loopback interface, allowing only one openfabric router per node.
-
-Link: https://github.com/FRRouting/frr/pull/18242
-Signed-off-by: Gabriel Goller <g.goller@proxmox.com>
----
- doc/manpages/frr-fabricd.rst |  4 ++++
- doc/user/fabricd.rst         | 17 ++++++++++++-----
- isisd/isis_circuit.c         |  9 +++++----
- isisd/isis_main.c            | 16 +++++++++++++---
- isisd/isisd.c                | 19 +++++++++++++++++++
- isisd/isisd.h                |  6 +++++-
- 6 files changed, 58 insertions(+), 13 deletions(-)
-
-Index: b/doc/manpages/frr-fabricd.rst
-===================================================================
---- a/doc/manpages/frr-fabricd.rst	2025-03-07 11:09:47.700424235 +0100
-+++ b/doc/manpages/frr-fabricd.rst	2025-03-07 11:09:47.698424233 +0100
-@@ -21,6 +21,10 @@
- 
- .. include:: common-options.rst
- 
-+.. option:: --dummy_as_loopback
-+
-+   Treat dummy interfaces as loopback interfaces.
-+
- FILES
- =====
- 
-Index: b/doc/user/fabricd.rst
-===================================================================
---- a/doc/user/fabricd.rst	2025-03-07 11:09:47.700424235 +0100
-+++ b/doc/user/fabricd.rst	2025-03-07 11:09:47.698424233 +0100
-@@ -15,11 +15,18 @@
- Configuring fabricd
- ===================
- 
--There are no *fabricd* specific options. Common options can be specified
--(:ref:`common-invocation-options`) to *fabricd*. *fabricd* needs to acquire
--interface information from *zebra* in order to function. Therefore *zebra* must
--be running before invoking *fabricd*. Also, if *zebra* is restarted then *fabricd*
--must be too.
-+*fabricd* accepts all common invocations (:ref:`common-invocation-options`) and
-+the following specific options.
-+
-+.. program:: fabricd
-+
-+.. option:: --dummy_as_loopback
-+
-+   Treat dummy interfaces as loopback interfaces.
-+
-+*fabricd* needs to acquire interface information from *zebra* in order to
-+function. Therefore *zebra* must be running before invoking *fabricd*. Also, if
-+*zebra* is restarted then *fabricd* must be too.
- 
- Like other daemons, *fabricd* configuration is done in an OpenFabric specific
- configuration file :file:`fabricd.conf`.
-Index: b/isisd/isis_circuit.c
-===================================================================
---- a/isisd/isis_circuit.c	2025-03-07 11:09:47.700424235 +0100
-+++ b/isisd/isis_circuit.c	2025-03-07 11:09:47.698424233 +0100
-@@ -491,16 +491,17 @@
- {
- 	struct connected *conn;
- 
--	if (if_is_broadcast(ifp)) {
-+	if (if_is_loopback(ifp) || (isis_option_check(ISIS_OPT_DUMMY_AS_LOOPBACK) &&
-+				    CHECK_FLAG(ifp->status, ZEBRA_INTERFACE_DUMMY))) {
-+		circuit->circ_type = CIRCUIT_T_LOOPBACK;
-+		circuit->is_passive = 1;
-+	} else if (if_is_broadcast(ifp)) {
- 		if (fabricd || circuit->circ_type_config == CIRCUIT_T_P2P)
- 			circuit->circ_type = CIRCUIT_T_P2P;
- 		else
- 			circuit->circ_type = CIRCUIT_T_BROADCAST;
- 	} else if (if_is_pointopoint(ifp)) {
- 		circuit->circ_type = CIRCUIT_T_P2P;
--	} else if (if_is_loopback(ifp)) {
--		circuit->circ_type = CIRCUIT_T_LOOPBACK;
--		circuit->is_passive = 1;
- 	} else {
- 		/* It's normal in case of loopback etc. */
- 		if (IS_DEBUG_EVENTS)
-Index: b/isisd/isis_main.c
-===================================================================
---- a/isisd/isis_main.c	2025-03-07 11:09:47.700424235 +0100
-+++ b/isisd/isis_main.c	2025-03-07 11:09:47.698424233 +0100
-@@ -80,9 +80,12 @@
- 	.cap_num_p = array_size(_caps_p),
- 	.cap_num_i = 0};
- 
-+#define OPTION_DUMMY_AS_LOOPBACK 2000
-+
- /* isisd options */
- static const struct option longopts[] = {
- 	{"int_num", required_argument, NULL, 'I'},
-+	{"dummy_as_loopback", no_argument, NULL, OPTION_DUMMY_AS_LOOPBACK},
- 	{0}};
- 
- /* Master of threads. */
-@@ -269,15 +272,16 @@
- {
- 	int opt;
- 	int instance = 1;
-+	bool dummy_as_loopback = false;
- 
- #ifdef FABRICD
- 	frr_preinit(&fabricd_di, argc, argv);
- #else
- 	frr_preinit(&isisd_di, argc, argv);
- #endif
--	frr_opt_add(
--		"I:", longopts,
--		"  -I, --int_num      Set instance number (label-manager)\n");
-+	frr_opt_add("I:", longopts,
-+		"  -I, --int_num		Set instance number (label-manager).\n"
-+		"      --dummy_as_loopback      Treat dummy interfaces like loopback interfaces.\n");
- 
- 	/* Command line argument treatment. */
- 	while (1) {
-@@ -295,6 +299,9 @@
- 				zlog_err("Instance %i out of range (1..%u)",
- 					 instance, (unsigned short)-1);
- 			break;
-+		case OPTION_DUMMY_AS_LOOPBACK:
-+			dummy_as_loopback = true;
-+			break;
- 		default:
- 			frr_help_exit(1);
- 		}
-@@ -311,6 +318,9 @@
- 	/* thread master */
- 	isis_master_init(frr_init());
- 	master = im->master;
-+	if (dummy_as_loopback)
-+		isis_option_set(ISIS_OPT_DUMMY_AS_LOOPBACK);
-+
- 	/*
- 	 *  initializations
- 	 */
-Index: b/isisd/isisd.c
-===================================================================
---- a/isisd/isisd.c	2025-03-07 11:09:47.700424235 +0100
-+++ b/isisd/isisd.c	2025-03-07 11:09:47.698424233 +0100
-@@ -116,6 +116,25 @@
- int clear_isis_neighbor_common(struct vty *, const char *id,
- 			       const char *vrf_name, bool all_vrf);
- 
-+
-+/* ISIS global flag manipulation.  */
-+int isis_option_set(int flag)
-+{
-+	switch (flag) {
-+	case ISIS_OPT_DUMMY_AS_LOOPBACK:
-+		SET_FLAG(im->options, flag);
-+		break;
-+	default:
-+		return -1;
-+	}
-+	return 0;
-+}
-+
-+int isis_option_check(int flag)
-+{
-+	return CHECK_FLAG(im->options, flag);
-+}
-+
- /* Link ISIS instance to VRF. */
- void isis_vrf_link(struct isis *isis, struct vrf *vrf)
- {
-Index: b/isisd/isisd.h
-===================================================================
---- a/isisd/isisd.h	2025-03-07 11:09:47.700424235 +0100
-+++ b/isisd/isisd.h	2025-03-07 11:09:47.698424233 +0100
-@@ -74,9 +74,11 @@
- 	struct list *isis;
- 	/* ISIS thread master. */
- 	struct event_loop *master;
-+	/* Various global options */
- 	uint8_t options;
-+#define F_ISIS_UNIT_TEST	    (1 << 0)
-+#define ISIS_OPT_DUMMY_AS_LOOPBACK (1 << 1)
- };
--#define F_ISIS_UNIT_TEST 0x01
- 
- #define ISIS_DEFAULT_MAX_AREA_ADDRESSES 3
- 
-@@ -269,6 +271,8 @@
- void isis_terminate(void);
- void isis_master_init(struct event_loop *master);
- void isis_master_terminate(void);
-+int isis_option_set(int flag);
-+int isis_option_check(int flag);
- void isis_vrf_link(struct isis *isis, struct vrf *vrf);
- void isis_vrf_unlink(struct isis *isis, struct vrf *vrf);
- struct isis *isis_lookup_by_vrfid(vrf_id_t vrf_id);
-
diff --git a/debian/patches/pve/0007-systemd-add-dependancy-to-networking.service.patch b/debian/patches/pve/0005-systemd-add-dependancy-to-networking.service.patch
similarity index 100%
rename from debian/patches/pve/0007-systemd-add-dependancy-to-networking.service.patch
rename to debian/patches/pve/0005-systemd-add-dependancy-to-networking.service.patch
diff --git a/debian/patches/pve/0007-tools-fix-daemon-starting-order-for-debian-packages.patch b/debian/patches/pve/0006-tools-fix-daemon-starting-order-for-debian-packages.patch
similarity index 100%
rename from debian/patches/pve/0007-tools-fix-daemon-starting-order-for-debian-packages.patch
rename to debian/patches/pve/0006-tools-fix-daemon-starting-order-for-debian-packages.patch
diff --git a/debian/patches/series b/debian/patches/series
index f72dce4b7ae6..985909c64c45 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,8 +1,6 @@
 pve/0001-enable-bgp-bfd-daemons.patch
 pve/0002-bgpd-add-an-option-for-RT-auto-derivation-to-force-A.patch
 pve/0003-tests-add-bgp-evpn-autort-test.patch
-pve/0004-zebra-add-ZEBRA_IF_DUMMY-flag-for-dummy-interfaces.patch
-pve/0005-fabricd-add-option-to-treat-dummy-interfaces-as-loop.patch
-pve/0006-fabricd-enable-dummy_as_loopback-option-per-default.patch
-pve/0007-tools-fix-daemon-starting-order-for-debian-packages.patch
-pve/0007-systemd-add-dependancy-to-networking.service.patch
+pve/0004-fabricd-enable-dummy_as_loopback-option-per-default.patch
+pve/0005-systemd-add-dependancy-to-networking.service.patch
+pve/0006-tools-fix-daemon-starting-order-for-debian-packages.patch
diff --git a/frr b/frr
index 35e662efa7cc..88f5c06cbc1c 160000
--- a/frr
+++ b/frr
@@ -1 +1 @@
-Subproject commit 35e662efa7cc9ef3e97a253368950cc1a58f3bc1
+Subproject commit 88f5c06cbc1cc4d62e1cba3e7791f5cea4179ba5
-- 
2.47.3



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel


  reply	other threads:[~2025-11-21 14:14 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-11-21 14:13 [pve-devel] [PATCH frr 0/2] Bump FRR to 10.4.1 Gabriel Goller
2025-11-21 14:13 ` Gabriel Goller [this message]
2025-11-21 14:13 ` [pve-devel] [PATCH frr 2/2] d/changelog: bump package version Gabriel Goller
2025-11-25 16:53 ` [pve-devel] [PATCH frr 0/2] Bump FRR to 10.4.1 DERUMIER, Alexandre via pve-devel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20251121141446.349501-2-g.goller@proxmox.com \
    --to=g.goller@proxmox.com \
    --cc=pve-devel@lists.proxmox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal