diff options
author | Timo Teräs <timo.teras@iki.fi> | 2015-07-03 10:24:54 +0000 |
---|---|---|
committer | Timo Teräs <timo.teras@iki.fi> | 2015-07-03 10:28:18 +0000 |
commit | 04c6cba2e48b378679f8316fdd9dd895cede4bc9 (patch) | |
tree | 1835844121500be47c932af04ea5961ae7082b14 /testing/quagga-nhrp/bgpd-gr-route-selection-fix.patch | |
parent | 33c3a706bad78049366a3148bc2ffc950ac24172 (diff) | |
download | aports-04c6cba2e48b378679f8316fdd9dd895cede4bc9.tar.bz2 aports-04c6cba2e48b378679f8316fdd9dd895cede4bc9.tar.xz |
main/quagga-nhrp: moved from testing
and update patches from main/quagga
Diffstat (limited to 'testing/quagga-nhrp/bgpd-gr-route-selection-fix.patch')
-rw-r--r-- | testing/quagga-nhrp/bgpd-gr-route-selection-fix.patch | 37 |
1 files changed, 0 insertions, 37 deletions
diff --git a/testing/quagga-nhrp/bgpd-gr-route-selection-fix.patch b/testing/quagga-nhrp/bgpd-gr-route-selection-fix.patch deleted file mode 100644 index 36719d3755..0000000000 --- a/testing/quagga-nhrp/bgpd-gr-route-selection-fix.patch +++ /dev/null @@ -1,37 +0,0 @@ -During best path selection, if one of the candidates is a stale entry, do not -perform the neighbor address comparison as that information is invalid for -the stale entry. Attempting to perform the comparison results in a bgpd -exception. - -diff --git a/bgpd/bgp_route.c b/bgpd/bgp_route.c -index cca26d8..d30c643 100644 ---- a/bgpd/bgp_route.c -+++ b/bgpd/bgp_route.c -@@ -540,7 +540,11 @@ bgp_info_cmp (struct bgp *bgp, struct bgp_info *new, struct bgp_info *exist, - return 0; - } - -- /* 11. Rourter-ID comparision. */ -+ /* 11. Router-ID comparision. */ -+ /* If one of the paths is "stale", the corresponding peer router-id will -+ * be 0 and would always win over the other path. If originator id is -+ * used for the comparision, it will decide which path is better. -+ */ - if (newattr->flag & ATTR_FLAG_BIT(BGP_ATTR_ORIGINATOR_ID)) - new_id.s_addr = newattre->originator_id.s_addr; - else -@@ -565,6 +569,14 @@ bgp_info_cmp (struct bgp *bgp, struct bgp_info *new, struct bgp_info *exist, - return 0; - - /* 13. Neighbor address comparision. */ -+ /* Do this only if neither path is "stale" as stale paths do not have -+ * valid peer information (as the connection may or may not be up). -+ */ -+ if (CHECK_FLAG (exist->flags, BGP_INFO_STALE)) -+ return 1; -+ if (CHECK_FLAG (new->flags, BGP_INFO_STALE)) -+ return 0; -+ - ret = sockunion_cmp (new->peer->su_remote, exist->peer->su_remote); - - if (ret == 1) |