]> git.ipfire.org Git - thirdparty/bird.git/log
thirdparty/bird.git
27 years agoPortability fixes.
Martin Mares [Wed, 7 Apr 1999 14:25:56 +0000 (14:25 +0000)] 
Portability fixes.

27 years agoFilters upgraded - a bit. Moved code to filter.c because it is where
Pavel Machek [Wed, 7 Apr 1999 12:11:08 +0000 (12:11 +0000)] 
Filters upgraded - a bit. Moved code to filter.c because it is where
it belongs. (f-util.c stays there for auxiliary and non-important things.)

27 years agoip_pton: Avoid modification of the string we're converting.
Martin Mares [Tue, 6 Apr 1999 21:31:03 +0000 (21:31 +0000)] 
ip_pton: Avoid modification of the string we're converting.

27 years agoRouting table core changes to support full route filtering:
Martin Mares [Mon, 5 Apr 1999 20:25:03 +0000 (20:25 +0000)] 
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
   copy. This function can be expected to be fast since its fast-path
   is inlined.
o  Introduced rte_update_pool which is a linear memory pool used for
   all temporary data during rte_update. You should not reference it directly
   -- instead use a pool pointer passed to all related functions.
o  Split rte_update to three functions:

rte_update The front end: handles all checking, inbound
filtering and calls rte_recalculate() for the
final version of the route.
rte_recalculate Update the table according to already filtered route.
rte_announce Announce routing table changes to all protocols,
passing them through export filters and so on.

   The interface has _not_ changed -- still call rte_update() and it will
   do the rest for you automagically.
o  Use new filtering semantics to be explained in a separate mail.

27 years agoAdded some new protocol hooks (look at the comments for better explanation):
Martin Mares [Mon, 5 Apr 1999 20:17:59 +0000 (20:17 +0000)] 
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

27 years agoChanged syntax of attaching filters to protocols to hopefully the final
Martin Mares [Mon, 5 Apr 1999 20:15:31 +0000 (20:15 +0000)] 
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 :)).

27 years agoSeveral filter changes. (Pavel, please check if they are OK.)
Martin Mares [Mon, 5 Apr 1999 20:10:31 +0000 (20:10 +0000)] 
Several filter changes. (Pavel, please check if they are OK.)

   o  Changed parameters of f_run. Changed rtein+rteout pair to rte pointer
      passed by reference, added ea_list of temporary attrs again passed
      by reference and finally added a pointer to memory pool for storing
      temporary data (new ea_lists's, temporary rta's etc.).
   o  Re-ordered result codes, so that all accepts come before all rejects.
   o  Introduced FILTER_ACCEPT and FILTER_REJECT dummy values (will be
      used in protocol configurations).
   o  Added filter_name() which returns name of a filter or ACCEPT/REJECT
      for the dummies.

27 years agoUse a more reasonable pool chunk size: 4080 bytes seem to be a good
Martin Mares [Mon, 5 Apr 1999 20:06:02 +0000 (20:06 +0000)] 
Use a more reasonable pool chunk size: 4080 bytes seem to be a good
approximation of a integral fraction of page size even if both malloc
overhead and chunk header space is counted.

27 years agoMore changes to the kernel syncer.
Martin Mares [Sat, 3 Apr 1999 13:05:18 +0000 (13:05 +0000)] 
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
   the ones the kernel really uses for forwarding packets.
o  Better treatment of CONFIG_AUTO_ROUTES ports.
o  Lots of internal changes.

27 years agoAdded new protocol hook for dumping of protocol-dependent route
Martin Mares [Sat, 3 Apr 1999 13:01:58 +0000 (13:01 +0000)] 
Added new protocol hook for dumping of protocol-dependent route
attributes.

Please implement in all protocols.

27 years agoDefined CONFIG_SELF_CONSCIOUS whenever the kernel scanner is able
Martin Mares [Sat, 3 Apr 1999 13:00:52 +0000 (13:00 +0000)] 
Defined CONFIG_SELF_CONSCIOUS whenever the kernel scanner is able
to distinguish between our own routes and alien ones.

