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
726141746b
'#' comments in config files are equivalent to end of line, therefore
...
also to implicit ';'.
1999-02-13 21:34:33 +00:00
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
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
3fb4ca2ce2
Don't send any neighbor notifications to protocols being flushed.
1999-02-13 20:57:47 +00:00
783f8b689a
When protocols go down, prune the neighbor list.
1999-02-13 20:55:08 +00:00
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
0a2e9d9f56
Moved sanity check of protocol state during annoucements to rte_announce.
1999-02-13 20:19:24 +00:00
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
7f3d1a0850
Squashed one bug in timing of route scans.
1999-02-13 19:57:19 +00:00
4c9dd1e4b9
Synchronize signals to the main select/event/timer loop.
...
Parse command line options.
1999-02-13 19:43:21 +00:00
1a54b1c6ac
Implemented real cleanup and pruning of routing table on protocol shutdown.
1999-02-13 19:15:28 +00:00
ab749558a2
Pass new argument to FIB_ITERATE_END.
1999-02-13 19:14:16 +00:00
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
4e9498cbb1
config->router_id works again.
1999-02-13 18:42:00 +00:00
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
14dea0ed25
Run the event queue before writing SIGUSR dumps.
1999-02-11 22:51:15 +00:00
64011f898c
struct proto again contains instance name (a copy of proto->cf->name).
1999-02-11 22:45:54 +00:00
3b15402fd4
Grrr, forgot to commit the event routines themselves :|
1999-02-11 22:18:36 +00:00
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
edf62ba13f
Propagate depend into all subdirectories; make rip compile after
...
latest mj's changes.
1999-02-08 22:50:32 +00:00
ed245f967f
Synced Linux sysdeps to new interface.
1999-02-05 21:39:21 +00:00
10d807d000
Synced kernel interface to new interface.
1999-02-05 21:38:50 +00:00
e9e3dc2659
Modified static router to use new interface.
1999-02-05 21:38:22 +00:00
31b3e1bbf5
Implemented new configuration/reconfiguration interface and defined protocol
...
state machines. Full explanation will follow soon.
1999-02-05 21:37:34 +00:00
c4c63eecc3
Added several parentheses to MIN/MAX macros.
1999-02-05 21:29:19 +00:00
292099d55f
Few fixes in parsing of filters
1999-02-03 12:28:16 +00:00
294c182eb1
Replaced the old ugly ipv6 compilation hack by a conditional in Modules.
1999-01-23 21:08:59 +00:00
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
ca3d562b24
filters_init() renamed to filters_postconfig().
1999-01-15 18:13:55 +00:00
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
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
e3a39a9ee7
Killed duplicate %type for expr.
1999-01-15 16:59:26 +00:00
ca6dfded2c
Make filters actually compiled.
1999-01-15 16:52:14 +00:00
b9d70dc84e
Filters, second try. This time they have their own directory.
1999-01-15 16:49:17 +00:00
b79f9215b9
Propagate "depend" target to real top-level Makefile.
1999-01-15 16:40:14 +00:00
489b6b5e00
#if 1 that creeped into cvs killed.
1999-01-15 16:13:51 +00:00
eeb05158ac
Be a tiny bit more verbose.
1999-01-15 14:42:55 +00:00
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
41183888ee
Properly initialize filters. Also bumped version to 0.0.0 as it
...
actually does something.
1999-01-15 14:40:50 +00:00
cceb3e7d2f
Fixed trivial bug in naming of `depend' file. Argh.
1999-01-12 20:36:18 +00:00
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
77cedad1f6
Keep protocol data out of iface_patt.
1999-01-12 16:41:34 +00:00
50e89a6ea2
Patterns expanded in the right way
1999-01-12 16:40:55 +00:00
18fff6a197
Initialize only protocols which are compiled in :)
1999-01-10 00:26:11 +00:00
b296730cb6
Few last-minute bug fixes.
1999-01-10 00:25:50 +00:00
49e7e5ee0b
New makefiles. Includes support for out-of-source-tree builds.
1999-01-10 00:18:32 +00:00
2f9bcf9713
First step of "autoconfization". Created a configure script which
...
guesses most system-dependent parameters and determines name of system
configuration file (sysdep/cf/...) with the remaining ones.
To compile BIRD, you now need to do:
autoconf # Create configure from configure.in
./configure # Run configure script
make # Compile everything
Configuration files:
sysdep/config.h Master config file
sysdep/autoconf.h Parameters determined by configure script
sysdep/cf/*.h Fixed system configuration we're unable
to guess.
Makefiles are still the original ones, but this will change soon.
1999-01-09 15:02:11 +00:00
6996f459c6
Bird now uses fib structure instead of linklist.
1998-12-22 19:41:04 +00:00
1d7c44b711
Oops, previous modification for passing NULL to fib_init() did not
...
compile :-(.
1998-12-22 19:20:43 +00:00