Skip to content

Commit

Permalink
[FRR]Upgrade FRR to 8.5.4
Browse files Browse the repository at this point in the history
  • Loading branch information
dgsudharsan committed Feb 22, 2024
1 parent 4b8f172 commit 6a63a39
Show file tree
Hide file tree
Showing 21 changed files with 62 additions and 1,026 deletions.
4 changes: 2 additions & 2 deletions rules/frr.mk
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# FRRouting (frr) package

FRR_VERSION = 8.5.1
FRR_VERSION = 8.5.4
FRR_SUBVERSION = 0
FRR_BRANCH = frr/8.5
FRR_TAG = frr-8.5.1
FRR_TAG = frr-8.5.4
export FRR_VERSION FRR_SUBVERSION FRR_BRANCH FRR_TAG


Expand Down
2 changes: 1 addition & 1 deletion src/sonic-frr/frr
Submodule frr updated 90 files
+1 −1 bfdd/bfd_packet.c
+0 −2 bfdd/bfdd_nb.c
+0 −3 bfdd/bfdd_nb.h
+0 −38 bfdd/bfdd_nb_config.c
+7 −3 bgpd/bgp_aspath.c
+93 −112 bgpd/bgp_attr.c
+1 −1 bgpd/bgp_attr.h
+1 −0 bgpd/bgp_conditional_adv.c
+7 −3 bgpd/bgp_damp.c
+3 −2 bgpd/bgp_debug.c
+4 −1 bgpd/bgp_evpn.c
+8 −1 bgpd/bgp_evpn_vty.c
+12 −0 bgpd/bgp_fsm.c
+2 −2 bgpd/bgp_mplsvpn.c
+1 −0 bgpd/bgp_mplsvpn.h
+9 −7 bgpd/bgp_packet.c
+44 −20 bgpd/bgp_route.c
+3 −2 bgpd/bgp_route.h
+2 −2 bgpd/bgp_routemap.c
+6 −3 bgpd/bgp_updgrp_adv.c
+15 −9 bgpd/bgp_vty.c
+97 −25 bgpd/bgpd.c
+27 −0 bgpd/rfapi/rfapi.c
+28 −25 bgpd/rfapi/rfapi_import.c
+19 −0 bgpd/rfapi/rfapi_rib.c
+1 −0 bgpd/rfapi/rfapi_vty.c
+1 −1 configure.ac
+18 −0 debian/changelog
+7 −0 doc/user/bgp.rst
+1 −1 doc/user/pbr.rst
+0 −2 doc/user/zebra.rst
+2 −3 eigrpd/eigrp_interface.c
+6 −2 lib/command.c
+7 −6 lib/link_state.c
+1 −0 lib/nexthop.c
+6 −0 lib/nexthop.h
+4 −2 lib/prefix.c
+67 −57 lib/routemap.c
+2 −18 lib/thread.c
+22 −6 ospf6d/ospf6_message.c
+3 −1 ospf6d/ospf6_neighbor.c
+1 −0 ospf6d/ospf6_neighbor.h
+21 −5 ospfd/ospf_apiserver.c
+17 −4 ospfd/ospf_interface.c
+6 −0 ospfd/ospf_ldp_sync.c
+2 −1 ospfd/ospf_lsa.c
+11 −5 ospfd/ospf_opaque.c
+1 −1 ospfd/ospf_packet.c
+7 −5 ospfd/ospf_vty.c
+26 −22 ospfd/ospfd.c
+6 −1 pbrd/pbr_vty.c
+5 −3 pimd/pim_nb_config.c
+4 −2 pimd/pim_neighbor.c
+25 −0 pimd/pim_oil.c
+1 −0 pimd/pim_oil.h
+2 −2 pimd/pim_pim.c
+9 −1 pimd/pim_register.c
+112 −1 redhat/frr.spec.in
+0 −8 ripd/ripd.c
+0 −7 ripngd/ripngd.c
+2 −1 tests/topotests/bgp_aigp/r2/bgpd.conf
+2 −1 tests/topotests/bgp_aigp/r3/bgpd.conf
+3 −2 tests/topotests/bgp_aigp/r4/bgpd.conf
+3 −2 tests/topotests/bgp_aigp/r5/bgpd.conf
+1 −1 tests/topotests/bgp_aigp/r6/bgpd.conf
+1 −1 tests/topotests/bgp_aigp/r7/bgpd.conf
+22 −20 tests/topotests/bgp_aigp/test_bgp_aigp.py
+0 −0 tests/topotests/bgp_conditional_advertisement_static_route/__init__.py
+10 −0 tests/topotests/bgp_conditional_advertisement_static_route/r1/frr.conf
+39 −0 tests/topotests/bgp_conditional_advertisement_static_route/r2/frr.conf
+19 −0 tests/topotests/bgp_conditional_advertisement_static_route/r3/frr.conf
+118 −0 tests/topotests/bgp_conditional_advertisement_static_route/test_bgp_conditional_advertisement_static_route.py
+194 −1 tests/topotests/ospfapi/test_ospf_clientapi.py
+2 −0 tools/etc/frr/support_bundle_commands.conf
+7 −2 tools/frr-reload.py
+4 −4 tools/frrcommon.sh.in
+59 −0 vtysh/vtysh.c
+4 −8 vtysh/vtysh_config.c
+9 −6 vtysh/vtysh_user.c
+2 −1 zebra/dplane_fpm_nl.c
+1 −3 zebra/interface.c
+9 −2 zebra/rib.h
+22 −27 zebra/rt_netlink.c
+6 −2 zebra/tc_netlink.c
+13 −18 zebra/zapi_msg.c
+36 −3 zebra/zebra_dplane.c
+15 −6 zebra/zebra_evpn_mac.c
+33 −22 zebra/zebra_nhg.c
+70 −25 zebra/zebra_rib.c
+3 −3 zebra/zebra_routemap.c
49 changes: 25 additions & 24 deletions src/sonic-frr/patch/0005-Add-support-of-bgp-l3vni-evpn.patch
Original file line number Diff line number Diff line change
@@ -1,28 +1,29 @@
From f5f0018266c98ad96cdbe69ae60d501de21e5600 Mon Sep 17 00:00:00 2001
From a0846dcf6f496bcfb51dd11c03d1a6c666d4020a Mon Sep 17 00:00:00 2001
From: Stepan Blyschak <[email protected]>
Date: Thu, 20 Oct 2022 13:19:31 +0000
Subject: [PATCH] From 369bbb4d62aa47d5a6d5157ca6ea819c4cb80f15 Mon Sep 17
00:00:00 2001 Subject: [PATCH 07/13] Added support of L3VNI EVPN
Subject: [PATCH] From f5f0018266c98ad96cdbe69ae60d501de21e5600 Mon Sep 17
00:00:00 2001 Subject: [PATCH] From 369bbb4d62aa47d5a6d5157ca6ea819c4cb80f15
Mon Sep 17 00:00:00 2001 Subject: [PATCH 07/13] Added support of L3VNI EVPN

