summaryrefslogtreecommitdiff
path: root/bgpd/bgp_route.c
diff options
context:
space:
mode:
authorpaul <paul>2004-05-01 18:17:04 +0000
committerpaul <paul>2004-05-01 18:17:04 +0000
commit35be31b6b2199e66e5d18420cece5e3bacb3371c (patch)
tree744adc33a896d6b69b159a3432e391e2ff2b3a92 /bgpd/bgp_route.c
parenteb821189d2778a93069fc1fc2f104db529ec5a1e (diff)
2004-05-01 rivo nurges <rix@estpak.ee>
* bgp_route.c: fix UNH IOL BGP-4.1.12f
Diffstat (limited to 'bgpd/bgp_route.c')
-rw-r--r--bgpd/bgp_route.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/bgpd/bgp_route.c b/bgpd/bgp_route.c
index 32227cbb..97636eff 100644
--- a/bgpd/bgp_route.c
+++ b/bgpd/bgp_route.c
@@ -480,6 +480,16 @@ bgp_announce_check (struct bgp_info *ri, struct peer *peer, struct prefix *p,
if (from == peer)
return 0;
+ /* If peer's id and route's nexthop are same. draft-ietf-idr-bgp4-23 5.1.3 */
+ if (p->family == AF_INET
+ && IPV4_ADDR_SAME(&peer->remote_id, &ri->attr->nexthop))
+ return 0;
+#ifdef HAVE_IPV6
+ if (p->family == AF_INET6
+ && IPV6_ADDR_SAME(&peer->remote_id, &ri->attr->nexthop))
+ return 0;
+#endif
+
/* Aggregate-address suppress check. */
if (ri->suppress)
if (! UNSUPPRESS_MAP_NAME (filter))