From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id 0F8491FF16B for ; Fri, 21 Nov 2025 15:14:53 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 8BC7A22D5A; Fri, 21 Nov 2025 15:14:56 +0100 (CET) From: Gabriel Goller To: pve-devel@lists.proxmox.com Date: Fri, 21 Nov 2025 15:13:22 +0100 Message-ID: <20251121141446.349501-2-g.goller@proxmox.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20251121141446.349501-1-g.goller@proxmox.com> References: <20251121141446.349501-1-g.goller@proxmox.com> MIME-Version: 1.0 X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1763734458654 X-SPAM-LEVEL: Spam detection results: 0 AWL -0.403 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_ASCII_DIVIDERS 0.8 Email that uses ascii formatting dividers and possible spam tricks KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [proxmox.com] Subject: [pve-devel] [PATCH frr 1/2] bump frr to 10.4.1, remove obsolete patches X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox VE development discussion Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" 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 --- ...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 -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 ---- - 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 -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 ---- - 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