all lists on 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: 7+ 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
2025-11-26 12:59   ` Gabriel Goller
2025-11-26 16:00     ` Thomas Lamprecht
2025-11-26 17:57 ` [pve-devel] applied: " Thomas Lamprecht

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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal