summaryrefslogtreecommitdiffstats
path: root/nest
AgeCommit message (Collapse)Author
1999-02-13Don't send any neighbor notifications to protocols being flushed.Martin Mares
1999-02-13When protocols go down, prune the neighbor list.Martin Mares
1999-02-13Moved sanity check of protocol state during annoucements to rte_announce.Martin Mares
1999-02-13Perform gracious shutdown upon receipt of SIGTERM. Finally we canMartin Mares
test the whole protocol shutdown code... :)
1999-02-13Implemented real cleanup and pruning of routing table on protocol shutdown.Martin Mares
1999-02-13Fixed bug in FIB_ITERATE_END: it assumed the control variable is namedMartin 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-13config->router_id works again.Martin Mares
1999-02-11Real implementation of protocol state machines. Delayed startup/shutdownMartin Mares
should work now. Initial feeding of protocols by interfaces/routes is done from the event queue to prevent unwanted recursion.
1999-02-11struct proto again contains instance name (a copy of proto->cf->name).Martin Mares
1999-02-05Implemented new configuration/reconfiguration interface and defined protocolMartin Mares
state machines. Full explanation will follow soon.
1999-01-12Keep protocol data out of iface_patt.Pavel Machek
1999-01-10Initialize only protocols which are compiled in :)Martin Mares
1999-01-10New makefiles. Includes support for out-of-source-tree builds.Martin Mares
1998-12-22Oops, previous modification for passing NULL to fib_init() did notPavel Machek
compile :-(.
1998-12-22Allow NULL to init_fib().Pavel Machek
1998-12-20die() -> bug() where appropriate.Martin Mares
1998-12-20When printing a routing table, fib_check() it.Martin Mares
1998-12-20Rewrote 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-08Added source RTS_DUMMY for temporary routes. They should never appearMartin Mares
in the main table.
1998-12-07Minor 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-07KRF_* 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-07Removed protocol-specific data in rte for protocol static since noMartin Mares
such data ever existed.
1998-12-07Aesthetic fix for neighbor cache debug dump.Martin Mares
1998-12-06Added skeleton of static route protocol.Martin Mares
1998-12-06Name 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-04Rip now has configurable per-interface metric (please rewiev), and fewPavel Machek
more configurable parameters. To do that, union was added into iface_patt.
1998-11-29Added configuration of the device internal protocol. This is primarilyMartin 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-29Handle disabled protocol instances.Martin Mares
1998-11-29Added 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-29Allow setting debug value and `disabled' flag in protocol definition.Martin Mares
1998-11-29Renamed `DEBUG' symbol to `DEBUGGING' to prevent collisions with tokenMartin Mares
names and include files.
1998-11-27Oops, forgot to remove a debugging kludge.Martin Mares
1998-11-27Trivial 15-line bison excercise: Implemented expressions includingMartin Mares
user-defined numeric symbols. Whenever possible, use `expr' instead of `NUM' to get full express ion power :-)
1998-11-27First attempt at protocol configuration (now done only for RIP).Martin Mares
1998-11-27Parser fragment for the core. Now handles only router ID setting.Martin Mares
1998-11-27Replaced nest/confile.h by conf/conf.h, added a lot of new definitions.Martin Mares
1998-10-26Previous fix was wrong.Martin Mares
1998-10-26rte_update: Doesn't loop forever when multiple routes point to the sameMartin Mares
destination.
1998-10-20RIP now actually talks to itself.Pavel Machek
1998-10-20Beware the NULL route, my son... The bugs that bite, the BIRDs that crash :-)Martin Mares
1998-10-20Insert/remove hooks return void, not int.Martin Mares
1998-10-20Added pointer to network to RTE. The complications with passing NET separatelyMartin Mares
aren't worth 4 bytes per RTE. rte_discard and rte_dump don't need net * as parameter.
1998-10-19Generate router_id automatically if possible (standard "smallest of localMartin 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-19Fixed generation of device routes for unnumbered point-to-point links.Martin Mares
1998-10-19Proto struct now contain (down | starting | up) state.Martin Mares
1998-10-19o 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-18Preconfig, postconfig and init hooks can be NULL.Martin Mares
1998-10-18Split protocol init to building of protocol list and real protocol init.Martin Mares
Added kernel route table syncer skeleton.
1998-10-18Removed global pointer to proto_dev.Martin Mares
1998-10-18After contemplating about RIP route timeouts for a long time, I've implementedMartin 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.