27 years agoFixed `too many interfaces' cases.
Martin Mares [Fri, 2 Apr 1999 13:38:54 +0000 (13:38 +0000)] 
Fixed `too many interfaces' cases.

27 years agoBelieve it or not, printf()'s does not work too much without this one.
Pavel Machek [Fri, 2 Apr 1999 11:45:55 +0000 (11:45 +0000)] 
Believe it or not, printf()'s does not work too much without this one.

27 years agoArgh, the fix was wrong.
Martin Mares [Thu, 1 Apr 1999 19:23:59 +0000 (19:23 +0000)] 
Argh, the fix was wrong.

27 years agoPortability fixes.
Martin Mares [Thu, 1 Apr 1999 15:35:15 +0000 (15:35 +0000)] 
Portability fixes.

27 years agoFirst few FreeBSD portability fixes.
Martin Mares [Thu, 1 Apr 1999 15:33:52 +0000 (15:33 +0000)] 
First few FreeBSD portability fixes.

27 years agoUpdated the TODO list.
Martin Mares [Mon, 29 Mar 1999 20:46:00 +0000 (20:46 +0000)] 
Updated the TODO list.

27 years agoRemember that we can run device syncer without kernel syncer
Martin Mares [Mon, 29 Mar 1999 20:33:45 +0000 (20:33 +0000)] 
Remember that we can run device syncer without kernel syncer
and vice versa now.

27 years agoPlease don't commit debugging code which makes BIRD exit before anything
Martin Mares [Mon, 29 Mar 1999 20:28:25 +0000 (20:28 +0000)] 
Please don't commit debugging code which makes BIRD exit before anything
actually starts to happen. Grrr.

27 years agoPrefer `gm4' over `m4' (due to BSD et al.).
Martin Mares [Mon, 29 Mar 1999 20:26:32 +0000 (20:26 +0000)] 
Prefer `gm4' over `m4' (due to BSD et al.).

27 years agoUpdate of filters towards new interface.
Pavel Machek [Mon, 29 Mar 1999 20:21:28 +0000 (20:21 +0000)] 
Update of filters towards new interface.

27 years agoClarify resource dumps and include them in the main debugging dump.
Martin Mares [Mon, 29 Mar 1999 20:14:33 +0000 (20:14 +0000)] 
Clarify resource dumps and include them in the main debugging dump.

27 years agoDon't try to delete interface routes on CONFIG_AUTO_ROUTES systems.
Martin Mares [Mon, 29 Mar 1999 20:14:00 +0000 (20:14 +0000)] 
Don't try to delete interface routes on CONFIG_AUTO_ROUTES systems.

27 years agoAdded FIXME: If a strange interface appears, ignore it instead of only
Martin Mares [Mon, 29 Mar 1999 19:56:32 +0000 (19:56 +0000)] 
Added FIXME: If a strange interface appears, ignore it instead of only
writing an error message...

27 years agoAdded lp_flush() which flushes contents of a linear pool, leaving all the
Martin Mares [Mon, 29 Mar 1999 19:35:47 +0000 (19:35 +0000)] 
Added lp_flush() which flushes contents of a linear pool, leaving all the
memory available for subsequent allocations from the same pool. Both flushing
and re-using the memory costs just few instructions.

27 years agoMoved all system-dependent #include's containing endianity conversion
Martin Mares [Mon, 29 Mar 1999 19:14:43 +0000 (19:14 +0000)] 
Moved all system-dependent #include's containing endianity conversion
functions to sysdep header endian.h.

27 years ago#define NULL if not defined by system includes.
Martin Mares [Mon, 29 Mar 1999 19:13:36 +0000 (19:13 +0000)] 
#define NULL if not defined by system includes.

