summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
1999-03-03Fix several things I broke today.Martin Mares
1999-03-03Added a hack forcing protocols with priority>0 to be started upMartin Mares
immediately. Grrr, need to find a real solution some day.
1999-03-03Rewrote 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-03Introduced protocol priority (all 'normal' protocols should use theMartin Mares
default zero priority). No more "kernel syncer initialized before device routes" problems.
1999-03-02Add interface for running filters (please comment!), avoid bison warningsPavel Machek
1999-03-02Avoid segfaultPavel Machek
1999-03-02Netlink module supports interface scan on startup. Working on more.Martin Mares
1999-03-02o 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-02Interface 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-02Don't try to install static routes to disconnected neighbors.Martin Mares
1999-03-02Latest changes broke out-of-tree compilation.Martin Mares
1999-03-02I just don't like files enclosed in <>.Pavel Machek
1999-03-01If we are compiling with debugging enabled and libefence is available,Martin Mares
link it to get debugging malloc.
1999-03-01Implemented netlink protocol parsing functions. More to come tomorrow.Martin Mares
1999-03-01Added SK_MAGIC type sockets for internal use by system dependent code,Martin Mares
especially for netlink communication.
1999-03-01Hopefully ended translating to new interfacePavel Machek
1999-03-01Added 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-01Include "config.h" instead of "autoconf.h" in all Modules lists to make definesMartin Mares
in the static portion of configuration includes available as well.
1999-03-01Renamed struct rtattr to struct rta to make things more consistent andMartin Mares
avoid namespace clashes with <linux/rtnetlink.h>. Other files should not be affected since they use 'rta' directly.
1999-03-01Use traditional Unix route/iface interface only when CONFIG_NETLINKMartin Mares
is not defined. Also moved declarations of Unix iface logic to krt.h.
1999-03-01Pruned the TODO list.Martin Mares
1999-02-15More rip fixes (config data moved to struct rip_proto_config), stillPavel Machek
not tested.
1999-02-13Cleaned up TODO file.Martin Mares
That's all for today, midnight gets closer.
1999-02-13Synced example config with new options.Martin Mares
1999-02-13Implemented static device routes.Martin Mares
Expect for reconfiguration issues, the static protocol is complete now.
1999-02-13Parameter order for the proto->if_notify hook was different in the includeMartin 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, thereforeMartin Mares
also to implicit ';'.
1999-02-13Implemented garbage collection of routing tables to delete orphaned networkMartin 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-13Static protocol doesn't need any shutdown function. Everything getsMartin Mares
disposed by the core: neighbors, rte's, etc's...
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-13When shutting down, remove all routes (except for RTS_INHERIT and RTS_DEVICEMartin Mares
routes) from kernel routing tables unless the "persist" switch is set.
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-13Squashed one bug in timing of route scans.Martin Mares
1999-02-13Synchronize signals to the main select/event/timer loop.Martin Mares
Parse command line options.
1999-02-13Implemented real cleanup and pruning of routing table on protocol shutdown.Martin Mares
1999-02-13Pass new argument to FIB_ITERATE_END.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-11Run the event queue before writing SIGUSR dumps.Martin Mares
1999-02-11struct proto again contains instance name (a copy of proto->cf->name).Martin Mares
1999-02-11Grrr, forgot to commit the event routines themselves :|Martin Mares
1999-02-11Added simple event scheduling system to avoid recursive callingMartin Mares
of various callbacks. Events are just another resource type objects (thus automatically freed and unlinked when the protocol using them shuts down). Each event can be linked in at most one event list. For most purposes, just use the global event list handled by the following functions: ev_schedule Schedule event to be called at the next event scheduling point. If the event was already scheduled, it's just re-linked to the end of the list. ev_postpone Postpone an already scheduled event, so that it won't get called. Postponed events can be scheduled again by ev_schedule(). You can also create custom event lists to build your own synchronization primitives. Just use: ev_init_list to initialize an event list ev_enqueue to schedule event on specified event list ev_postpone works as well for custom lists ev_run_list to run all events on your custom list ev_run to run a specific event and dequeue it
1999-02-08Propagate depend into all subdirectories; make rip compile afterPavel Machek
latest mj's changes.
1999-02-05Synced Linux sysdeps to new interface.Martin Mares
1999-02-05Synced kernel interface to new interface.Martin Mares
1999-02-05Modified static router to use new interface.Martin Mares
1999-02-05Implemented new configuration/reconfiguration interface and defined protocolMartin Mares
state machines. Full explanation will follow soon.