Age | Commit message (Collapse) | Author | |
---|---|---|---|
1999-02-13 | Implemented real cleanup and pruning of routing table on protocol shutdown. | Martin Mares | |
1999-02-13 | Fixed bug in FIB_ITERATE_END: it assumed the control variable is named | Martin Mares | |
"z". I've added an argument specifying name of the variable. Renamed "again" label in FIB_ITERATE_* to "fis_again" to avoid name clashes. | |||
1999-02-13 | config->router_id works again. | Martin Mares | |
1999-02-11 | Real implementation of protocol state machines. Delayed startup/shutdown | Martin Mares | |
should work now. Initial feeding of protocols by interfaces/routes is done from the event queue to prevent unwanted recursion. | |||
1999-02-11 | struct proto again contains instance name (a copy of proto->cf->name). | Martin Mares | |
1999-02-05 | Implemented new configuration/reconfiguration interface and defined protocol | Martin Mares | |
state machines. Full explanation will follow soon. | |||
1999-01-12 | Keep protocol data out of iface_patt. | Pavel Machek | |
1999-01-10 | Initialize only protocols which are compiled in :) | Martin Mares | |
1999-01-10 | New makefiles. Includes support for out-of-source-tree builds. | Martin Mares | |
1998-12-22 | Oops, previous modification for passing NULL to fib_init() did not | Pavel Machek | |
compile :-(. | |||
1998-12-22 | Allow NULL to init_fib(). | Pavel Machek | |
1998-12-20 | die() -> bug() where appropriate. | Martin Mares | |
1998-12-20 | When printing a routing table, fib_check() it. | Martin Mares | |
1998-12-20 | Rewrote fib functions to make them insert/delete/asynchronous-walk safe. | Martin Mares | |
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. | |||
1998-12-08 | Added source RTS_DUMMY for temporary routes. They should never appear | Martin Mares | |
in the main table. | |||
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 | 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-06 | Removed protocol-specific data in rte for protocol static since no | Martin Mares | |
such data ever existed. | |||
1998-12-06 | Aesthetic fix for neighbor cache debug dump. | Martin Mares | |
1998-12-06 | Added skeleton of static route protocol. | 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-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 | 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 | Parser fragment for the core. Now handles only router ID setting. | Martin Mares | |
1998-11-27 | Replaced nest/confile.h by conf/conf.h, added a lot of new definitions. | Martin Mares | |
1998-10-26 | Previous fix was wrong. | Martin Mares | |
1998-10-26 | rte_update: Doesn't loop forever when multiple routes point to the same | Martin Mares | |
destination. | |||
1998-10-20 | RIP now actually talks to itself. | Pavel Machek | |
1998-10-20 | Beware the NULL route, my son... The bugs that bite, the BIRDs that crash :-) | Martin Mares | |
1998-10-20 | Insert/remove hooks return void, not int. | Martin Mares | |
1998-10-20 | Added pointer to network to RTE. The complications with passing NET separately | Martin Mares | |
aren't worth 4 bytes per RTE. rte_discard and rte_dump don't need net * as parameter. | |||
1998-10-19 | Generate router_id automatically if possible (standard "smallest of local | Martin Mares | |
regular interface addresses" rule). Protocols should NOT rely on router_id existence -- when router ID is not available, the router_id variable is set to zero and protocols requiring valid router ID should just refuse to start, reporting such error to the log. | |||
1998-10-19 | Fixed generation of device routes for unnumbered point-to-point links. | Martin Mares | |
1998-10-19 | Proto struct now contain (down | starting | up) state. | Martin Mares | |
1998-10-18 | o FIB flags now available for FIB users. | Martin Mares | |
o struct network: FIB flags used for kernel syncing. o struct network: `next' field deleted (historical relic). | |||
1998-10-18 | Preconfig, postconfig and init hooks can be NULL. | Martin Mares | |
1998-10-18 | Split protocol init to building of protocol list and real protocol init. | Martin Mares | |
Added kernel route table syncer skeleton. | |||
1998-10-18 | Removed global pointer to proto_dev. | Martin Mares | |
1998-10-18 | After contemplating about RIP route timeouts for a long time, I've implemented | Martin Mares | |
protocol callbacks for route insertion and deletion from the central table. RIP should maintain its own per-protocol queue of existing routes, scan it periodically and call rte_discard() for routes that have timed out. | |||
1998-10-18 | Implemented `route last modified' time. | Martin Mares | |
1998-10-17 | Fixed misleading comment. | Martin Mares | |
1998-10-17 | Each protocol now hears even its own routes and needs to make its own | Martin Mares | |
loop detection. This is needed since both RIP and OSPF handle multiple neighbors and they need to redistribute routes learned from each neighbor to the remaining ones. | |||
1998-10-17 | Solve chicken-and-egg problems with protocol startup. We now queue all inactive | Martin Mares | |
protocols and don't send route/interface updates to them and when they come up, we resend the whole route/interface tables privately. Removed the "scan interface list after protocol start" work-around. |