27 years agoAfter today's lengthy discussions about filter syntax, let's clean up
Martin Mares [Mon, 29 Mar 1999 19:04:14 +0000 (19:04 +0000)] 
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.
   o  Whitespace has no syntactic signifance (it can only separate lexical
      elements).
   o  Consequence: line ends are no longer treated as `;'s.
   o  Every declaration must be terminated by an explicit `;' unless
      or by a group enclosed in `{' and `}'.

27 years agoCleaned up system configuration files -- removed few obsolete parameters,
Martin Mares [Sat, 27 Mar 1999 22:51:05 +0000 (22:51 +0000)] 
Cleaned up system configuration files -- removed few obsolete parameters,
documented the remaining ones (sysdep/cf/README).

Available configurations:

   o  linux-20: Old Linux interface via /proc/net/route (selected by default
on pre-2.1 kernels).
   o  linux-21: Old Linux interface, but device routes handled by the
kernel (selected by default for 2.1 and newer kernels).
   o  linux-22: Linux with Netlink (I play with it a lot yet, so it isn't
a default).
   o  linux-ipv6: Prototype config for IPv6 on Linux. Not functional yet.

27 years agoAdded everything protocols need to know about multiple routing tables,
Martin Mares [Fri, 26 Mar 1999 21:50:43 +0000 (21:50 +0000)] 
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.

27 years agoMoved to a much more systematic way of configuring kernel protocols.
Martin Mares [Fri, 26 Mar 1999 21:44:38 +0000 (21:44 +0000)] 
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
     interface syncer (protocol "Device"), device routes are generated
     by protocol "Direct" (now can exist in multiple instances, so that
     it will be possible to feed different device routes to different
     routing tables once multiple tables get supported).

See doc/bird.conf.example for a living example of these shiny features.

27 years agoAllow different instances of the same protocol with identical preferences.
Martin Mares [Fri, 26 Mar 1999 21:38:02 +0000 (21:38 +0000)] 
Allow different instances of the same protocol with identical preferences.

27 years agoSlightly better generator of default protocol instance names.
Martin Mares [Fri, 26 Mar 1999 21:37:29 +0000 (21:37 +0000)] 
Slightly better generator of default protocol instance names.

27 years agoDon't compile OSPF by default.
Martin Mares [Fri, 26 Mar 1999 21:35:28 +0000 (21:35 +0000)] 
Don't compile OSPF by default.

27 years agoDon't try to manipulate neighbor lists for copied interface structures.
Martin Mares [Fri, 26 Mar 1999 21:33:36 +0000 (21:33 +0000)] 
Don't try to manipulate neighbor lists for copied interface structures.
This avoids few nasty references to free memory.

27 years agoRemoved our declaration of RTPROT_BIRD since Alexey has assigned
Martin Mares [Wed, 24 Mar 1999 09:23:34 +0000 (09:23 +0000)] 
Removed our declaration of RTPROT_BIRD since Alexey has assigned
us a real protocol number in 2.2.4 kernel.

27 years agorte_update: Check sanity of incoming entries. Throw out (and log) all routes
Martin Mares [Wed, 17 Mar 1999 15:01:07 +0000 (15:01 +0000)] 
rte_update: Check sanity of incoming entries. Throw out (and log) all routes
to bogus prefixes and non-local routes to host scope addresses.

