-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Why I did it Upgrading FRR 8.5.4 to include latest fixes. Work item tracking Microsoft ADO (number only): How I did it New patches that were added: Patch FRR Pull request Issue fixed 0024-lib-use-snmp-s-large-fd-sets-for-agentx.patch FRRouting/frr#13396 FRRouting/frr#14143 0025-bgp-community-memory-leak-fix.patch FRRouting/frr#15466 FRRouting/frr#15459 0026-bgp-fib-suppress-announce-fix.patch FRRouting/frr#15634 FRRouting/frr#15626 0027-lib-Do-not-convert-EVPN-prefixes-into-IPv4-IPv6-if-n.patch FRRouting/frr#15418 FRRouting/frr#14419 Removed patches: Patch Upstream FRR commit that is present in 8.5.4 0019-zebra-Abstract-dplane_ctx_route_init-to-init-route-w.patch FRRouting/frr@3f01977 0020-zebra-Fix-crash-when-dplane_fpm_nl-fails-to-process-.patch FRRouting/frr@fe5f624 0022-bgpd-Don-t-read-the-first-byte-of-ORF-header-if-we-a.patch FRRouting/frr@3515178 0023-bgpd-Make-sure-we-have-enough-data-to-read-two-bytes.patch FRRouting/frr@460ee93 0024-bgpd-Do-not-process-NLRIs-if-the-attribute-length-is.patch FRRouting/frr@f291f1e 0025-bgpd-Use-treat-as-withdraw-for-tunnel-encapsulation-.patch FRRouting/frr@8a4a88c 0026-zebra-Add-encap-type-when-building-packet-for-FPM.patch FRRouting/frr@f0f7b28 0028-bgpd-Check-mandatory-attributes-more-carefully-for-U.patch FRRouting/frr@21418d6 0029-bgpd-Handle-MP_REACH_NLRI-malformed-packets-with-ses.patch FRRouting/frr@30b5c2a 0030-bgpd-Treat-EOR-as-withdrawn-to-avoid-unwanted-handli.patch FRRouting/frr@01f232c 0031-bgpd-Ignore-handling-NLRIs-if-we-received-MP_UNREACH.patch FRRouting/frr@a0c4ec2 0032-zebra-Fix-fpm-multipath-encap-addition.patch FRRouting/frr@10a9a5f Realigned patches: Old Patch New patch 0005-Add-support-of-bgp-l3vni-evpn.patch 0005-Add-support-of-bgp-l3vni-evpn.patch 0021-zebra-remove-duplicated-nexthops-when-sending-fpm-msg.patch 0019-zebra-remove-duplicated-nexthops-when-sending-fpm-msg.patch 0027-zebra-Fix-non-notification-of-better-admin-won.patch 0020-zebra-Fix-non-notification-of-better-admin-won.patch Disable-ipv6-src-address-test-in-pceplib.patch 0021-Disable-ipv6-src-address-test-in-pceplib.patch cross-compile-changes.patch 0022-cross-compile-changes.patch 0033-zebra-The-dplane_fpm_nl-return-path-leaks-memory.patch 0023-zebra-The-dplane_fpm_nl-return-path-leaks-memory.patch How to verify it Running sonic-mgmt test suite.
- Loading branch information
1 parent
c2a9a0a
commit f1bc937
Showing
25 changed files
with
803 additions
and
1,026 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Submodule frr
updated
90 files
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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(©->src, &nexthop->src, sizeof(nexthop->src)); | ||
@@ -814,6 +814,7 @@ void nexthop_copy_no_recurse(struct nexthop *copy, | ||
memcpy(©->rmap_src, &nexthop->rmap_src, sizeof(nexthop->rmap_src)); | ||
memcpy(©->rmac, &nexthop->rmac, sizeof(nexthop->rmac)); | ||
copy->rparent = rparent; | ||
+ memcpy(©->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 { | ||
|
@@ -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, | ||
|
@@ -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; | ||
|
74 changes: 0 additions & 74 deletions
74
src/sonic-frr/patch/0019-zebra-Abstract-dplane_ctx_route_init-to-init-route-w.patch
This file was deleted.
Oops, something went wrong.
File renamed without changes.
50 changes: 0 additions & 50 deletions
50
src/sonic-frr/patch/0020-zebra-Fix-crash-when-dplane_fpm_nl-fails-to-process-.patch
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | ||
|
@@ -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) | ||
} | ||
} | ||
|
||
|
File renamed without changes.
27 changes: 0 additions & 27 deletions
27
src/sonic-frr/patch/0022-bgpd-Don-t-read-the-first-byte-of-ORF-header-if-we-a.patch
This file was deleted.
Oops, something went wrong.
File renamed without changes.
51 changes: 0 additions & 51 deletions
51
src/sonic-frr/patch/0023-bgpd-Make-sure-we-have-enough-data-to-read-two-bytes.patch
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.