]> git.puffer.fish Git - mirror/frr.git/commit
Revert "bgpd: bgp_scan shouldn't queue up route_nodes with no routes for processing"
authorDaniel Walton <dwalton@cumulusnetworks.com>
Fri, 17 Jun 2016 00:49:16 +0000 (00:49 +0000)
committerDaniel Walton <dwalton@cumulusnetworks.com>
Fri, 17 Jun 2016 00:49:16 +0000 (00:49 +0000)
commit69ae646b8d8f62c5e17766d4c6d2064d6796f687
treef64c371fa485eee4d372315ce745af05f99cdd75
parentc4ae17398c3f83a8985f61f044419877df344990
Revert "bgpd: bgp_scan shouldn't queue up route_nodes with no routes for processing"

This reverts commit ff75b6c05bb9ca1b9c4c48f2231fd4cbfd393b17.

lib/table.c's route_common() can create a rn for a prefix that BGP has
never RXed.  For example here we RX 10.1.8.0/24 from neighbor 10.0.0.2,
notice how the 10.1.0.0/20 entry is created.  We would later assert on
this prefix because its info was NULL.

2016/06/16 23:37:21.418426 BGP: 10.0.0.2 rcvd UPDATE w/ attr: nexthop 10.0.0.2, origin i, localpref 100, metric 0, community 99:7, path
2016/06/16 23:37:21.418442 BGP: 10.0.0.2 rcvd UPDATE wlen 0 wpfx 0 attrlen 36 alen 4 apfx 1
2016/06/16 23:37:21.418458 BGP: bgp_node_create called
2016/06/16 23:37:21.418475 BGP: route_node_get called for 10.1.8.0/24, route_node_new 10.1.0.0/20, match (nil)
2016/06/16 23:37:21.418519 BGP: bgp_node_create called
2016/06/16 23:37:21.418536 BGP: route_node_get called for 10.1.8.0/24, route_node_new(2) 10.1.8.0/24, match 0x2013cd0
2016/06/16 23:37:21.418554 BGP: 10.0.0.2 rcvd 10.1.8.0/24

If rn->info is NULL then avoiding the group_announce_route() call in
bgp_proces_main() also feels risky as this code path generates WITHDRAWs
for prefixes that no longer have a bestpath which would be the case if
there are no paths.
bgpd/bgp_route.c