3ea1ba632b
Killed protocol->priority. Protocol startup should be clean and hack-free now.
...
It seems everything still works (except for disable/enable/restart which hangs
sometimes, but it's another story).
2000-01-18 11:01:03 +00:00
54aaa89ada
protocol->startup_counter no longer exists.
2000-01-18 10:42:45 +00:00
471cc0be65
Moved initlialization of protocol lists to global init. Argh.
2000-01-17 12:38:07 +00:00
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
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
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
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
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
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
7c0cc76ed7
Moved initialization of protocol list to proto.c.
...
Added sysdep configuration hooks.
1999-12-06 13:44:45 +00:00
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
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
1d2664a4d4
Remember protocol instance in proto_config and use that for
...
`show protocols <name>'.
1999-11-30 14:04:09 +00:00
0d3e6bceee
show interfaces' and
show protocols' works.
1999-11-30 12:57:14 +00:00
ae97b946e9
Added few basic commands: show status, show interfaces [summary],
...
show protocols (incomplete).
1999-11-25 15:35:30 +00:00
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
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
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
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
5bc512aa3a
Clarify resource dumps and include them in the main debugging dump.
1999-03-29 20:14:33 +00:00
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
4ba84ebc82
Slightly better generator of default protocol instance names.
1999-03-26 21:37:29 +00:00
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
c1f8dc9149
Yes, joining the crew. Sorry for being late. Added dummy functions for OSPF.
1999-03-09 22:27:43 +00:00
8fe48f1377
Initialize allocated struct proto :-)
1999-03-04 11:39:24 +00:00
53b7a2982a
Fix several things I broke today.
1999-03-03 20:55:35 +00:00
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
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
783f8b689a
When protocols go down, prune the neighbor list.
1999-02-13 20:55:08 +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
1a54b1c6ac
Implemented real cleanup and pruning of routing table on protocol shutdown.
1999-02-13 19:15:28 +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
31b3e1bbf5
Implemented new configuration/reconfiguration interface and defined protocol
...
state machines. Full explanation will follow soon.
1999-02-05 21:37:34 +00:00
18fff6a197
Initialize only protocols which are compiled in :)
1999-01-10 00:26:11 +00:00
66efdf962a
Handle disabled protocol instances.
1998-11-29 22:01:33 +00:00
fe7cec12e8
Replaced nest/confile.h by conf/conf.h, added a lot of new definitions.
1998-11-27 19:35:10 +00:00
f184ea6f7e
Proto struct now contain (down | starting | up) state.
1998-10-19 17:45:29 +00:00
3629bcf0c7
Preconfig, postconfig and init hooks can be NULL.
1998-10-18 12:26:02 +00:00
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
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
87d2be86e5
Adding proto_dump_all() function
1998-07-09 19:36:52 +00:00
7f4a39886c
Basic protocol operations.
1998-06-03 08:38:53 +00:00
ded3ee6ddd
protos_init, not proto_init.
1998-05-24 14:48:52 +00:00
2326b001d6
Added routing table and routing attribute code.
1998-05-20 11:54:33 +00:00