0
0
mirror of https://gitlab.nic.cz/labs/bird.git synced 2024-12-22 09:41:54 +00:00
bird/nest
Ondrej Zajicek 0e39ed0004 Nest: Parametric network hashes
Currently, all fib hash tables use the same hashing function. This leads
to a situation where feeding routes through a pipe from one table to
another causes significant number of collisions, as routes are fed in the
order of increasing hash values, but dst tables are sized based on the
number of stored routes.

The patch makes fib hashing function parametric and chooses random
parameter for each table. Also generally improves quality of hashing
functions.

Unfortunately, while this patch fixes the issue with initial collisions,
having different hashing functions leads to 2x slowdown of pipe feeding,
presumably due to worse cache behavior in dst tables. Also, the original
issue significantly affects just the initial part of feed, when the dst
table is small, so even ideal fix would not improve that much.

Therefore, no merge for this patch.
2022-06-14 18:15:30 +02:00
..
a-path_test.c Filter refactoring: dropped the recursion from the interpreter 2019-02-20 22:30:54 +01:00
a-path.c Nest: Implement BGP path mask loop operator 2020-05-18 16:25:08 +02:00
a-set_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
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: Improve GC strategy for rtables 2022-06-04 17:34:57 +02: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: Parametric network hashes 2022-06-14 18:15:30 +02: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: Parametric network hashes 2022-06-14 18:15:30 +02:00
rt-show.c Nest: Implement locking of prefix tries during walks 2022-02-06 23:27:13 +01:00
rt-table.c Nest: Improve GC strategy for rtables 2022-06-04 17:34:57 +02:00