diff options
author | David Lamparter <equinox@opensourcerouting.org> | 2015-04-13 09:50:00 +0200 |
---|---|---|
committer | David Lamparter <equinox@opensourcerouting.org> | 2015-05-05 15:05:34 +0200 |
commit | 4584c239201037648abf1a6615186f9cdeb86b23 (patch) | |
tree | 1af059ebcc0b9229aa78c9e775120ae8ae4a8c2f /lib/command.c | |
parent | e30677a5537f67e37938954cf7347e9a9c0b922d (diff) | |
download | quagga-4584c239201037648abf1a6615186f9cdeb86b23.tar.bz2 quagga-4584c239201037648abf1a6615186f9cdeb86b23.tar.xz |
bgpd: speed up "no-hit" withdraws for routeservers
This accelerates handling of incoming Withdraw messages for routes that
don't exist in the table to begin with. Cisco IOS 12.4(24)T4 has a bug
in this regard - it sends withdraws instead of doing nothing for
prefixes that are filtered.
Pulling up the adj_in removal in Quagga should have no ill effect, but
we can avoid the costly iteration over all rsclients if there was no
adj_in entry.
Performance impact of this change on routeserver with 3 buggy peers,
startup/sync time:
before patch: 143.12 seconds (user cpu)
after patch: 7.01 seconds (user cpu)
Many thanks to Nick Hilliard & INEX for providing real-world test data!
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
Acked-by: Paul Jakma <paul@jakma.org>
Diffstat (limited to 'lib/command.c')
0 files changed, 0 insertions, 0 deletions