Martin Mares
bcbd8cc3be
Interface logic changes:
...
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 17:28:06 +00:00
Martin Mares
25287d6f7e
Don't try to install static routes to disconnected neighbors.
1999-03-02 17:20:07 +00:00
Martin Mares
eab0d1e5e5
Latest changes broke out-of-tree compilation.
1999-03-02 16:39:41 +00:00
Pavel Machek
3d8ef0c9ef
I just don't like files enclosed in <>.
1999-03-02 13:15:35 +00:00
Martin Mares
e834074dd4
If we are compiling with debugging enabled and libefence is available,
...
link it to get debugging malloc.
1999-03-01 22:42:47 +00:00
Martin Mares
b982b6db2b
Implemented netlink protocol parsing functions. More to come tomorrow.
1999-03-01 22:31:27 +00:00
Martin Mares
b4b3b39e20
Added SK_MAGIC type sockets for internal use by system dependent code,
...
especially for netlink communication.
1999-03-01 22:30:33 +00:00
Pavel Machek
c748cdb9ec
Hopefully ended translating to new interface
1999-03-01 21:18:01 +00:00
Martin Mares
bdb95a21a4
Added skeletal version of Linux netlink interface. It doesn't work yet,
...
but the framework is there and I'll try finish it soon.
1999-03-01 20:17:46 +00:00
Martin Mares
ea3582a6f6
Include "config.h" instead of "autoconf.h" in all Modules lists to make defines
...
in the static portion of configuration includes available as well.
1999-03-01 20:15:14 +00:00
Martin Mares
1b769b08c1
Renamed struct rtattr to struct rta to make things more consistent and
...
avoid namespace clashes with <linux/rtnetlink.h>. Other files should
not be affected since they use 'rta' directly.
1999-03-01 20:13:54 +00:00
Martin Mares
025d14cd5a
Use traditional Unix route/iface interface only when CONFIG_NETLINK
...
is not defined. Also moved declarations of Unix iface logic to krt.h.
1999-03-01 19:05:58 +00:00
Martin Mares
12be9b8c18
Pruned the TODO list.
1999-03-01 17:51:29 +00:00
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