Age | Commit message (Collapse) | Author | |
---|---|---|---|
1999-03-04 | KRT: Implemented asynchronous route / interface state notifications | Martin Mares | |
(via Netlink). Tweaked kernel synchronization rules a bit. Discovered locking bug in kernel Netlink :-) Future plans: Hunt all the bugs and solve all the FIXME's. | |||
1999-03-04 | Although there are still heaps of FIXME's, Netlink works. | Martin Mares | |
To build BIRD with Netlink support, just configure it with ./configure --with-sysconfig=linux-21 After it will be tested well enough, I'll probably make it a default for 2.2 kernels (and rename it to linux-22 :)). | |||
1999-03-04 | Converted some mb_alloc/bzero pairs to mb_allocz. | Martin Mares | |
1999-03-04 | Initialize allocated struct proto :-) | Martin Mares | |
1999-03-04 | Use dmalloc instead of EFence when available (dmalloc has lot of improvements | Martin Mares | |
over EFence and also hopefully smaller memory overhead, but sadly it's non-free for commercial use). If the DMALLOC_OPTIONS environment variable is not set, switch on `reasonable' checks by default. Also introduced mb_allocz() for cleared mb_alloc(). | |||
1999-03-03 | Netlink scans routes... | Martin Mares | |
1999-03-03 | EFence helped to find using of already free rte's in rt_prune(). | Martin Mares | |
1999-03-03 | Fix several things I broke today. | Martin Mares | |
1999-03-03 | Added a hack forcing protocols with priority>0 to be started up | Martin Mares | |
immediately. Grrr, need to find a real solution some day. | |||
1999-03-03 | Rewrote the kernel syncer. The old layering was horrible. | Martin Mares | |
The new kernel syncer is cleanly split between generic UNIX module and OS dependent submodules: - krt.c (the generic part) - krt-iface (low-level functions for interface handling) - krt-scan (low-level functions for routing table scanning) - krt-set (low-level functions for setting of kernel routes) krt-set and krt-iface are common for all BSD-like Unices, krt-scan is heavily system dependent (most Unices require /dev/kmem parsing, Linux uses /proc), Netlink substitues all three modules. We expect each UNIX port supports kernel routing table scanning, kernel interface table scanning, kernel route manipulation and possibly also asynchronous event notifications (new route, interface state change; not implemented yet) and build the KRT protocol on the top of these primitive operations. | |||
1999-03-03 | Introduced protocol priority (all 'normal' protocols should use the | Martin Mares | |
default zero priority). No more "kernel syncer initialized before device routes" problems. | |||
1999-03-02 | Add interface for running filters (please comment!), avoid bison warnings | Pavel Machek | |
1999-03-02 | Avoid segfault | Pavel Machek | |
1999-03-02 | Netlink module supports interface scan on startup. Working on more. | Martin Mares | |
1999-03-02 | o The if_change_too_big_p change was too high-spirited. Fixed. | Martin Mares | |
o Introduced if_find_by_index() o Recognizing two types of interface updates: full update (starting with if_start_update(), ending with if_end_update(), guaranteed to see all existing interfaces) and a partial update (only if_update(), usually due to asynchronous interface notifications). | |||
1999-03-02 | Interface logic changes: | Martin Mares | |
o Introduced IF_LINK_UP flag corresponding to real link state. o Allowed addressless interfaces. o IF_UP is now automatically calculated and set iff the interface is administratively up, has link up and has an IP address assigned. It may be IF_IGNORED, though (as in case of the loopback). o Any changes which include up/down transition are considered small enough to not provoke artificial upping and downing of the interface. o When an interface disappears (i.e., it wasn't seen in the last scan), we announce this change only once. o IF_LOOPBACK implies IF_IGNORE. | |||
1999-03-02 | Don't try to install static routes to disconnected neighbors. | Martin Mares | |
1999-03-02 | Latest changes broke out-of-tree compilation. | Martin Mares | |
1999-03-02 | I just don't like files enclosed in <>. | Pavel Machek | |
1999-03-01 | If we are compiling with debugging enabled and libefence is available, | Martin Mares | |
link it to get debugging malloc. | |||
1999-03-01 | Implemented netlink protocol parsing functions. More to come tomorrow. | Martin Mares | |
1999-03-01 | Added SK_MAGIC type sockets for internal use by system dependent code, | Martin Mares | |
especially for netlink communication. | |||
1999-03-01 | Hopefully ended translating to new interface | Pavel Machek | |
1999-03-01 | Added skeletal version of Linux netlink interface. It doesn't work yet, | Martin Mares | |
but the framework is there and I'll try finish it soon. | |||
1999-03-01 | Include "config.h" instead of "autoconf.h" in all Modules lists to make defines | Martin Mares | |
in the static portion of configuration includes available as well. | |||
1999-03-01 | Renamed struct rtattr to struct rta to make things more consistent and | Martin Mares | |
avoid namespace clashes with <linux/rtnetlink.h>. Other files should not be affected since they use 'rta' directly. | |||
1999-03-01 | Use traditional Unix route/iface interface only when CONFIG_NETLINK | Martin Mares | |
is not defined. Also moved declarations of Unix iface logic to krt.h. | |||
1999-03-01 | Pruned the TODO list. | Martin Mares | |
1999-02-15 | More rip fixes (config data moved to struct rip_proto_config), still | Pavel Machek | |
not tested. | |||
1999-02-13 | Cleaned up TODO file. | Martin Mares | |
That's all for today, midnight gets closer. | |||
1999-02-13 | Synced example config with new options. | Martin Mares | |
1999-02-13 | Implemented static device routes. | Martin Mares | |
Expect for reconfiguration issues, the static protocol is complete now. | |||
1999-02-13 | Parameter order for the proto->if_notify hook was different in the include | Martin Mares | |
file and different in reality. Decided to use the same order as we do for proto->rt_notify (i.e., first new value and second the old one). | |||
1999-02-13 | '#' comments in config files are equivalent to end of line, therefore | Martin Mares | |
also to implicit ';'. | |||
1999-02-13 | Implemented garbage collection of routing tables to delete orphaned network | Martin Mares | |
nodes having no routes attached. Such cleanup must be done from event handler since most functions manipulating the routing tables expect network entries won't disappear from under their hands and it's also probably faster when done asynchronously. | |||
1999-02-13 | Static protocol doesn't need any shutdown function. Everything gets | Martin Mares | |
disposed by the core: neighbors, rte's, etc's... | |||
1999-02-13 | Don't send any neighbor notifications to protocols being flushed. | Martin Mares | |
1999-02-13 | When protocols go down, prune the neighbor list. | Martin Mares | |
1999-02-13 | When shutting down, remove all routes (except for RTS_INHERIT and RTS_DEVICE | Martin Mares | |
routes) from kernel routing tables unless the "persist" switch is set. | |||
1999-02-13 | Moved sanity check of protocol state during annoucements to rte_announce. | Martin Mares | |
1999-02-13 | Perform gracious shutdown upon receipt of SIGTERM. Finally we can | Martin Mares | |
test the whole protocol shutdown code... :) | |||
1999-02-13 | Squashed one bug in timing of route scans. | Martin Mares | |
1999-02-13 | Synchronize signals to the main select/event/timer loop. | Martin Mares | |
Parse command line options. | |||
1999-02-13 | Implemented real cleanup and pruning of routing table on protocol shutdown. | Martin Mares | |
1999-02-13 | Pass new argument to FIB_ITERATE_END. | 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 | Run the event queue before writing SIGUSR dumps. | Martin Mares | |
1999-02-11 | struct proto again contains instance name (a copy of proto->cf->name). | Martin Mares | |