From 6005f4c976dd15d897ca0e1a8c51e269864ac493 Mon Sep 17 00:00:00 2001
From: Danny Allen <daall@microsoft.com>
Date: Thu, 20 Feb 2020 13:47:21 -0800
Subject: [PATCH] Revert "Update frr to latest 7.2.1 (#4145)" (#4170)

This reverts commit 4b42a48f452515422ad8f9bd8bb4afef0b4358a2.
---
 rules/frr.mk                                  |  2 +-
 src/sonic-frr/frr                             |  2 +-
 ...nexthops-compare-vrf-only-if-ip-type.patch | 73 +++++++++++++++++++
 src/sonic-frr/patch/series                    |  1 +
 4 files changed, 76 insertions(+), 2 deletions(-)
 create mode 100644 src/sonic-frr/patch/0005-nexthops-compare-vrf-only-if-ip-type.patch

diff --git a/rules/frr.mk b/rules/frr.mk
index 0ef1296cb7..6b2e92fcbd 100644
--- a/rules/frr.mk
+++ b/rules/frr.mk
@@ -3,7 +3,7 @@
 FRR_VERSION = 7.2.1
 FRR_SUBVERSION = 0
 FRR_BRANCH = frr/7.2
-FRR_TAG = frr-7.2.1-s2
+FRR_TAG = frr-7.2.1-s1
 export FRR_VERSION FRR_SUBVERSION FRR_BRANCH FRR_TAG
 
 
diff --git a/src/sonic-frr/frr b/src/sonic-frr/frr
index e1b0c93996..90446e3c33 160000
--- a/src/sonic-frr/frr
+++ b/src/sonic-frr/frr
@@ -1 +1 @@
-Subproject commit e1b0c939960c49eba05e972a68d50ca32dd09303
+Subproject commit 90446e3c3310001a7b84017fa4b237ea7914f45e
diff --git a/src/sonic-frr/patch/0005-nexthops-compare-vrf-only-if-ip-type.patch b/src/sonic-frr/patch/0005-nexthops-compare-vrf-only-if-ip-type.patch
new file mode 100644
index 0000000000..343f1b3262
--- /dev/null
+++ b/src/sonic-frr/patch/0005-nexthops-compare-vrf-only-if-ip-type.patch
@@ -0,0 +1,73 @@
+From 2f0b5aef66316b47d2cc8ac18453600621a6a317 Mon Sep 17 00:00:00 2001
+From: Tyler Li <tyler.li@mediatek.com>
+Date: Thu, 14 Nov 2019 23:46:52 -0800
+Subject: [PATCH] nexthops compare vrf only if ip type
+
+---
+ lib/nexthop.c | 12 ++++++------
+ lib/zclient.c | 12 ++++++------
+ 2 files changed, 12 insertions(+), 12 deletions(-)
+
+diff --git a/lib/nexthop.c b/lib/nexthop.c
+index cf5bed3d6..7d9f646c9 100644
+--- a/lib/nexthop.c
++++ b/lib/nexthop.c
+@@ -105,12 +105,6 @@ static int _nexthop_cmp_no_labels(const struct nexthop *next1,
+ {
+ 	int ret = 0;
+ 
+-	if (next1->vrf_id < next2->vrf_id)
+-		return -1;
+-
+-	if (next1->vrf_id > next2->vrf_id)
+-		return 1;
+-
+ 	if (next1->type < next2->type)
+ 		return -1;
+ 
+@@ -120,6 +114,12 @@ static int _nexthop_cmp_no_labels(const struct nexthop *next1,
+ 	switch (next1->type) {
+ 	case NEXTHOP_TYPE_IPV4:
+ 	case NEXTHOP_TYPE_IPV6:
++		if (next1->vrf_id < next2->vrf_id)
++			return -1;
++
++		if (next1->vrf_id > next2->vrf_id)
++			return 1;
++
+ 		ret = _nexthop_gateway_cmp(next1, next2);
+ 		if (ret != 0)
+ 			return ret;
+diff --git a/lib/zclient.c b/lib/zclient.c
+index c739af043..0d37c46d1 100644
+--- a/lib/zclient.c
++++ b/lib/zclient.c
+@@ -783,12 +783,6 @@ static int zapi_nexthop_cmp_no_labels(const struct zapi_nexthop *next1,
+ {
+ 	int ret = 0;
+ 
+-	if (next1->vrf_id < next2->vrf_id)
+-		return -1;
+-
+-	if (next1->vrf_id > next2->vrf_id)
+-		return 1;
+-
+ 	if (next1->type < next2->type)
+ 		return -1;
+ 
+@@ -798,6 +792,12 @@ static int zapi_nexthop_cmp_no_labels(const struct zapi_nexthop *next1,
+ 	switch (next1->type) {
+ 	case NEXTHOP_TYPE_IPV4:
+ 	case NEXTHOP_TYPE_IPV6:
++		if (next1->vrf_id < next2->vrf_id)
++			return -1;
++
++		if (next1->vrf_id > next2->vrf_id)
++			return 1;
++
+ 		ret = nexthop_g_addr_cmp(next1->type, &next1->gate,
+ 					 &next2->gate);
+ 		if (ret != 0)
+-- 
+2.11.0
+
diff --git a/src/sonic-frr/patch/series b/src/sonic-frr/patch/series
index 233021ace5..13619c87ff 100644
--- a/src/sonic-frr/patch/series
+++ b/src/sonic-frr/patch/series
@@ -2,4 +2,5 @@
 0002-Reduce-severity-of-Vty-connected-from-message.patch
 0003-Use-vrf_id-for-vrf-not-tabled_id.patch
 0004-Allow-BGP-attr-NEXT_HOP-to-be-0.0.0.0-due-to-allevia.patch
+0005-nexthops-compare-vrf-only-if-ip-type.patch
 0006-changes-for-making-snmp-socket-non-blocking.patch