Statistics
| Branch: | Revision:

iof-bird-daemon / nest / proto.c @ 11361a10

History | View | Annotate | Download (23.3 KB)

# Date Author Comment
11361a10 12/02/2009 09:19 PM Ondrej Zajicek

Implements route re-feed.

This can be used to re-feed routes to protocol after soft change in
export filters.

bf47fe4b 11/26/2009 07:47 PM Ondrej Zajicek

Implements BGP route refresh.

e04555c0 11/17/2009 02:45 PM Ondrej Zajicek

Implement description field of protocol.

4cdd0784 10/12/2009 09:31 PM Ondrej Zajicek

Implements protocol-specific router id and updates documentation.

ac07aacd 08/11/2009 09:03 AM Ondrej Zajicek

Replace assert with log.

Although it is true unless there is a bug in BIRD, this assert is not
needed (code below does not require that assumption), so we should not
crash.

bf1aec97 06/19/2009 09:49 PM Ondrej Zajicek

Adds support for soft reconfiguration.

925fe2d3 06/03/2009 11:22 PM Ondrej Zajicek

Implements route statistics and fixes some minor bugs.

b807ef9a 02/12/2009 12:43 PM Ondrej Zajicek

Fixes bug in protocol state machine

Scheduling flush must be done before resource pool freeing as it
frees some allocated list nodes from a global list.

d6a836f8 12/08/2008 11:24 AM Ondrej Zajicek

Fixes core state machine.

The core state machine was broken - it didn't free resources
in START -> DOWN transition and might freed resources after
UP -> STOP transition before protocol turned down. It leads
to deadlock on olock acquisition when lock was not freed...

fbde6c39 11/22/2008 12:12 AM Ondrej Zajicek

Fixes race condition leading to memory corruption and crash.

When protocol started, feeding was scheduled. If protocol
got down before feeding was executed, then function
responsible for connecting protocol to kernel routing
tables was called after the function responsible for...

7c103b1e 06/05/2004 09:10 AM Martin Mares

Marked unused parameters in core code as such.

2e9b2421 06/07/2000 12:29 PM Martin Mares

Spelling fixes to progdoc.

3c6269b8 06/02/2000 01:42 PM Martin Mares

Added documentation on protocols.

Protocol hooks deserve an extra chapter (to come soon).

caab3bb3 05/30/2000 09:23 PM Martin Mares

Better formatting of protocol status.

075898de 05/19/2000 06:03 PM Martin Mares

No more problems when protocols gets disabled during feeding.

ac5d8012 05/19/2000 10:46 AM Martin Mares

Asynchronous feeding of protocols.

df9f0fb3 05/16/2000 01:43 PM Martin Mares

Don't log state changes if nothing user-visible has changed.

498c3339 05/06/2000 09:42 PM Martin Mares

Cosmetic fixes.

93a786cb 05/04/2000 08:30 PM Martin Mares

Removed a lot of unused variables.

Please try compiling your code with --enable-warnings to see them. (The
unused parameter warnings are usually bogus, the unused variable ones
are very useful, but gcc is unable to control them separately.)

8f6accb5 04/27/2000 10:28 PM Martin Mares

Event handlers no longer return re-queue flag. Instead of using it, just
call ev_schedule() on the same handler which should work perfectly now.

ebd3720f 04/26/2000 12:30 PM Martin Mares

Fixed several bugs in protocol state machine. Reconfigurations and
restarts of BGP seem to work now.

41b26cfb 04/25/2000 09:56 PM Martin Mares

Don't forget to set filter pointers in struct proto when reconfiguring.

3991d84e 04/01/2000 10:19 AM Martin Mares

Changed initialization of protocol list -- now we call proto_build() instead
of calling the protocols manually.

Implemented printing of dynamic attributes in `show route all'.

Each protocol can now register its own attribute class (protocol->attr_class,...

221135d6 03/31/2000 11:30 PM Martin Mares

Include "lib/string.h" instead of <string.h>. It should give us bzero()
and other non-portable functions on all systems.

2638249d 03/19/2000 10:09 PM Martin Mares

Bare skeleton of the BGP.

f098e072 03/12/2000 10:53 PM Martin Mares

Fixed a bunch of FIXME's by removing them :)

6b9fa320 03/12/2000 09:01 PM Martin Mares

Great cleanup of debug messages. LOCAL_DEBUG turned off in most modules,
several debug() calls converted to DBG.

839380d7 03/07/2000 09:50 PM Martin Mares

Added debugging of protocol state transitions.

96d8e3bf 03/07/2000 08:49 PM Martin Mares

Added protocol debugging flags (protocol.h: D_xxx), parsing of them
in configuration files and commands for manipulating them.

Current debug message policy:

o  D_STATES, D_ROUTES and D_FILTERS are handled in generic code.
o Other debug flags should be handled in the protocols and whenever...
7293c5dd 03/01/2000 02:49 PM Martin Mares

Added proto->hash_key which contains randomly generated hash key used
for calculation of hash functions depending on proto.

3ea1ba63 01/18/2000 11:01 AM Martin Mares

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).

54aaa89a 01/18/2000 10:42 AM Martin Mares

protocol->startup_counter no longer exists.

471cc0be 01/17/2000 12:38 PM Martin Mares

Moved initlialization of protocol lists to global init. Argh.

26368f65 01/17/2000 12:19 AM Martin Mares

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.

f14a4bec 01/16/2000 11:30 PM Martin Mares

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.

30a6108c 01/16/2000 05:49 PM Martin Mares

Added filter_same() for comparision of two filters.

Pavel, please implement this as soon as possible.

bf8558bc 01/16/2000 05:40 PM Martin Mares

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.

50fe90ed 01/16/2000 04:44 PM Martin Mares

First attempt on dynamic reconfiguration. There are still lots of bugs
and problems to solve, but the hardest part works.

0da472d7 12/08/1999 02:16 PM Martin Mares

Except for special protocols (nowadays only the kernel syncer), don't
export host and link scope routes.

7c0cc76e 12/06/1999 01:44 PM Martin Mares

Moved initialization of protocol list to proto.c.

Added sysdep configuration hooks.

02c1fbdd 12/03/1999 11:40 AM Martin Mares

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.

9685deb9 12/01/1999 12:00 PM Martin Mares

`show protocols' now shows time of last state change and protocol-dependent
status information (obtained via newly introduced hook protocol->get_status).

