From 35be31b6b2199e66e5d18420cece5e3bacb3371c Mon Sep 17 00:00:00 2001 From: paul Date: Sat, 1 May 2004 18:17:04 +0000 Subject: 2004-05-01 rivo nurges * bgp_route.c: fix UNH IOL BGP-4.1.12f --- bgpd/ChangeLog | 4 ++++ bgpd/bgp_route.c | 10 ++++++++++ 2 files changed, 14 insertions(+) (limited to 'bgpd') diff --git a/bgpd/ChangeLog b/bgpd/ChangeLog index 1eaea4e3..21189820 100644 --- a/bgpd/ChangeLog +++ b/bgpd/ChangeLog @@ -1,3 +1,7 @@ +2004-05-01 rivo nurges + + * bgp_route.c: fix UNH IOL BGP-4.1.12f + 2004-05-01 Paul Jakma * Revert the attempted clean-up of the dummy peer hack, reverts 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)) -- cgit v1.2.1