bird/nest
Ondrej Zajicek ba2a076001 BGP: Improve tx performance during feed/flush
The prefix hash table in BGP used the same hash function as the rtable.
When a batch of routes are exported during feed/flush to the BGP, they
all have similar hash values, so they are all crowded in a few slots in
the BGP prefix table (which is much smaller - around the size of the
batch - and uses higher bits from hash values), making it much slower due
to excessive collisions. Use a different hash function to avoid this.

Also, increase the batch size to fill 4k BGP packets and increase minimum
BGP bucket and prefix hash sizes to avoid back and forth resizing during
flushes.

This leads to order of magnitude faster flushes (on my test data).
2022-05-15 15:05:37 +02:00
..
a-path.c Nest: Implement BGP path mask loop operator 2020-05-18 16:25:08 +02:00
a-path_test.c Filter refactoring: dropped the recursion from the interpreter 2019-02-20 22:30:54 +01:00
a-set.c Filter: Add operators to find minimum and maximum element of sets 2021-12-28 04:07:09 +01:00
a-set_test.c Filter refactoring: dropped the recursion from the interpreter 2019-02-20 22:30:54 +01:00
attrs.h Filter: Add operators to find minimum and maximum element of sets 2021-12-28 04:07:09 +01:00
bfd.h BFD: Allow per-request session options 2020-11-08 15:33:22 +01:00
bird.h Initial commit on integrated BIRD 2015-11-05 12:48:52 +01:00
cli.c CLI: Fix continuation lines after final one 2019-11-26 16:43:09 +01:00
cli.h Show info from multiple protocols when protocol is not specified 2020-06-28 15:38:47 +02:00
cmds.c Memory statistics split into Effective and Overhead 2021-11-27 22:54:15 +01:00
cmds.h Filter refactoring: dropped the recursion from the interpreter 2019-02-20 22:30:54 +01:00
config.Y Nest: Add routing table configuration blocks 2022-02-06 23:27:13 +01:00
Doc Doc: Rename code documentation files back to Doc 2018-12-14 02:03:42 +01:00
iface.c Nest: Do not ignore secondary flag changes in ifa updates 2021-12-18 01:09:52 +01:00
iface.h Nest: Fix neighbor handling for colliding ranges 2020-05-11 04:29:36 +02:00
locks.c Lib: Add and use ev_new_init() 2018-10-01 15:55:23 +02:00
locks.h Nest: VRF support for neighbor cache and olock code 2017-09-12 15:49:36 +02:00
Makefile Nest: split route show into separate file 2017-05-15 12:10:51 +02:00
neighbor.c Some minor sl_allocz() cleanups 2020-11-24 03:21:44 +01:00
password.c Nest: Allow MAC algorithms to specify min/max key length 2021-06-06 16:28:18 +02:00
password.h Nest: Allow MAC algorithms to specify min/max key length 2021-06-06 16:28:18 +02:00
proto-hooks.c Terminology cleanup: The import_control hook is now called preexport. 2018-12-04 10:53:01 +01:00
proto.c Routing table is now a resource allocated from its own pool 2021-03-30 21:56:08 +02:00
proto.sgml Channels - explicit links between protocols and tables 2016-02-01 10:28:50 +01:00
protocol.h Nest: Clean up main channel handling 2021-06-17 16:56:51 +02:00
route.h Nest: Implement locking of prefix tries during walks 2022-02-06 23:27:13 +01:00
rt-attr.c Allocation of ea_list in one contiguous memory block 2021-03-30 21:56:08 +02:00
rt-dev.c Protocol: Introducing an enum protocol_class 2018-05-29 12:35:06 +02:00
rt-dev.h Nest: SADR support for Direct 2018-03-18 02:56:51 +01:00
rt-fib.c Nest: Attach prefix trie to rtable for faster LPM and interval queries 2022-02-06 23:27:13 +01:00
rt-show.c Nest: Implement locking of prefix tries during walks 2022-02-06 23:27:13 +01:00
rt-table.c BGP: Improve tx performance during feed/flush 2022-05-15 15:05:37 +02:00