27 years agoAllow input and output filters (only accept/reject style as we didn't define
Martin Mares [Wed, 17 Mar 1999 14:31:26 +0000 (14:31 +0000)] 
Allow input and output filters (only accept/reject style as we didn't define
modifying filters yet) to be attached to protocol instances.

27 years agoA couple of filter tweaks:
Martin Mares [Wed, 17 Mar 1999 14:29:39 +0000 (14:29 +0000)] 
A couple of filter tweaks:

   o  Introduced struct filter which serves as an external reference
      to filter. Using struct symbol for this is unwise since it doesn't
      allow extra information attached to the filter and it also forces
      all filters to be named.
   o  Implemented config rule 'filter' which matches either named filter
      or an embedded unnamed filter (`{ <filter> }').
   o  Fixed totally bogus comment at the top of filter.h.
   o  Added a missing prototype for f_run() to filter.h.

27 years agoRemoved the `rta_same' hook since it's no longer needed (all protocols
Martin Mares [Wed, 17 Mar 1999 13:13:18 +0000 (13:13 +0000)] 
Removed the `rta_same' hook since it's no longer needed (all protocols
needing some local information should use extended attrs and cached
rta's).

27 years agoImplemented extended route attributes and all related functions.
Martin Mares [Wed, 17 Mar 1999 13:09:09 +0000 (13:09 +0000)] 
Implemented extended route attributes and all related functions.

27 years agoInitialize pointers to functions so that code is actually alive.
Pavel Machek [Wed, 17 Mar 1999 13:05:25 +0000 (13:05 +0000)] 
Initialize pointers to functions so that code is actually alive.

27 years agoCompilation fix for mj.
Pavel Machek [Wed, 17 Mar 1999 13:04:33 +0000 (13:04 +0000)] 
Compilation fix for mj.

27 years agoDon't segfault on unknown interface.
Pavel Machek [Wed, 17 Mar 1999 10:20:23 +0000 (10:20 +0000)] 
Don't segfault on unknown interface.

27 years agoaccept & reject should now work
Pavel Machek [Wed, 17 Mar 1999 10:19:07 +0000 (10:19 +0000)] 
accept & reject should now work

27 years agoYes, joining the crew. Sorry for being late. Added dummy functions for OSPF.
Ondrej Filip [Tue, 9 Mar 1999 22:27:43 +0000 (22:27 +0000)] 
Yes, joining the crew. Sorry for being late. Added dummy functions for OSPF.

27 years agoResolved conflicts, you no longer need to wrap constants in const()
Pavel Machek [Tue, 9 Mar 1999 14:45:27 +0000 (14:45 +0000)] 
Resolved conflicts, you no longer need to wrap constants in const()

27 years agoAdded '=' to operator list
Pavel Machek [Tue, 9 Mar 1999 14:44:43 +0000 (14:44 +0000)] 
Added '=' to operator list

27 years agoFilters are now a tiny bit stronger (if is actually working ;-)
Pavel Machek [Mon, 8 Mar 1999 20:30:06 +0000 (20:30 +0000)] 
Filters are now a tiny bit stronger (if is actually working ;-)

27 years agoFixed processing of !krt_capable() routes. Converted device route decisions
Martin Mares [Thu, 4 Mar 1999 19:00:31 +0000 (19:00 +0000)] 
Fixed processing of !krt_capable() routes. Converted device route decisions
to the krt_capable mechanism as well.

27 years agoKRT: Implemented asynchronous route / interface state notifications
Martin Mares [Thu, 4 Mar 1999 18:36:18 +0000 (18:36 +0000)] 
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.

27 years agoAlthough there are still heaps of FIXME's, Netlink works.
Martin Mares [Thu, 4 Mar 1999 14:23:32 +0000 (14:23 +0000)] 
Although there are still heaps of FIXME's, Netlink works.

To build BIRD with Netlink support, just configure it with

./configure --with-sysconfig=linux-21

After it will be tested well enough, I'll probably make it a default
for 2.2 kernels (and rename it to linux-22 :)).

27 years agoConverted some mb_alloc/bzero pairs to mb_allocz.
Martin Mares [Thu, 4 Mar 1999 11:40:05 +0000 (11:40 +0000)] 
Converted some mb_alloc/bzero pairs to mb_allocz.

27 years agoInitialize allocated struct proto :-)
Martin Mares [Thu, 4 Mar 1999 11:39:24 +0000 (11:39 +0000)] 
Initialize allocated struct proto :-)

27 years agoUse dmalloc instead of EFence when available (dmalloc has lot of improvements
Martin Mares [Thu, 4 Mar 1999 11:36:26 +0000 (11:36 +0000)] 
Use dmalloc instead of EFence when available (dmalloc has lot of improvements
over EFence and also hopefully smaller memory overhead, but sadly it's non-free
for commercial use).

If the DMALLOC_OPTIONS environment variable is not set, switch on `reasonable'
checks by default.

Also introduced mb_allocz() for cleared mb_alloc().

27 years agoNetlink scans routes...
Martin Mares [Wed, 3 Mar 1999 20:57:29 +0000 (20:57 +0000)] 
Netlink scans routes...

27 years agoEFence helped to find using of already free rte's in rt_prune().
Martin Mares [Wed, 3 Mar 1999 20:56:33 +0000 (20:56 +0000)] 
EFence helped to find using of already free rte's in rt_prune().

27 years agoFix several things I broke today.
Martin Mares [Wed, 3 Mar 1999 20:55:35 +0000 (20:55 +0000)] 
Fix several things I broke today.

27 years agoAdded a hack forcing protocols with priority>0 to be started up
Martin Mares [Wed, 3 Mar 1999 20:40:51 +0000 (20:40 +0000)] 
Added a hack forcing protocols with priority>0 to be started up
immediately. Grrr, need to find a real solution some day.

27 years agoRewrote the kernel syncer. The old layering was horrible.
Martin Mares [Wed, 3 Mar 1999 19:49:56 +0000 (19:49 +0000)] 
Rewrote the kernel syncer. The old layering was horrible.

The new kernel syncer is cleanly split between generic UNIX module
and OS dependent submodules:

  -  krt.c (the generic part)
  -  krt-iface (low-level functions for interface handling)
  -  krt-scan (low-level functions for routing table scanning)
  -  krt-set (low-level functions for setting of kernel routes)

krt-set and krt-iface are common for all BSD-like Unices, krt-scan is heavily
system dependent (most Unices require /dev/kmem parsing, Linux uses /proc),
Netlink substitues all three modules.

We expect each UNIX port supports kernel routing table scanning, kernel
interface table scanning, kernel route manipulation and possibly also
asynchronous event notifications (new route, interface state change;
not implemented yet) and build the KRT protocol on the top of these
primitive operations.

27 years agoIntroduced protocol priority (all 'normal' protocols should use the
Martin Mares [Wed, 3 Mar 1999 19:33:54 +0000 (19:33 +0000)] 
Introduced protocol priority (all 'normal' protocols should use the
default zero priority). No more "kernel syncer initialized before
device routes" problems.

27 years agoAdd interface for running filters (please comment!), avoid bison warnings
Pavel Machek [Tue, 2 Mar 1999 19:49:28 +0000 (19:49 +0000)] 
Add interface for running filters (please comment!), avoid bison warnings

27 years agoAvoid segfault
Pavel Machek [Tue, 2 Mar 1999 19:49:22 +0000 (19:49 +0000)] 
Avoid segfault

27 years agoNetlink module supports interface scan on startup. Working on more.
Martin Mares [Tue, 2 Mar 1999 18:37:02 +0000 (18:37 +0000)] 
Netlink module supports interface scan on startup. Working on more.

27 years agoo The if_change_too_big_p change was too high-spirited. Fixed.
Martin Mares [Tue, 2 Mar 1999 18:36:09 +0000 (18:36 +0000)] 
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(),
   usually due to asynchronous interface notifications).

27 years agoInterface logic changes:
Martin Mares [Tue, 2 Mar 1999 17:28:06 +0000 (17:28 +0000)] 
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.
   It may be IF_IGNORED, though (as in case of the loopback).
o  Any changes which include up/down transition are considered small
   enough to not provoke artificial upping and downing of the interface.
o  When an interface disappears (i.e., it wasn't seen in the last scan),
   we announce this change only once.
o  IF_LOOPBACK implies IF_IGNORE.

27 years agoDon't try to install static routes to disconnected neighbors.
Martin Mares [Tue, 2 Mar 1999 17:20:07 +0000 (17:20 +0000)] 
Don't try to install static routes to disconnected neighbors.

27 years agoLatest changes broke out-of-tree compilation.
Martin Mares [Tue, 2 Mar 1999 16:39:41 +0000 (16:39 +0000)] 
Latest changes broke out-of-tree compilation.

27 years agoI just don't like files enclosed in <>.
Pavel Machek [Tue, 2 Mar 1999 13:15:35 +0000 (13:15 +0000)] 
I just don't like files enclosed in <>.

27 years agoIf we are compiling with debugging enabled and libefence is available,
Martin Mares [Mon, 1 Mar 1999 22:42:47 +0000 (22:42 +0000)] 
If we are compiling with debugging enabled and libefence is available,
link it to get debugging malloc.

27 years agoImplemented netlink protocol parsing functions. More to come tomorrow.
Martin Mares [Mon, 1 Mar 1999 22:31:27 +0000 (22:31 +0000)] 
Implemented netlink protocol parsing functions. More to come tomorrow.

27 years agoAdded SK_MAGIC type sockets for internal use by system dependent code,
Martin Mares [Mon, 1 Mar 1999 22:30:33 +0000 (22:30 +0000)] 
Added SK_MAGIC type sockets for internal use by system dependent code,
especially for netlink communication.

27 years agoHopefully ended translating to new interface
Pavel Machek [Mon, 1 Mar 1999 21:18:01 +0000 (21:18 +0000)] 
Hopefully ended translating to new interface

27 years agoAdded skeletal version of Linux netlink interface. It doesn't work yet,
Martin Mares [Mon, 1 Mar 1999 20:17:46 +0000 (20:17 +0000)] 
Added skeletal version of Linux netlink interface. It doesn't work yet,
but the framework is there and I'll try finish it soon.

27 years agoInclude "config.h" instead of "autoconf.h" in all Modules lists to make defines
Martin Mares [Mon, 1 Mar 1999 20:15:14 +0000 (20:15 +0000)] 
Include "config.h" instead of "autoconf.h" in all Modules lists to make defines
in the static portion of configuration includes available as well.

27 years agoRenamed struct rtattr to struct rta to make things more consistent and
Martin Mares [Mon, 1 Mar 1999 20:13:54 +0000 (20:13 +0000)] 
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.

27 years agoUse traditional Unix route/iface interface only when CONFIG_NETLINK
Martin Mares [Mon, 1 Mar 1999 19:05:58 +0000 (19:05 +0000)] 
Use traditional Unix route/iface interface only when CONFIG_NETLINK
is not defined. Also moved declarations of Unix iface logic to krt.h.

27 years agoPruned the TODO list.
Martin Mares [Mon, 1 Mar 1999 17:51:29 +0000 (17:51 +0000)] 
Pruned the TODO list.

27 years agoMore rip fixes (config data moved to struct rip_proto_config), still
Pavel Machek [Mon, 15 Feb 1999 13:34:43 +0000 (13:34 +0000)] 
More rip fixes (config data moved to struct rip_proto_config), still
not tested.

27 years agoCleaned up TODO file.
Martin Mares [Sat, 13 Feb 1999 22:13:04 +0000 (22:13 +0000)] 
Cleaned up TODO file.

That's all for today, midnight gets closer.

27 years agoSynced example config with new options.
Martin Mares [Sat, 13 Feb 1999 22:02:21 +0000 (22:02 +0000)] 
Synced example config with new options.

27 years agoImplemented static device routes.
Martin Mares [Sat, 13 Feb 1999 21:59:48 +0000 (21:59 +0000)] 
Implemented static device routes.

Expect for reconfiguration issues, the static protocol is complete now.

27 years agoParameter order for the proto->if_notify hook was different in the include
Martin Mares [Sat, 13 Feb 1999 21:58:53 +0000 (21:58 +0000)] 
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).

27 years ago'#' comments in config files are equivalent to end of line, therefore
Martin Mares [Sat, 13 Feb 1999 21:34:33 +0000 (21:34 +0000)] 
'#' comments in config files are equivalent to end of line, therefore
also to implicit ';'.

27 years agoImplemented garbage collection of routing tables to delete orphaned network
Martin Mares [Sat, 13 Feb 1999 21:29:01 +0000 (21:29 +0000)] 
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
done asynchronously.

27 years agoStatic protocol doesn't need any shutdown function. Everything gets
Martin Mares [Sat, 13 Feb 1999 21:00:25 +0000 (21:00 +0000)] 
Static protocol doesn't need any shutdown function. Everything gets
disposed by the core: neighbors, rte's, etc's...

27 years agoDon't send any neighbor notifications to protocols being flushed.
Martin Mares [Sat, 13 Feb 1999 20:57:47 +0000 (20:57 +0000)] 
Don't send any neighbor notifications to protocols being flushed.

27 years agoWhen protocols go down, prune the neighbor list.
Martin Mares [Sat, 13 Feb 1999 20:55:08 +0000 (20:55 +0000)] 
When protocols go down, prune the neighbor list.

27 years agoWhen shutting down, remove all routes (except for RTS_INHERIT and RTS_DEVICE
Martin Mares [Sat, 13 Feb 1999 20:46:03 +0000 (20:46 +0000)] 
When shutting down, remove all routes (except for RTS_INHERIT and RTS_DEVICE
routes) from kernel routing tables unless the "persist" switch is set.

27 years agoMoved sanity check of protocol state during annoucements to rte_announce.
Martin Mares [Sat, 13 Feb 1999 20:19:24 +0000 (20:19 +0000)] 
Moved sanity check of protocol state during annoucements to rte_announce.

27 years agoPerform gracious shutdown upon receipt of SIGTERM. Finally we can
Martin Mares [Sat, 13 Feb 1999 20:15:36 +0000 (20:15 +0000)] 
Perform gracious shutdown upon receipt of SIGTERM. Finally we can
test the whole protocol shutdown code... :)

27 years agoSquashed one bug in timing of route scans.
Martin Mares [Sat, 13 Feb 1999 19:57:19 +0000 (19:57 +0000)] 
Squashed one bug in timing of route scans.

27 years agoSynchronize signals to the main select/event/timer loop.
Martin Mares [Sat, 13 Feb 1999 19:43:21 +0000 (19:43 +0000)] 
Synchronize signals to the main select/event/timer loop.

Parse command line options.

27 years agoImplemented real cleanup and pruning of routing table on protocol shutdown.
Martin Mares [Sat, 13 Feb 1999 19:15:28 +0000 (19:15 +0000)] 
Implemented real cleanup and pruning of routing table on protocol shutdown.

27 years agoPass new argument to FIB_ITERATE_END.
Martin Mares [Sat, 13 Feb 1999 19:14:16 +0000 (19:14 +0000)] 
Pass new argument to FIB_ITERATE_END.

27 years agoFixed bug in FIB_ITERATE_END: it assumed the control variable is named
Martin Mares [Sat, 13 Feb 1999 19:13:51 +0000 (19:13 +0000)] 
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
clashes.

27 years agoconfig->router_id works again.
Martin Mares [Sat, 13 Feb 1999 18:42:00 +0000 (18:42 +0000)] 
config->router_id works again.

27 years agoReal implementation of protocol state machines. Delayed startup/shutdown
Martin Mares [Thu, 11 Feb 1999 22:59:06 +0000 (22:59 +0000)] 
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.

27 years agoRun the event queue before writing SIGUSR dumps.
Martin Mares [Thu, 11 Feb 1999 22:51:15 +0000 (22:51 +0000)] 
Run the event queue before writing SIGUSR dumps.

27 years agostruct proto again contains instance name (a copy of proto->cf->name).
Martin Mares [Thu, 11 Feb 1999 22:45:54 +0000 (22:45 +0000)] 
struct proto again contains instance name (a copy of proto->cf->name).