Commit graph

3969 commits

Author SHA1 Message Date
Pavel Machek 293e313ec9 More rip fixes (config data moved to struct rip_proto_config), still
not tested.
1999-02-15 13:34:43 +00:00
Martin Mares b5fe3dc21c Cleaned up TODO file.
That's all for today, midnight gets closer.
1999-02-13 22:13:04 +00:00
Martin Mares 45090fecd9 Synced example config with new options. 1999-02-13 22:02:21 +00:00
Martin Mares d88e99a92a Implemented static device routes.
Expect for reconfiguration issues, the static protocol is complete now.
1999-02-13 21:59:48 +00:00
Martin Mares d1f7eab6b5 Parameter order for the proto->if_notify hook was different in the include
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 21:58:53 +00:00
Martin Mares 726141746b '#' comments in config files are equivalent to end of line, therefore
also to implicit ';'.
1999-02-13 21:34:33 +00:00
Martin Mares 5996da6a1d Implemented garbage collection of routing tables to delete orphaned network
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 21:29:01 +00:00
Martin Mares f4a0a64e02 Static protocol doesn't need any shutdown function. Everything gets
disposed by the core: neighbors, rte's, etc's...
1999-02-13 21:00:25 +00:00
Martin Mares 3fb4ca2ce2 Don't send any neighbor notifications to protocols being flushed. 1999-02-13 20:57:47 +00:00
Martin Mares 783f8b689a When protocols go down, prune the neighbor list. 1999-02-13 20:55:08 +00:00
Martin Mares 013a9b91fe When shutting down, remove all routes (except for RTS_INHERIT and RTS_DEVICE
routes) from kernel routing tables unless the "persist" switch is set.
1999-02-13 20:46:03 +00:00
Martin Mares 0a2e9d9f56 Moved sanity check of protocol state during annoucements to rte_announce. 1999-02-13 20:19:24 +00:00
Martin Mares f4aabcee62 Perform gracious shutdown upon receipt of SIGTERM. Finally we can
test the whole protocol shutdown code... :)
1999-02-13 20:15:36 +00:00
Martin Mares 7f3d1a0850 Squashed one bug in timing of route scans. 1999-02-13 19:57:19 +00:00
Martin Mares 4c9dd1e4b9 Synchronize signals to the main select/event/timer loop.
Parse command line options.
1999-02-13 19:43:21 +00:00
Martin Mares 1a54b1c6ac Implemented real cleanup and pruning of routing table on protocol shutdown. 1999-02-13 19:15:28 +00:00
Martin Mares ab749558a2 Pass new argument to FIB_ITERATE_END. 1999-02-13 19:14:16 +00:00
Martin Mares 2569bc4073 Fixed bug in FIB_ITERATE_END: it assumed the control variable is named
"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 19:13:51 +00:00
Martin Mares 4e9498cbb1 config->router_id works again. 1999-02-13 18:42:00 +00:00
Martin Mares 67bd949a52 Real implementation of protocol state machines. Delayed startup/shutdown
should work now. Initial feeding of protocols by interfaces/routes is
done from the event queue to prevent unwanted recursion.
1999-02-11 22:59:06 +00:00
Martin Mares 14dea0ed25 Run the event queue before writing SIGUSR dumps. 1999-02-11 22:51:15 +00:00
Martin Mares 64011f898c struct proto again contains instance name (a copy of proto->cf->name). 1999-02-11 22:45:54 +00:00
Martin Mares 3b15402fd4 Grrr, forgot to commit the event routines themselves :| 1999-02-11 22:18:36 +00:00
Martin Mares e8f73195fa Added simple event scheduling system to avoid recursive calling
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-11 21:18:26 +00:00
Pavel Machek edf62ba13f Propagate depend into all subdirectories; make rip compile after
latest mj's changes.
1999-02-08 22:50:32 +00:00
Martin Mares ed245f967f Synced Linux sysdeps to new interface. 1999-02-05 21:39:21 +00:00
Martin Mares 10d807d000 Synced kernel interface to new interface. 1999-02-05 21:38:50 +00:00
Martin Mares e9e3dc2659 Modified static router to use new interface. 1999-02-05 21:38:22 +00:00
Martin Mares 31b3e1bbf5 Implemented new configuration/reconfiguration interface and defined protocol
state machines. Full explanation will follow soon.
1999-02-05 21:37:34 +00:00
Martin Mares c4c63eecc3 Added several parentheses to MIN/MAX macros. 1999-02-05 21:29:19 +00:00
Pavel Machek 292099d55f Few fixes in parsing of filters 1999-02-03 12:28:16 +00:00
Martin Mares 294c182eb1 Replaced the old ugly ipv6 compilation hack by a conditional in Modules. 1999-01-23 21:08:59 +00:00
Martin Mares 2c2f67bd83 Filter all `Modules' files through C preprocessor, so that they can
reference BIRD configuration.

By the way: Do you know GCC by default does `#define unix 1'?
1999-01-23 21:08:36 +00:00
Pavel Machek ca3d562b24 filters_init() renamed to filters_postconfig(). 1999-01-15 18:13:55 +00:00
Martin Mares c9b6670608 Original expr' is back, filter expressions renamed to term'.
In the future, we'll allow any filter term in place of `expr' and we'll
just evaluate it immediately, but not now as we have no evaluation
routines.
1999-01-15 18:04:28 +00:00
Martin Mares 3169cf6991 Added bird.conf to .cvsignore and created an example configuration file.
If you want to run bird now, just copy doc/bird.conf.example as bird.conf
and edit it to suit your needs.
1999-01-15 17:18:41 +00:00
Martin Mares e3a39a9ee7 Killed duplicate %type for expr. 1999-01-15 16:59:26 +00:00
Pavel Machek ca6dfded2c Make filters actually compiled. 1999-01-15 16:52:14 +00:00
Pavel Machek b9d70dc84e Filters, second try. This time they have their own directory. 1999-01-15 16:49:17 +00:00
Martin Mares b79f9215b9 Propagate "depend" target to real top-level Makefile. 1999-01-15 16:40:14 +00:00
Pavel Machek 489b6b5e00 #if 1 that creeped into cvs killed. 1999-01-15 16:13:51 +00:00
Pavel Machek eeb05158ac Be a tiny bit more verbose. 1999-01-15 14:42:55 +00:00
Pavel Machek 72380a3447 Filters added. They are unable to do anything interesting for now
(with exception of printing integers to screen), but they exist.
1999-01-15 14:41:51 +00:00
Pavel Machek 41183888ee Properly initialize filters. Also bumped version to 0.0.0 as it
actually does something.
1999-01-15 14:40:50 +00:00
Martin Mares cceb3e7d2f Fixed trivial bug in naming of `depend' file. Argh. 1999-01-12 20:36:18 +00:00
Pavel Machek 663683a575 Make it compile again (stupid makefiles!), make quiet option work
(multicast/broadcast options are currently unimplemented).
1999-01-12 16:50:38 +00:00
Pavel Machek 77cedad1f6 Keep protocol data out of iface_patt. 1999-01-12 16:41:34 +00:00
Pavel Machek 50e89a6ea2 Patterns expanded in the right way 1999-01-12 16:40:55 +00:00
Martin Mares 18fff6a197 Initialize only protocols which are compiled in :) 1999-01-10 00:26:11 +00:00
Martin Mares b296730cb6 Few last-minute bug fixes. 1999-01-10 00:25:50 +00:00