summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorMartin Mares <mj@ucw.cz>1998-12-20 15:01:20 +0100
committerMartin Mares <mj@ucw.cz>1998-12-20 15:01:20 +0100
commit3ab001b97402bc01a4777cf1cb60ce940d50ffe3 (patch)
tree415d5416dec8e37c8a54b53be507b4fd517b1ce7 /lib
parenta6f250f5c6d079badc4a1274b19a21a52de6acec (diff)
downloadbird-3ab001b97402bc01a4777cf1cb60ce940d50ffe3.tar
bird-3ab001b97402bc01a4777cf1cb60ce940d50ffe3.zip
Rewrote fib functions to make them insert/delete/asynchronous-walk safe.
This is implemented in a way similar to lib/slists.h, but it took some more effort to make rehashing not disturb the readers. We do it by just taking _highest_ k bits of ipa_hash as our hash value and sorting each box by whole ipa_hash(). Consult FIB_ITERATE_* macros in nest/route.h. Implemented fib_check() debugging function and also rewrote the rehashing algorithm to use better thresholds and not to waste time by rehashing forth and back.
Diffstat (limited to 'lib')
0 files changed, 0 insertions, 0 deletions