]> git.puffer.fish Git - mirror/frr.git/commitdiff
bgpd: don't compare next-hop to router-id
authorPradosh Mohapatra <pmohapat@cumulusnetworks.com>
Sat, 7 Sep 2013 07:07:20 +0000 (07:07 +0000)
committerDavid Lamparter <equinox@opensourcerouting.org>
Tue, 3 Jun 2014 13:08:08 +0000 (15:08 +0200)
While announcing a path to a peer, the code currently compares the path's
next-hop with the peer's router-id. This can lead to problems as the router
IDs are unique only within an AS. Suppose AS 1 sends route with next-hop
10.1.1.1. It is possible that the speaker has an established BGP peering
with a router in AS 2 with router ID 10.1.1.1. The route will not be
advertised to that peer in AS 2.

The patch removes this check.

Signed-off-by: Pradosh Mohapatra <pmohapat@cumulusnetworks.com>
Reviewed-by: Dinesh G Dutt <ddutt@cumulusnetworks.com>
Reviewed-by: Shrijeet Mukherjee <shm@cumulusnetworks.com>
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
bgpd/bgp_route.c

index 46c0c85f66ae12463af6ca2050d2af08bddbce8b..a919b54e9c04ab418f88e35b9845765ca26131ef 100644 (file)
@@ -823,16 +823,6 @@ 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, &riattr->nexthop))
-    return 0;
-#ifdef HAVE_IPV6
-  if (p->family == AF_INET6
-     && IPV6_ADDR_SAME(&peer->remote_id, &riattr->nexthop))
-    return 0;
-#endif
-
   /* Aggregate-address suppress check. */
   if (ri->extra && ri->extra->suppress)
     if (! UNSUPPRESS_MAP_NAME (filter))