aboutsummaryrefslogtreecommitdiffstats
path: root/main/quagga-nhrp/0002-zebra-fix-nht-validity-checking-to-be-same-as-when-i.patch
diff options
context:
space:
mode:
authorTimo Teräs <timo.teras@iki.fi>2016-10-19 13:15:07 +0300
committerTimo Teräs <timo.teras@iki.fi>2016-10-19 16:10:27 +0300
commit2ed71552e2efad2ec88d241bf447464d0873e550 (patch)
tree90c9840701559ea20d04bbf5a1b5ba7f4023bd7e /main/quagga-nhrp/0002-zebra-fix-nht-validity-checking-to-be-same-as-when-i.patch
parentca712c8127101721b2bb51eaccd4ed6b3491c78e (diff)
downloadaports-2ed71552e2efad2ec88d241bf447464d0873e550.tar.bz2
aports-2ed71552e2efad2ec88d241bf447464d0873e550.tar.xz
main/quagga-nhrp: upgrade to 1.1.0 + nhrp patch
Diffstat (limited to 'main/quagga-nhrp/0002-zebra-fix-nht-validity-checking-to-be-same-as-when-i.patch')
-rw-r--r--main/quagga-nhrp/0002-zebra-fix-nht-validity-checking-to-be-same-as-when-i.patch33
1 files changed, 33 insertions, 0 deletions
diff --git a/main/quagga-nhrp/0002-zebra-fix-nht-validity-checking-to-be-same-as-when-i.patch b/main/quagga-nhrp/0002-zebra-fix-nht-validity-checking-to-be-same-as-when-i.patch
new file mode 100644
index 0000000000..88d338184f
--- /dev/null
+++ b/main/quagga-nhrp/0002-zebra-fix-nht-validity-checking-to-be-same-as-when-i.patch
@@ -0,0 +1,33 @@
+From 17d31f627a305eeba2d12525d3deea516c2ac0c1 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Timo=20Ter=C3=A4s?= <timo.teras@iki.fi>
+Date: Wed, 30 Mar 2016 14:31:14 +0300
+Subject: [PATCH 2/5] zebra: fix nht validity checking to be same as when it's
+ resolved
+
+This reverts commit 7e3a435bd99 "A valid BGP nexthop is flagged as invalid"
+
+Problem is BGP thinks the nexthop is accessible when it's recursive, and
+selects it, but zebra rejects it at route install time. Causing FIB and
+BGP state to be out-of-sync. Fix nht to follow same rules as zebra rib.
+---
+ zebra/zebra_rnh.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/zebra/zebra_rnh.c b/zebra/zebra_rnh.c
+index 97d3597..5762d3f 100644
+--- a/zebra/zebra_rnh.c
++++ b/zebra/zebra_rnh.c
+@@ -498,8 +498,8 @@ send_client (struct rnh *rnh, struct zserv *client, vrf_id_t vrf_id)
+ nump = stream_get_endp(s);
+ stream_putc (s, 0);
+ for (nexthop = rib->nexthop; nexthop; nexthop = nexthop->next)
+- if ((CHECK_FLAG (nexthop->flags, NEXTHOP_FLAG_FIB) ||
+- CHECK_FLAG (nexthop->flags, NEXTHOP_FLAG_RECURSIVE)) &&
++ if (CHECK_FLAG (nexthop->flags, NEXTHOP_FLAG_FIB) &&
++ ! CHECK_FLAG (nexthop->flags, NEXTHOP_FLAG_RECURSIVE) &&
+ CHECK_FLAG (nexthop->flags, NEXTHOP_FLAG_ACTIVE))
+ {
+ stream_putc (s, nexthop->type);
+--
+2.10.1
+