From 9db41267a7560ab6b724f19ae9f3cfe4ff3f4ecb Mon Sep 17 00:00:00 2001 From: Michal Ruprich Date: Fri, 22 Nov 2024 10:40:19 +0100 Subject: [PATCH] New version 10.2 --- .gitignore | 1 + 0006-noprefixroute-network-manager.patch | 167 ----------------------- frr.spec | 8 +- sources | 2 +- 4 files changed, 7 insertions(+), 171 deletions(-) delete mode 100644 0006-noprefixroute-network-manager.patch diff --git a/.gitignore b/.gitignore index a97509c..114154f 100644 --- a/.gitignore +++ b/.gitignore @@ -21,3 +21,4 @@ /frr-9.1.tar.gz /frr-10.0.1.tar.gz /frr-10.1.tar.gz +/frr-10.2.tar.gz diff --git a/0006-noprefixroute-network-manager.patch b/0006-noprefixroute-network-manager.patch deleted file mode 100644 index a1c2c79..0000000 --- a/0006-noprefixroute-network-manager.patch +++ /dev/null @@ -1,167 +0,0 @@ ---- b/tests/topotests/zebra_multiple_connected/test_zebra_multiple_connected.py -+++ a/tests/topotests/zebra_multiple_connected/test_zebra_multiple_connected.py -@@ -144,23 +144,6 @@ - assert result is None, "Kernel route is missing from zebra" - - --def test_zebra_noprefix_connected(): -- "Test that a noprefixroute created does not create a connected route" -- -- tgen = get_topogen() -- if tgen.routers_have_failure(): -- pytest.skip(tgen.errors) -- -- router = tgen.gears["r1"] -- router.run("ip addr add 192.168.44.1/24 dev r1-eth1 noprefixroute") -- expected = "% Network not in table" -- test_func = partial( -- topotest.router_output_cmp, router, "show ip route 192.168.44.0/24", expected -- ) -- result, diff = topotest.run_and_expect(test_func, "", count=20, wait=1) -- assert result, "Connected Route should not have been added" -- -- - if __name__ == "__main__": - args = ["-s"] + sys.argv[1:] - sys.exit(pytest.main(args)) ---- b/zebra/if_netlink.c -+++ a/zebra/if_netlink.c -@@ -1423,9 +1423,6 @@ - if (kernel_flags & IFA_F_SECONDARY) - dplane_ctx_intf_set_secondary(ctx); - -- if (kernel_flags & IFA_F_NOPREFIXROUTE) -- dplane_ctx_intf_set_noprefixroute(ctx); -- - /* Label */ - if (tb[IFA_LABEL]) { - label = (char *)RTA_DATA(tb[IFA_LABEL]); ---- b/zebra/zebra_dplane.c -+++ a/zebra/zebra_dplane.c -@@ -230,7 +230,6 @@ - #define DPLANE_INTF_BROADCAST (1 << 2) - #define DPLANE_INTF_HAS_DEST DPLANE_INTF_CONNECTED - #define DPLANE_INTF_HAS_LABEL (1 << 4) --#define DPLANE_INTF_NOPREFIXROUTE (1 << 5) - - /* Interface address/prefix */ - struct prefix prefix; -@@ -2542,13 +2541,6 @@ - return (ctx->u.intf.flags & DPLANE_INTF_CONNECTED); - } - --bool dplane_ctx_intf_is_noprefixroute(const struct zebra_dplane_ctx *ctx) --{ -- DPLANE_CTX_VALID(ctx); -- -- return (ctx->u.intf.flags & DPLANE_INTF_NOPREFIXROUTE); --} -- - bool dplane_ctx_intf_is_secondary(const struct zebra_dplane_ctx *ctx) - { - DPLANE_CTX_VALID(ctx); -@@ -2577,13 +2569,6 @@ - ctx->u.intf.flags |= DPLANE_INTF_SECONDARY; - } - --void dplane_ctx_intf_set_noprefixroute(struct zebra_dplane_ctx *ctx) --{ -- DPLANE_CTX_VALID(ctx); -- -- ctx->u.intf.flags |= DPLANE_INTF_NOPREFIXROUTE; --} -- - void dplane_ctx_intf_set_broadcast(struct zebra_dplane_ctx *ctx) - { - DPLANE_CTX_VALID(ctx); ---- b/zebra/zebra_dplane.h -+++ a/zebra/zebra_dplane.h -@@ -658,8 +658,6 @@ - void dplane_ctx_intf_set_connected(struct zebra_dplane_ctx *ctx); - bool dplane_ctx_intf_is_secondary(const struct zebra_dplane_ctx *ctx); - void dplane_ctx_intf_set_secondary(struct zebra_dplane_ctx *ctx); --bool dplane_ctx_intf_is_noprefixroute(const struct zebra_dplane_ctx *ctx); --void dplane_ctx_intf_set_noprefixroute(struct zebra_dplane_ctx *ctx); - bool dplane_ctx_intf_is_broadcast(const struct zebra_dplane_ctx *ctx); - void dplane_ctx_intf_set_broadcast(struct zebra_dplane_ctx *ctx); - const struct prefix *dplane_ctx_get_intf_addr( ---- b/lib/if.h -+++ a/lib/if.h -@@ -434,8 +434,6 @@ - #define ZEBRA_IFA_SECONDARY (1 << 0) - #define ZEBRA_IFA_PEER (1 << 1) - #define ZEBRA_IFA_UNNUMBERED (1 << 2) --#define ZEBRA_IFA_NOPREFIXROUTE (1 << 3) -- - /* N.B. the ZEBRA_IFA_PEER flag should be set if and only if - a peer address has been configured. If this flag is set, - the destination field must contain the peer address. ---- b/zebra/connected.c -+++ a/zebra/connected.c -@@ -282,15 +282,13 @@ - return; - } - -+ rib_add(afi, SAFI_UNICAST, zvrf->vrf->vrf_id, ZEBRA_ROUTE_CONNECT, 0, -+ flags, &p, NULL, &nh, 0, zvrf->table_id, metric, 0, 0, 0, -+ false); -- if (!CHECK_FLAG(ifc->flags, ZEBRA_IFA_NOPREFIXROUTE)) { -- rib_add(afi, SAFI_UNICAST, zvrf->vrf->vrf_id, -- ZEBRA_ROUTE_CONNECT, 0, flags, &p, NULL, &nh, 0, -- zvrf->table_id, metric, 0, 0, 0, false); - -+ rib_add(afi, SAFI_MULTICAST, zvrf->vrf->vrf_id, ZEBRA_ROUTE_CONNECT, 0, -+ flags, &p, NULL, &nh, 0, zvrf->table_id, metric, 0, 0, 0, -+ false); -- rib_add(afi, SAFI_MULTICAST, zvrf->vrf->vrf_id, -- ZEBRA_ROUTE_CONNECT, 0, flags, &p, NULL, &nh, 0, -- zvrf->table_id, metric, 0, 0, 0, false); -- } - - if (install_local) { - rib_add(afi, SAFI_UNICAST, zvrf->vrf->vrf_id, ZEBRA_ROUTE_LOCAL, -@@ -483,15 +481,11 @@ - * Same logic as for connected_up(): push the changes into the - * head. - */ -+ rib_delete(afi, SAFI_UNICAST, zvrf->vrf->vrf_id, ZEBRA_ROUTE_CONNECT, 0, -+ 0, &p, NULL, &nh, 0, zvrf->table_id, 0, 0, false); -- if (!CHECK_FLAG(ifc->flags, ZEBRA_IFA_NOPREFIXROUTE)) { -- rib_delete(afi, SAFI_UNICAST, zvrf->vrf->vrf_id, -- ZEBRA_ROUTE_CONNECT, 0, 0, &p, NULL, &nh, 0, -- zvrf->table_id, 0, 0, false); - -+ rib_delete(afi, SAFI_MULTICAST, zvrf->vrf->vrf_id, ZEBRA_ROUTE_CONNECT, -+ 0, 0, &p, NULL, &nh, 0, zvrf->table_id, 0, 0, false); -- rib_delete(afi, SAFI_MULTICAST, zvrf->vrf->vrf_id, -- ZEBRA_ROUTE_CONNECT, 0, 0, &p, NULL, &nh, 0, -- zvrf->table_id, 0, 0, false); -- } - - if (remove_local) { - rib_delete(afi, SAFI_UNICAST, zvrf->vrf->vrf_id, ---- b/zebra/interface.c -+++ a/zebra/interface.c -@@ -1317,9 +1317,6 @@ - if (dplane_ctx_intf_is_secondary(ctx)) - SET_FLAG(flags, ZEBRA_IFA_SECONDARY); - -- if (dplane_ctx_intf_is_noprefixroute(ctx)) -- SET_FLAG(flags, ZEBRA_IFA_NOPREFIXROUTE); -- - /* Label? */ - if (dplane_ctx_intf_has_label(ctx)) - label = dplane_ctx_get_intf_label(ctx); -@@ -2337,12 +2334,6 @@ - else if (CHECK_FLAG(connected->flags, ZEBRA_IFA_SECONDARY)) - vty_out(vty, " secondary"); - -- if (json) -- json_object_boolean_add(json_addr, "noPrefixRoute", -- CHECK_FLAG(connected->flags, ZEBRA_IFA_NOPREFIXROUTE)); -- else if (CHECK_FLAG(connected->flags, ZEBRA_IFA_NOPREFIXROUTE)) -- vty_out(vty, " noprefixroute"); -- - if (json) - json_object_boolean_add( - json_addr, "unnumbered", diff --git a/frr.spec b/frr.spec index 5330d76..0f91816 100644 --- a/frr.spec +++ b/frr.spec @@ -8,8 +8,8 @@ %bcond selinux 1 Name: frr -Version: 10.1 -Release: 4%{?dist} +Version: 10.2 +Release: 1%{?dist} Summary: Routing daemon License: GPL-2.0-or-later AND ISC AND LGPL-2.0-or-later AND BSD-2-Clause AND BSD-3-Clause AND (GPL-2.0-or-later OR ISC) AND MIT URL: http://www.frrouting.org @@ -26,7 +26,6 @@ Patch0002: 0002-enable-openssl.patch Patch0003: 0003-disable-eigrp-crypto.patch Patch0004: 0004-fips-mode.patch Patch0005: 0005-remove-grpc-test.patch -Patch0006: 0006-noprefixroute-network-manager.patch BuildRequires: autoconf BuildRequires: automake @@ -277,6 +276,9 @@ rm tests/lib/*grpc* %endif %changelog +* Fri Nov 22 2024 Michal Ruprich - 10.2-1 +- New version 10.2 + * Tue Sep 10 2024 Michal Ruprich - 10.1-4 - Resolves: #2311119 - Multiple AVCs for accessing lib_t in FRR-10.1 - Resolves: #2311120 - AVCs for using a netlink socket in FRR diff --git a/sources b/sources index 0cd4e6a..6dc978d 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (frr-10.1.tar.gz) = 7484238a502ab12f178e4a210e6e4a33d0ce53edbb49b127fdc3167e31dd61c1122c1ef2d30e4bcb83b7f520b37fb9ad73e2a6a16790b608b1adf2e23b556445 +SHA512 (frr-10.2.tar.gz) = 40a0e1f1a7f2cc137aac6e838b2f865b93fdc1cd6bd0f6c5b15b4507cbff87cb60092682e45aca68633cb053fb2ce663386edb78e5d3c5f890f4666e871ab8c5 SHA512 (remove-babeld-ldpd.sh) = a5bf67a3722cb20d43cef1dac28f839db68df73a1b7d34d8438e4f9366da3b67d85c1f44281f93434e8dd8ebcb2d3dc258b77eaa5627475b7395d207f020839d