Martin Mares
471cc0be65
Moved initlialization of protocol lists to global init. Argh.
2000-01-17 12:38:07 +00:00
Martin Mares
26368f656c
Don't forget changing proto->name to point to name in new configuration
...
(to avoid the name being freed with the old config).
Also remember to add proto_pipe to protocol_list.
2000-01-17 00:19:58 +00:00
Martin Mares
f14a4becbe
Reworked proto lists -- each proto is now in two lists: the global one
...
(proto_list) and per-type one (original lists). A lot of things simplified.
Implemented `disable', `enable' and `restart' CLI commands.
2000-01-16 23:30:06 +00:00
Martin Mares
30a6108ccc
Added filter_same() for comparision of two filters.
...
Pavel, please implement this as soon as possible.
2000-01-16 17:49:32 +00:00
Martin Mares
bf8558bc9c
Converted shutdown to a kind of reconfiguration, it's no more handled
...
as a exception in protocol state machines. Introduced a `shutdown'
CLI command. Killed few reconfiguration bugs.
2000-01-16 17:40:26 +00:00
Martin Mares
50fe90edf3
First attempt on dynamic reconfiguration. There are still lots of bugs
...
and problems to solve, but the hardest part works.
2000-01-16 16:44:50 +00:00
Martin Mares
0da472d7e8
Except for special protocols (nowadays only the kernel syncer), don't
...
export host and link scope routes.
1999-12-08 14:16:13 +00:00
Martin Mares
7c0cc76ed7
Moved initialization of protocol list to proto.c.
...
Added sysdep configuration hooks.
1999-12-06 13:44:45 +00:00
Martin Mares
02c1fbddd4
Added proto_get_named() to be used in CLI commands to get protocol instance
...
of a given protocol with optionally given name. See `show static' for an
example.
1999-12-03 11:40:45 +00:00
Martin Mares
9685deb910
`show protocols' now shows time of last state change and protocol-dependent
...
status information (obtained via newly introduced hook protocol->get_status).
1999-12-01 12:00:15 +00:00
Martin Mares
1d2664a4d4
Remember protocol instance in proto_config and use that for
...
`show protocols <name>'.
1999-11-30 14:04:09 +00:00
Martin Mares
0d3e6bceee
show interfaces' and
show protocols' works.
1999-11-30 12:57:14 +00:00
Martin Mares
ae97b946e9
Added few basic commands: show status, show interfaces [summary],
...
show protocols (incomplete).
1999-11-25 15:35:30 +00:00
Martin Mares
0d70292d88
Events now return a value. If it's non-zero, the event is re-queued
...
for processing in next event cycle. This can be used to prevent background
actions (hint: user commands) from hogging the CPU for too long time.
1999-10-29 12:08:49 +00:00
Martin Mares
9d8856897f
Protocol engine bug fixes:
...
o Make proto_config->table always point to the right
table even if it should be the default one.
o When shutting down, kill protocol in reverse order
of their priority.
o When stopping a protocol down, disconnect it from
routing tables immediately instead of waiting
for the delayed protocol flush event.
Also added a protocol instance counter (used by KRT code
in very magic ways).
1999-08-03 19:31:54 +00:00
Martin Mares
0e02abfd57
From now we support multiple tables. The master_table variable is
...
definitely gone. Both rte_update() and rte_discard() have an additional
argument telling which table should they modify.
Also, rte_update() no longer walks the whole protocol list -- each table
has a list of all protocols connected to this table and having the
rt_notify hook set. Each protocol can also freely decide (by calling
proto_add_announce_hook) to connect to any other table, but it will
be probably used only by the table-to-table protocol.
The default debugging dumps now include all routing tables and also
all their connections.
1999-05-17 20:14:52 +00:00
Martin Mares
5056c559c4
Changed syntax of attaching filters to protocols to hopefully the final
...
version:
EXPORT <filter-spec> for outbound routes (i.e., those announced
by BIRD to the rest of the world).
IMPORT <filter-spec> for inbound routes (i.e., those imported
by BIRD from the rest of the world).
where <filter-spec> is one of:
ALL pass all routes
NONE drop all routes
FILTER <name> use named filter
FILTER { <filter> } use explicitly defined filter
For all protocols, the default is IMPORT ALL, EXPORT NONE. This includes
the kernel protocol, so that you need to add EXPORT ALL to get the previous
configuration of kernel syncer (as usually, see doc/bird.conf.example for
a bird.conf example :)).
1999-04-05 20:15:31 +00:00
Martin Mares
5bc512aa3a
Clarify resource dumps and include them in the main debugging dump.
1999-03-29 20:14:33 +00:00
Martin Mares
7dc4827c96
Added everything protocols need to know about multiple routing tables,
...
i.e. struct proto now contains field 'table' pointing to routing table
the protocol is attached to. Use this instead of &master_table.
Modified all protocols except the kernel syncer to use this field.
1999-03-26 21:50:43 +00:00
Martin Mares
4ba84ebc82
Slightly better generator of default protocol instance names.
1999-03-26 21:37:29 +00:00
Martin Mares
529c414953
Allow input and output filters (only accept/reject style as we didn't define
...
modifying filters yet) to be attached to protocol instances.
1999-03-17 14:31:26 +00:00
Ondrej Filip
c1f8dc9149
Yes, joining the crew. Sorry for being late. Added dummy functions for OSPF.
1999-03-09 22:27:43 +00:00
Martin Mares
8fe48f1377
Initialize allocated struct proto :-)
1999-03-04 11:39:24 +00:00
Martin Mares
53b7a2982a
Fix several things I broke today.
1999-03-03 20:55:35 +00:00
Martin Mares
0e889c5254
Added a hack forcing protocols with priority>0 to be started up
...
immediately. Grrr, need to find a real solution some day.
1999-03-03 20:40:51 +00:00
Martin Mares
b2280748ad
Introduced protocol priority (all 'normal' protocols should use the
...
default zero priority). No more "kernel syncer initialized before
device routes" problems.
1999-03-03 19:33:54 +00:00
Martin Mares
783f8b689a
When protocols go down, prune the neighbor list.
1999-02-13 20:55:08 +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
1a54b1c6ac
Implemented real cleanup and pruning of routing table on protocol shutdown.
1999-02-13 19:15:28 +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
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
18fff6a197
Initialize only protocols which are compiled in :)
1999-01-10 00:26:11 +00:00
Martin Mares
66efdf962a
Handle disabled protocol instances.
1998-11-29 22:01:33 +00:00
Martin Mares
fe7cec12e8
Replaced nest/confile.h by conf/conf.h, added a lot of new definitions.
1998-11-27 19:35:10 +00:00
Martin Mares
f184ea6f7e
Proto struct now contain (down | starting | up) state.
1998-10-19 17:45:29 +00:00
Martin Mares
3629bcf0c7
Preconfig, postconfig and init hooks can be NULL.
1998-10-18 12:26:02 +00:00
Martin Mares
0432c0173b
Split protocol init to building of protocol list and real protocol init.
...
Added kernel route table syncer skeleton.
1998-10-18 11:53:21 +00:00
Martin Mares
47b793064c
Solve chicken-and-egg problems with protocol startup. We now queue all inactive
...
protocols and don't send route/interface updates to them and when they come up,
we resend the whole route/interface tables privately.
Removed the "scan interface list after protocol start" work-around.
1998-10-17 11:05:18 +00:00
Pavel Machek
87d2be86e5
Adding proto_dump_all() function
1998-07-09 19:36:52 +00:00
Martin Mares
7f4a39886c
Basic protocol operations.
1998-06-03 08:38:53 +00:00
Martin Mares
ded3ee6ddd
protos_init, not proto_init.
1998-05-24 14:48:52 +00:00
Martin Mares
2326b001d6
Added routing table and routing attribute code.
1998-05-20 11:54:33 +00:00