| Branch: | Revision:

iof-bird-daemon / nest @ ccdc3397

# Date Author Comment
ccdc3397 12/16/1999 12:59 PM Martin Mares

Avoid touching F_MODIFY, it no longer exists.

f545d387 12/09/1999 06:54 PM Martin Mares

Added universal locking mechanism which will solve problems
with protocols wanting to use the same port on the same interface
during reconfiguration time.

How to use locks: In the if_notify hook, just order locks for the
interfaces you want to work with and do the real socket opening after the...

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.

34350a52 12/06/1999 12:34 PM Martin Mares

Implemented echoing of log messages to CLI connections. Just try `echo all'.

f3792601 12/04/1999 11:28 PM Martin Mares

Don't forget to send an OK reply after dumping debug information.

305a01f5 12/04/1999 11:17 PM Martin Mares

Added DEBUG commands.

Removed CLI tests, real commands now serve as much better examples.

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

28e01f85 12/03/1999 11:10 AM Martin Mares

with the other commands.

430da60f 12/02/1999 02:04 PM Martin Mares

Implemented `show route where <condition>' command.

Pavel, please check my addition to filter/config.Y.

730f2e2c 12/01/1999 03:10 PM Martin Mares

Added dumping of routing tables (`show route'). This includes filtering.

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

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

f611f0ee 12/01/1999 03:07 PM Martin Mares

Reset temporary parser data before parsing, not afterwards. This enables
deferred CLI command handlers to store their temporary data in the CLI
parsing pool.

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

5954dcfa 12/01/1999 11:59 AM Martin Mares

Introduced new protocol-dependent integer field `aux' to struct neighbor.

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

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

f0474f20 11/30/1999 02:02 PM Martin Mares

Use TIME_INFINITY for initialization of password entries instead
of 2000000000 (BTW who wrote that???)

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

`show interfaces' and `show protocols' works.

10b5baae 11/30/1999 12:56 PM Martin Mares

Don't use continuation shortcuts until real client is written.

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

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

35793769 11/25/1999 03:34 PM Martin Mares

cli_msg() moved to cli.h, so that it can be used outside the parser.

774f1499 11/25/1999 12:01 PM Pavel Machek

Fix timeouts. Triggered updates are not done, yet.

8d24b689 11/18/1999 02:41 PM Martin Mares

Allow EA type to be set to 'undefined' which overrides all further definitons
of that EA in the same list and causes ea_find() to fail unless you add
EA_ALLOW_UNDEF to the second argument.

ea_sort (resp. ea_do_prune()) removes all undef'd attributes from the list....

da40b6f7 11/18/1999 01:42 PM Martin Mares


62a46395 11/17/1999 12:14 PM Martin Mares

Added some temporary examples of how to define CLI commands (search for CF_CLI).

To define a new command, just add a new rule to the gramar:
CF_CLI(COMMAND NAME, arguments, help-args, help-text) {
} ;
where <arguments> are appended to the RHS of the rule, <help-args> is the...

ffb59d24 11/17/1999 12:00 PM Martin Mares

Command line interface now works.

7d509304 11/15/1999 11:36 AM Martin Mares

An example of how to define enums.

2727bb7c 11/04/1999 01:29 PM Martin Mares

Renamed attr->attrs to attr->eattrs.

bc2fb680 10/31/1999 05:47 PM Martin Mares

Parse CLI commands. We use the same parser as for configuration files (because
we want to allow filter and similar complex constructs to be used in commands
and we should avoid code duplication), only with CLI_MARKER token prepended
before the whole input....

b9672a84 10/31/1999 03:43 PM Martin Mares

The CLI I/O functions work as desired.

7d3aab1c 10/29/1999 12:10 PM Martin Mares

First steps of the Command Line Interface: I/O routines.

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.

ac40c888 10/02/1999 10:44 AM Pavel Machek

Obvious bugs in authentication fixed.

d7975d26 08/03/1999 07:38 PM Martin Mares

Ouch, how could I write this?

dce26783 08/03/1999 07:36 PM Martin Mares

Basic support for IPv6. The system-dependent part doesn't work yet,
but the core routines are there and seem to be working.

o  lib/ipv6.[ch] written
o Lexical analyser recognizes IPv6 addresses and when in IPv6
mode, treats pure IPv4 addresses as router IDs....
9c11ec9e 08/03/1999 07:34 PM Martin Mares

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

8c943173 08/03/1999 07:33 PM Martin Mares

Allow announces of rte's to protocols in FS_FEEDING state.
Else, we would get chicken-egg problems in the table-to-table protocol.

7de45ba4 08/03/1999 07:33 PM Martin Mares

Kernel route syncer supports multiple tables.

The changes are just too extensive for lazy me to list them
there, but see the comment at the top of sysdep/unix/krt.c.
The code got a bit more ifdeffy than I'd like, though.

Also fixed a bunch of FIXME's and added a couple of others. :)

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...
8edf2361 08/03/1999 07:30 PM Martin Mares

Cleaned up handling of interface patterns:

o  Parsing of interface patterns moved to generic code,
introduced this_ipatt which works similarly to this_iface.
o Interface patterns now support selection by both interface
names and primary IP addresses....
2e6197d6 05/31/1999 07:15 PM Pavel Machek

Added password_strncpy() which pads destination with zeros.

9c9e49ac 05/31/1999 07:15 PM Pavel Machek

Added extended attributes for rip.

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.

900d5470 05/31/1999 05:12 PM Pavel Machek

Added PASSIVE option to paswwords.

858a7177 05/26/1999 02:37 PM Pavel Machek

Change format of passwords (less ;'s) and fix password.h to allow
multiple inclusions.

1a2ded45 05/26/1999 02:24 PM Pavel Machek

Skeleton for password handling, currently I only build structures and
do nothing more advanced for them

4f1a6d27 05/17/1999 08:16 PM Martin Mares

Kill remaining master_table relics in KRT code.

Make all protocols pass routing table to rte_update and rte_discard.

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

a2697f02 05/07/1999 01:46 PM Martin Mares

Netlink support for secondary interface addresses.

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

08e2d625 04/12/1999 06:01 PM Martin Mares

Removed TOS support. This simplifies many things a lot.

e2dc2f30 04/05/1999 08:25 PM Martin Mares

Routing table core changes to support full route filtering:

o Introduced rte_cow() which should be used for copying on write the
rte's in filters. Each rte now carries a flag saying whether it's
a real route (possessing table linkage and other insignia) or a local...

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
5056c559 04/05/1999 08:15 PM Martin Mares

Changed syntax of attaching filters to protocols to hopefully the final

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)....
c10421d3 04/03/1999 01:05 PM Martin Mares

More changes to the kernel syncer.

o Now compatible with filtering.
o Learning of kernel routes supported only on CONFIG_SELF_CONSCIOUS
systems (on the others it's impossible to get it semantically correct).
o Learning now stores all of its routes in a separate fib and selects...

69ec9087 04/03/1999 01:01 PM Martin Mares

Added new protocol hook for dumping of protocol-dependent route

Please implement in all protocols.

5bc512aa 03/29/1999 08:14 PM Martin Mares

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

7f400d1c 03/29/1999 07:04 PM Martin Mares

After today's lengthy discussions about filter syntax, let's clean up
whitespace/semicolon rules for whole config file:

o  All non-zero amounts of whitespace are equivalent to single space
(aka `all the whitespace has been born equal' ;-)).
o Comments count as whitespace....
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.

7e5f5ffd 03/26/1999 09:44 PM Martin Mares

Moved to a much more systematic way of configuring kernel protocols.

o  Nothing is configured automatically. You need to specify
the kernel syncer in config file in order to get it started.
o Syncing has been split to route syncer (protocol "Kernel") and...
739ebd8e 03/26/1999 09:38 PM Martin Mares

Allow different instances of the same protocol with identical preferences.

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

Slightly better generator of default protocol instance names.

b5239f22 03/26/1999 09:33 PM Martin Mares

Don't try to manipulate neighbor lists for copied interface structures.
This avoids few nasty references to free memory.

421838ff 03/17/1999 03:01 PM Martin Mares

rte_update: Check sanity of incoming entries. Throw out (and log) all routes
to bogus prefixes and non-local routes to host scope addresses.

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

b77ae37d 03/17/1999 01:09 PM Martin Mares

Implemented extended route attributes and all related functions.

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

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

e16155ae 03/04/1999 06:36 PM Martin Mares

KRT: Implemented asynchronous route / interface state notifications
(via Netlink). Tweaked kernel synchronization rules a bit. Discovered
locking bug in kernel Netlink :-)

Future plans: Hunt all the bugs and solve all the FIXME's.

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

Initialize allocated struct proto :-)

51ad41f2 03/03/1999 08:56 PM Martin Mares

EFence helped to find using of already free rte's in rt_prune().

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.

e35ef181 03/02/1999 06:36 PM Martin Mares

o The if_change_too_big_p change was too high-spirited. Fixed.
o Introduced if_find_by_index()
o Recognizing two types of interface updates: full update (starting with
if_start_update(), ending with if_end_update(), guaranteed to see
all existing interfaces) and a partial update (only if_update(),...

bcbd8cc3 03/02/1999 05:28 PM Martin Mares

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

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.

d1f7eab6 02/13/1999 09:58 PM Martin Mares

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

5996da6a 02/13/1999 09:29 PM Martin Mares

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

3fb4ca2c 02/13/1999 08:57 PM Martin Mares

Don't send any neighbor notifications to protocols being flushed.

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

When protocols go down, prune the neighbor list.

0a2e9d9f 02/13/1999 08:19 PM Martin Mares

Moved sanity check of protocol state during annoucements to rte_announce.

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.

2569bc40 02/13/1999 07:13 PM Martin Mares

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

4e9498cb 02/13/1999 06:42 PM Martin Mares

config->router_id works again.

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.

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.

77cedad1 01/12/1999 04:41 PM Pavel Machek

Keep protocol data out of iface_patt.

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

Initialize only protocols which are compiled in :)

49e7e5ee 01/10/1999 12:18 AM Martin Mares

New makefiles. Includes support for out-of-source-tree builds.

1d7c44b7 12/22/1998 07:20 PM Pavel Machek

Oops, previous modification for passing NULL to fib_init() did not
compile :-(.

ce45fc12 12/22/1998 06:55 PM Pavel Machek

Allow NULL to init_fib().

08c69a77 12/20/1998 02:27 PM Martin Mares

die() -> bug() where appropriate.

e440395d 12/20/1998 02:01 PM Martin Mares

When printing a routing table, fib_check() it.

3ab001b9 12/20/1998 02:01 PM Martin Mares

Rewrote fib functions to make them insert/delete/asynchronous-walk safe.
This is implemented in a way similar to lib/slists.h, but it took some
more effort to make rehashing not disturb the readers. We do it by just
taking highest k bits of ipa_hash as our hash value and sorting each...

618533af 12/08/1998 06:30 PM Martin Mares

Added source RTS_DUMMY for temporary routes. They should never appear
in the main table.

04925e90 12/07/1998 09:59 PM Martin Mares

Minor rte/rta interface changes:

o  rte can now contain a pointer to both cached and uncached rta. Protocols
which don't need their own attribute caching can now just fill-in a rta,
link it to rte without any calls to attribute cache and call rte_update()...
12df4d90 12/07/1998 10:15 AM Martin Mares

KRF_* flags moved to krt.h as they are internal to kernel syncer,
fib->pad0,pad1 renamed to x0,x1 and in case of struct net x0 is reserved
for kernel syncing as well.