| Branch: | Revision:

iof-bird-daemon / nest / protocol.h @ 725270cb

History | View | Annotate | Download (9.48 KB)

# Date Author Comment
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.

08f0290a 05/13/2000 11:00 AM Martin Mares

Changed semantics of the rt_update hook. The attribute list we pass now
contains all attributes, not just the temporary ones. This avoids having
to merge the lists inside protocols or doing searches on both of them.

Also, do filtering of routes properly. (I'd like to avoid it, but it's...

ce1da96e 05/06/2000 10:57 PM Martin Mares

Added commands `show route protocol <p>' and `show route import <p>' which
show the routing table as exported to the protocol given resp. as returned
from its import control hook.

To get handling of filtered extended attributes right (even in the old
`show route where <filter>' command), the get_route_info hook gets an...

67be5b23 05/06/2000 09:21 PM Martin Mares

When rte_update is called for an identical route, don't announce anything.

Please implement the rte_same hook in your protocols. It should just
compare your metrics stored directly in rte, the rest is done by the core.

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

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

Bare skeleton of the BGP.

6a9f28b0 03/12/2000 08:50 PM Martin Mares

Added tracing of interface events.

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.

d272fe22 01/17/2000 11:52 AM Martin Mares

Separated `official protocol names' used in status dumps from name templates
used for automatic generation of instance names.

protocol->name is the official name
protocol->template is the name template (usually "name%d"),
should be all lowercase.

Updated all protocols to define the templates, checked that their configuration...

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.

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.

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

04a60c68 12/01/1999 03:08 PM Martin Mares

Added get_route_info and show_route_data hooks to struct protocol.
Please implement them.

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

9c11ec9e 08/03/1999 07:34 PM Martin Mares

Implemented a Table-to-Table protocol a.k.a The Pipe.

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...
bb027be1 05/31/1999 06:55 PM Martin Mares

Added extra argument to rt_update hook which contains a pointer to the
temporary attribute list.

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

9a158361 05/06/1999 09:38 PM Martin Mares

I rewrote the interface handling code, so that it supports multiple
addresses per interface (needed for example for IPv6 support).

Visible changes:

o struct iface now contains a list of all interface addresses (represented
by struct ifa), iface->addr points to the primary address (if any)....

9e0e485e 04/05/1999 08:17 PM Martin Mares

Added some new protocol hooks (look at the comments for better explanation):

make_tmp_attrs        Convert inline attributes to ea_list
store_tmp_attrs Convert ea_list to inline attributes
import_control Pre-import decisions
69ec9087 04/03/1999 01:01 PM Martin Mares

Added new protocol hook for dumping of protocol-dependent route

Please implement in all protocols.

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.

c612a3be 03/17/1999 01:13 PM Martin Mares

Removed the `rta_same' hook since it's no longer needed (all protocols
needing some local information should use extended attrs and cached

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

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

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.

1b769b08 03/01/1999 08:13 PM Martin Mares

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.

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

64011f89 02/11/1999 10:45 PM Martin Mares

struct proto again contains instance name (a copy of proto->cf->name).

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

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

a1bf6440 12/06/1998 06:21 PM Martin Mares

Added skeleton of static route protocol.

50d8424a 11/29/1998 10:03 PM Martin Mares

Added configuration of the device internal protocol. This is primarily
intended to serve as an example of interface pattern list use. As a side
effect, you can disable generating of device routes by disabling
this protocol.

bd5d0d62 11/29/1998 02:40 PM Martin Mares

Allow setting debug value and `disabled' flag in protocol definition.

acc62f5e 10/20/1998 03:17 PM Martin Mares

Insert/remove hooks return void, not int.

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

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

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.

5b22683d 10/18/1998 11:13 AM Martin Mares

After contemplating about RIP route timeouts for a long time, I've implemented
protocol callbacks for route insertion and deletion from the central table.
RIP should maintain its own per-protocol queue of existing routes, scan it
periodically and call rte_discard() for routes that have timed out.

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.

8c43696d 08/31/1998 09:13 PM Martin Mares

Route update hook now gets network prefix as well as updated
route attributes.

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

Adding proto_dump_all() function

a5f1a60e 06/03/1998 08:38 AM Martin Mares

Changed protocol declarations a bit.

4cc78c50 06/01/1998 09:41 PM Martin Mares

- Rewrote whole interface logic. Removed support for multiple addresses per
interface since it makes much trouble everywhere. Instead, we understand
secondary addresses as subinterfaces.

- In case interface addresses or basic flags change, we simply convert it...

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

Added routing table and routing attribute code.

a8b60382 05/03/1998 04:42 PM Martin Mares

Next attempt on data structures...

1feea03e 04/28/1998 02:39 PM Martin Mares

Changed #include <x/y> to #include "x/y" for our local includes, so that
gcc -MM can be used to separate them from the system ones.

Added automatic generation of dependencies.

58ef912c 04/22/1998 12:58 PM Martin Mares

First look at data structures. More to come tomorrow...