1d2664a4 11/30/1999 02:04 PM Martin Mares

Remember protocol instance in proto_config and use that for
`show protocols <name>'.

0d3e6bce 11/30/1999 12:57 PM Martin Mares

`show interfaces' and `show protocols' works.

ae97b946 11/25/1999 03:35 PM Martin Mares

Added few basic commands: show status, show interfaces [summary],
show protocols (incomplete).

0d70292d 10/29/1999 12:08 PM Martin Mares

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.

9d885689 08/03/1999 07:31 PM Martin Mares

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...
0e02abfd 05/17/1999 08:14 PM Martin Mares

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...

5056c559 04/05/1999 08:15 PM Martin Mares

Changed syntax of attaching filters to protocols to hopefully the final
version:

EXPORT &lt;filter-spec&gt;    for outbound routes (i.e., those announced
by BIRD to the rest of the world).
IMPORT &lt;filter-spec&gt; for inbound routes (i.e., those imported
by BIRD from the rest of the world)....
5bc512aa 03/29/1999 08:14 PM Martin Mares

Clarify resource dumps and include them in the main debugging dump.

7dc4827c 03/26/1999 09:50 PM Martin Mares

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.

4ba84ebc 03/26/1999 09:37 PM Martin Mares

Slightly better generator of default protocol instance names.

529c4149 03/17/1999 02:31 PM Martin Mares

Allow input and output filters (only accept/reject style as we didn't define
modifying filters yet) to be attached to protocol instances.

c1f8dc91 03/09/1999 10:27 PM Ondrej Filip

Yes, joining the crew. Sorry for being late. Added dummy functions for OSPF.

8fe48f13 03/04/1999 11:39 AM Martin Mares

Initialize allocated struct proto :-)

53b7a298 03/03/1999 08:55 PM Martin Mares

Fix several things I broke today.

0e889c52 03/03/1999 08:40 PM Martin Mares

Added a hack forcing protocols with priority>0 to be started up
immediately. Grrr, need to find a real solution some day.

b2280748 03/03/1999 07:33 PM Martin Mares

Introduced protocol priority (all 'normal' protocols should use the
default zero priority). No more "kernel syncer initialized before
device routes" problems.

783f8b68 02/13/1999 08:55 PM Martin Mares

When protocols go down, prune the neighbor list.

f4aabcee 02/13/1999 08:15 PM Martin Mares

Perform gracious shutdown upon receipt of SIGTERM. Finally we can
test the whole protocol shutdown code... :)

1a54b1c6 02/13/1999 07:15 PM Martin Mares

Implemented real cleanup and pruning of routing table on protocol shutdown.

67bd949a 02/11/1999 10:59 PM Martin Mares

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.

31b3e1bb 02/05/1999 09:37 PM Martin Mares

Implemented new configuration/reconfiguration interface and defined protocol
state machines. Full explanation will follow soon.

18fff6a1 01/10/1999 12:26 AM Martin Mares

Initialize only protocols which are compiled in :)

66efdf96 11/29/1998 10:01 PM Martin Mares

Handle disabled protocol instances.

fe7cec12 11/27/1998 07:35 PM Martin Mares

Replaced nest/confile.h by conf/conf.h, added a lot of new definitions.

f184ea6f 10/19/1998 05:45 PM Martin Mares

Proto struct now contain (down | starting | up) state.

3629bcf0 10/18/1998 12:26 PM Martin Mares

Preconfig, postconfig and init hooks can be NULL.

0432c017 10/18/1998 11:53 AM Martin Mares

Split protocol init to building of protocol list and real protocol init.
Added kernel route table syncer skeleton.

47b79306 10/17/1998 11:05 AM Martin Mares

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.

87d2be86 07/09/1998 07:36 PM Pavel Machek

Adding proto_dump_all() function

7f4a3988 06/03/1998 08:38 AM Martin Mares

Basic protocol operations.

ded3ee6d 05/24/1998 02:48 PM Martin Mares

protos_init, not proto_init.

2326b001 05/20/1998 11:54 AM Martin Mares

Added routing table and routing attribute code.