Go to file
Martin Mares 87b60bf7e8 Added several tools for fib hashing function analysis. It turned out
we can use very simple function which is monotonic with respect
to re-hashing:

	n ^= n >> 16;
	n ^= n << 10;
	h = (n >> (16 - o)) & ((1 << o) - 1);

where o is table order. Statistical analysis for both backbone routing
table and local OSPF routing tables gives values near theoretical
optimum for uniform distribution (see ips.c for formulae).

The trick is very simple: We always calculate a 16-bit hash value n and
use o most significant bits (this gives us monotonity wrt. rehashing
if we sort the chains by the value of n). The first shift/xor pair
reduces the IP address to a 16-bit one, the second pair makes higher
bits of the 16-bit value uniformly distributed even for tables containing
lots of long prefixes (typical interior routing case with 24-bit or even
longer prefixes).
1998-12-19 11:51:47 +00:00
conf Added new rule for prefix length / netmask. 1998-12-06 23:10:45 +00:00
doc Added banner presented to KSVI. 1998-03-20 18:30:55 +00:00
lib Name cleanups as suggested by Pavel: 1998-12-06 11:59:18 +00:00
misc Added several tools for fib hashing function analysis. It turned out 1998-12-19 11:51:47 +00:00
nest Added source RTS_DUMMY for temporary routes. They should never appear 1998-12-08 18:30:35 +00:00
proto debug() -> DBG() in rip. 1998-12-09 20:08:57 +00:00
sysdep Hopefully finished kernel syncer (krt) rewrite: 1998-12-08 18:37:58 +00:00
tools Now merges configuration fragments (*.Y) as well. 1998-11-27 19:31:41 +00:00
bird.conf Hopefully finished kernel syncer (krt) rewrite: 1998-12-08 18:37:58 +00:00
Makefile Added skeleton of static route protocol. 1998-12-06 18:21:23 +00:00
Rules Added routing table and routing attribute code. 1998-05-20 11:54:33 +00:00
TODO Hopefully finished kernel syncer (krt) rewrite: 1998-12-08 18:37:58 +00:00