Age | Commit message (Collapse) | Author | |
---|---|---|---|
1998-12-19 | Added several tools for fib hashing function analysis. It turned out | Martin Mares | |
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-09 | debug() -> DBG() in rip. | Pavel Machek | |
1998-12-09 | Initial multicast support (can not work, but skeleton is there) | Pavel Machek | |
1998-12-08 | Hopefully finished kernel syncer (krt) rewrite: | Martin Mares | |
o Interface syncing is now a part of krt and it can have configurable parameters. Actually, the only one is scan rate now :) o Kernel routing table syncing is now synchronized with interface syncing (we need the most recent version of the interface list to prevent lots of routes to non-existent destinations from appearing). Instead of its own timer, we just check if it's route scan time after each iface list scan. o Syncing of device routes implemented. o CONFIG_AUTO_ROUTES should control syncing of automatic device routes. o Rewrote krt_remove_route() to really remove routes :) o Better diagnostics. o Fixed a couple of bugs. | |||
1998-12-08 | Fixed a couple of bugs in static protocol. All static routes except device | Martin Mares | |
ones seem to work well. | |||
1998-12-08 | Added source RTS_DUMMY for temporary routes. They should never appear | Martin Mares | |
in the main table. | |||
1998-12-08 | Rewritten kernel syncer. Now uses the rta trickery I've introduced yesterday | Martin Mares | |
and does things "the right way". Few things are still missing (device routes etc.), I'll add them later in the evening. | |||
1998-12-07 | Minor rte/rta interface changes: | Martin Mares | |
o rte can now contain a pointer to both cached and uncached rta. Protocols which don't need their own attribute caching can now just fill-in a rta, link it to rte without any calls to attribute cache and call rte_update() which will replace rte->attrs by a cached copy. o In order to support this, one of previously pad bytes in struct rta now holds new attribute flags (RTAF_CACHED). If you call rte_update() with uncached rta, you _must_ clear these flags. In other cases rta_lookup() sets it appropriately. o Added rte_free() which is useful when you construct a rte and then the circumstances change and you decide not to use it for an update. (Needed for temporary rte's in kernel syncer...) | |||
1998-12-07 | Comparison of kernel reject routes fixed. | Martin Mares | |
1998-12-07 | KRF_* flags moved to krt.h as they are internal to kernel syncer, | Martin Mares | |
fib->pad0,pad1 renamed to x0,x1 and in case of struct net x0 is reserved for kernel syncing as well. | |||
1998-12-07 | All static routes except for device ones should work and appear/disappear | Martin Mares | |
when their destination comes on/off link. Deserves better testing :) See example in bird.conf. | |||
1998-12-07 | Removed protocol-specific data in rte for protocol static since no | Martin Mares | |
such data ever existed. | |||
1998-12-07 | Aesthetic fix for neighbor cache debug dump. | Martin Mares | |
1998-12-07 | Added new rule for prefix length / netmask. | Martin Mares | |
1998-12-07 | cf_error() now accepts any format strings instead of just an error | Martin Mares | |
message. Also added extra kludge to get rid of collisions of REJECT symbols. | |||
1998-12-06 | Added skeleton of static route protocol. | Martin Mares | |
1998-12-06 | Kernel syncer is now configurable. It will probably need some more | Martin Mares | |
options, but at least basic tuning is possible now. | |||
1998-12-06 | Fixed bug in CF_ADDTO. How it's possible it has ever worked? | Martin Mares | |
1998-12-06 | Added rule "bool" for boolean switches. | Martin Mares | |
1998-12-06 | Name cleanups as suggested by Pavel: | Martin Mares | |
- cfg_strcpy() -> cfg_strdup() - mempool -> linpool, mp_* -> lp_* [to avoid confusion with memblock, mb_*] Anyway, it might be better to stop ranting about names and do some *real* work. | |||
1998-12-04 | Rip now has configurable per-interface metric (please rewiev), and few | Pavel Machek | |
more configurable parameters. To do that, union was added into iface_patt. | |||
1998-12-01 | Infinity is now configurable ammount. | Pavel Machek | |
1998-11-29 | Added configuration of the device internal protocol. This is primarily | Martin Mares | |
intended to serve as an example of interface pattern list use. As a side effect, you can disable generating of device routes by disabling this protocol. | |||
1998-11-29 | Handle disabled protocol instances. | Martin Mares | |
1998-11-29 | Added functions for manipulating interface name pattern lists: | Martin Mares | |
o iface_patt_match(list, iface) -- match interface against list o iface_patts_equal(a, b, c) -- compare whether two pattern lists are equal or not. c(x,y) is called for comparison of protocol-dependent data. | |||
1998-11-29 | Created new functions for allocating configuration data: | Martin Mares | |
o cfg_alloc(size) -- generic memory allocation o cfg_allocu(size) -- unaligned memory allocation o cfg_allocz(size) -- zeroed memory allocation o cfg_strcpy(str) -- allocate a copy of a string Also fixed a bug in lexing of string literals. | |||
1998-11-29 | `wc -l TODO` decreased. | Martin Mares | |
1998-11-29 | Added function for shell-like pattern matching. Will be used for | Martin Mares | |
matching interface names in protocol-to-iface bindings. | |||
1998-11-29 | Allow setting debug value and `disabled' flag in protocol definition. | Martin Mares | |
1998-11-29 | Renamed `DEBUG' symbol to `DEBUGGING' to prevent collisions with token | Martin Mares | |
names and include files. | |||
1998-11-27 | Oops, forgot to remove a debugging kludge. | Martin Mares | |
1998-11-27 | Trivial 15-line bison excercise: Implemented expressions including | Martin Mares | |
user-defined numeric symbols. Whenever possible, use `expr' instead of `NUM' to get full express ion power :-) | |||
1998-11-27 | First attempt at protocol configuration (now done only for RIP). | Martin Mares | |
1998-11-27 | Fixed few misspellings and exported instance init as rip_init_instance(). | Martin Mares | |
1998-11-27 | Added generator of default names. | Martin Mares | |
1998-11-27 | Experimental config file. | Martin Mares | |
1998-11-27 | Dummy grammar for RIP configuration. Now empty, but must be here since | Martin Mares | |
it's referenced in the makefiles. | |||
1998-11-27 | Parser fragment for the core. Now handles only router ID setting. | Martin Mares | |
1998-11-27 | Compile and use the new configuration code by default. | Martin Mares | |
1998-11-27 | Base of the parser. | Martin Mares | |
1998-11-27 | Lexical analyser. | Martin Mares | |
1998-11-27 | Replaced nest/confile.h by conf/conf.h, added a lot of new definitions. | Martin Mares | |
1998-11-27 | This script takes configuration fragments and generates full Bison grammar | Martin Mares | |
from them. | |||
1998-11-27 | This script takes configuration fragments and extracts keyword list | Martin Mares | |
from them. | |||
1998-11-27 | Now merges configuration fragments (*.Y) as well. | Martin Mares | |
1998-11-27 | Implemented ip_pton() | Martin Mares | |
1998-11-27 | Removed prototype of rp_free() since this function has never existed. | Martin Mares | |
1998-11-27 | Added path to config file. | Martin Mares | |
1998-11-21 | Killed bug in processing of 'h' prefix. Patch taken from linux-2.1.129. | Martin Mares | |
1998-11-16 | Complain loudly if the logging buffer would overflow. | Martin Mares | |