This is temp patch till Prefix to ARP indirection is add in neighorch

Signed-off-by: Kishore Kunal <[email protected]>
Signed-off-by: Stepan Blyschak <[email protected]>

diff --git a/lib/nexthop.c b/lib/nexthop.c
index 7ebc4fefb..2f7bb0e7b 100644
index c03d37487a..52679388fd 100644
--- a/lib/nexthop.c
+++ b/lib/nexthop.c
@@ -813,6 +813,7 @@ void nexthop_copy_no_recurse(struct nexthop *copy,
memcpy(&copy->src, &nexthop->src, sizeof(nexthop->src));
@@ -814,6 +814,7 @@ void nexthop_copy_no_recurse(struct nexthop *copy,
memcpy(&copy->rmap_src, &nexthop->rmap_src, sizeof(nexthop->rmap_src));
memcpy(&copy->rmac, &nexthop->rmac, sizeof(nexthop->rmac));
copy->rparent = rparent;
+ memcpy(&copy->nh_encap.encap_data.rmac, &nexthop->nh_encap.encap_data.rmac, ETH_ALEN);
if (nexthop->nh_label)
nexthop_add_labels(copy, nexthop->nh_label_type,
nexthop->nh_label->num_labels,
diff --git a/lib/nexthop.h b/lib/nexthop.h
index f1309aa52..7b4bbbafd 100644
index f35cc5e4e2..f6fb6ec2b7 100644
--- a/lib/nexthop.h
+++ b/lib/nexthop.h
@@ -66,6 +66,11 @@ enum nh_encap_type {
Expand All @@ -45,9 +46,9 @@ index f1309aa52..7b4bbbafd 100644
+ struct vxlan_nh_encap encap_data;
} nh_encap;

/* SR-TE color used for matching SR-TE policies */
/* EVPN router's MAC.
diff --git a/zebra/rt_netlink.c b/zebra/rt_netlink.c
index 79d79d74b..325199eff 100644
index 79d79d74be..325199eff9 100644
--- a/zebra/rt_netlink.c
+++ b/zebra/rt_netlink.c
@@ -1969,6 +1969,7 @@ static int netlink_route_nexthop_encap(struct nlmsghdr *n, size_t nlen,
Expand Down Expand Up @@ -82,32 +83,32 @@ index 79d79d74b..325199eff 100644
break;
}
diff --git a/zebra/zapi_msg.c b/zebra/zapi_msg.c
index c0945eae2..157c33ced 100644
index 68bb9783f8..c478f83795 100644
--- a/zebra/zapi_msg.c
+++ b/zebra/zapi_msg.c
@@ -1605,6 +1605,8 @@ static struct nexthop *nexthop_from_zapi(const struct zapi_nexthop *api_nh,
vtep_ip.ipa_type = IPADDR_V4;
memcpy(&(vtep_ip.ipaddr_v4), &(api_nh->gate.ipv4),
sizeof(struct in_addr));
@@ -1606,6 +1606,8 @@ static struct nexthop *nexthop_from_zapi(const struct zapi_nexthop *api_nh,
* the nexthop and associated MAC need to be installed.
*/
if (CHECK_FLAG(api_nh->flags, ZAPI_NEXTHOP_FLAG_EVPN)) {
+ memcpy(&(nexthop->nh_encap.encap_data.rmac),
+ &api_nh->rmac, ETH_ALEN);
zebra_rib_queue_evpn_route_add(
api_nh->vrf_id, &api_nh->rmac, &vtep_ip, p);
SET_FLAG(nexthop->flags, NEXTHOP_FLAG_EVPN);
@@ -1639,6 +1641,8 @@ static struct nexthop *nexthop_from_zapi(const struct zapi_nexthop *api_nh,
vtep_ip.ipa_type = IPADDR_V6;
memcpy(&vtep_ip.ipaddr_v6, &(api_nh->gate.ipv6),
sizeof(struct in6_addr));
nexthop->rmac = api_nh->rmac;
}
@@ -1635,6 +1637,8 @@ static struct nexthop *nexthop_from_zapi(const struct zapi_nexthop *api_nh,
* the nexthop and associated MAC need to be installed.
*/
if (CHECK_FLAG(api_nh->flags, ZAPI_NEXTHOP_FLAG_EVPN)) {
+ memcpy(&(nexthop->nh_encap.encap_data.rmac),
+ &api_nh->rmac, ETH_ALEN);
zebra_rib_queue_evpn_route_add(
api_nh->vrf_id, &api_nh->rmac, &vtep_ip, p);
SET_FLAG(nexthop->flags, NEXTHOP_FLAG_EVPN);
nexthop->rmac = api_nh->rmac;
}
diff --git a/zebra/zebra_dplane.c b/zebra/zebra_dplane.c
index f6f436f39..c8511bd28 100644
index 639f3cd918..6f8d37e701 100644
--- a/zebra/zebra_dplane.c
+++ b/zebra/zebra_dplane.c
@@ -2917,7 +2917,7 @@ int dplane_ctx_route_init(struct zebra_dplane_ctx *ctx, enum dplane_op_e op,
@@ -2934,7 +2934,7 @@ int dplane_ctx_route_init(struct zebra_dplane_ctx *ctx, enum dplane_op_e op,
zl3vni = zl3vni_from_vrf(nexthop->vrf_id);
if (zl3vni && is_l3vni_oper_up(zl3vni)) {
nexthop->nh_encap_type = NET_VXLAN;
Expand Down

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,39 +1,45 @@
From 41b759505afb261211f40e386a30f6cf3870a094 Mon Sep 17 00:00:00 2001
From: dgsudharsan <[email protected]>
Date: Tue, 21 Nov 2023 17:55:24 +0000
Subject: [PATCH] zebra: Fix non-notification of better admin won If there
happens to be a entry in the zebra rib that has a lower admin distance then a
newly received re, zebra would not notify the upper level protocol about this
happening. Imagine a case where there is a connected route for say a /32 and
bgp receives a route from a peer that is the same route as the connected.
Since BGP has no network statement and perceives the route as being `good`
bgp will install the route into zebra. Zebra will look at the new bgp re and
correctly identify that the re is not something that it will use and do
nothing. This change notices this and sends up a BETTER_ADMIN_WON route
notification.
From 9513d3a158e493623a6bc1e5e3e44b6ed277ac28 Mon Sep 17 00:00:00 2001
From: Donald Sharp <[email protected]>
Date: Tue, 14 Nov 2023 10:15:42 -0500
Subject: [PATCH] zebra: Fix non-notification of better admin won

If there happens to be a entry in the zebra rib
that has a lower admin distance then a newly received
re, zebra would not notify the upper level protocol
about this happening. Imagine a case where there
is a connected route for say a /32 and bgp receives
a route from a peer that is the same route as the
connected. Since BGP has no network statement and
perceives the route as being `good` bgp will install
the route into zebra. Zebra will look at the new
bgp re and correctly identify that the re is not
something that it will use and do nothing. This
change notices this and sends up a BETTER_ADMIN_WON
route notification.

Signed-off-by: Donald Sharp <[email protected]>

diff --git a/zebra/zebra_rib.c b/zebra/zebra_rib.c
index 039c44cc09..f2f20bcf7b 100644
index 2c3bb28d6..d37fe98f8 100644
--- a/zebra/zebra_rib.c
+++ b/zebra/zebra_rib.c
@@ -1209,6 +1209,7 @@ static void rib_process(struct route_node *rn)
@@ -1227,6 +1227,7 @@ static void rib_process(struct route_node *rn)
rib_dest_t *dest;
struct zebra_vrf *zvrf = NULL;
struct vrf *vrf;
+ struct route_entry *proto_re_changed = NULL;

vrf_id_t vrf_id = VRF_UNKNOWN;

@@ -1278,6 +1279,7 @@ static void rib_process(struct route_node *rn)
@@ -1296,6 +1297,7 @@ static void rib_process(struct route_node *rn)
* skip it.
*/
if (CHECK_FLAG(re->status, ROUTE_ENTRY_CHANGED)) {
+ proto_re_changed = re;
if (!nexthop_active_update(rn, re)) {
const struct prefix *p;
struct rib_table_info *info;
@@ -1363,6 +1365,8 @@ static void rib_process(struct route_node *rn)
@@ -1381,6 +1383,8 @@ static void rib_process(struct route_node *rn)
* new_selected --- RE entry that is newly SELECTED
* old_fib --- RE entry currently in kernel FIB
* new_fib --- RE entry that is newly to be in kernel FIB
Expand All @@ -42,7 +48,7 @@ index 039c44cc09..f2f20bcf7b 100644
*
* new_selected will get SELECTED flag, and is going to be redistributed
* the zclients. new_fib (which can be new_selected) will be installed
@@ -1417,6 +1421,22 @@ static void rib_process(struct route_node *rn)
@@ -1435,6 +1439,22 @@ static void rib_process(struct route_node *rn)
}
}

Expand Down

This file was deleted.

This file was deleted.

Loading

0 comments on commit 6a63a39

Please sign in to comment.