diff options
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.patch | 33 |
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 + |