]> git.ipfire.org Git - thirdparty/bird.git/log
thirdparty/bird.git
26 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.

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

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

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

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

26 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

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

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

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

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

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

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

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

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

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

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

26 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 ';'.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

26 years agoGrrr, forgot to commit the event routines themselves :|
Martin Mares [Thu, 11 Feb 1999 22:18:36 +0000 (22:18 +0000)] 
Grrr, forgot to commit the event routines themselves :|

26 years agoAdded simple event scheduling system to avoid recursive calling
Martin Mares [Thu, 11 Feb 1999 21:18:26 +0000 (21:18 +0000)] 
Added simple event scheduling system to avoid recursive calling
of various callbacks.

Events are just another resource type objects (thus automatically freed
and unlinked when the protocol using them shuts down). Each event can
be linked in at most one event list. For most purposes, just use the
global event list handled by the following functions:

ev_schedule Schedule event to be called at the next event
scheduling point. If the event was already
scheduled, it's just re-linked to the end of the list.
ev_postpone Postpone an already scheduled event, so that it
won't get called. Postponed events can be scheduled
again by ev_schedule().

You can also create custom event lists to build your own synchronization
primitives. Just use:

ev_init_list to initialize an event list
ev_enqueue to schedule event on specified event list
ev_postpone works as well for custom lists
ev_run_list to run all events on your custom list
ev_run to run a specific event and dequeue it

26 years agoPropagate depend into all subdirectories; make rip compile after
Pavel Machek [Mon, 8 Feb 1999 22:50:32 +0000 (22:50 +0000)] 
Propagate depend into all subdirectories; make rip compile after
latest mj's changes.

26 years agoSynced Linux sysdeps to new interface.
Martin Mares [Fri, 5 Feb 1999 21:39:21 +0000 (21:39 +0000)] 
Synced Linux sysdeps to new interface.

26 years agoSynced kernel interface to new interface.
Martin Mares [Fri, 5 Feb 1999 21:38:50 +0000 (21:38 +0000)] 
Synced kernel interface to new interface.

26 years agoModified static router to use new interface.
Martin Mares [Fri, 5 Feb 1999 21:38:22 +0000 (21:38 +0000)] 
Modified static router to use new interface.

26 years agoImplemented new configuration/reconfiguration interface and defined protocol
Martin Mares [Fri, 5 Feb 1999 21:37:34 +0000 (21:37 +0000)] 
Implemented new configuration/reconfiguration interface and defined protocol
state machines. Full explanation will follow soon.

26 years agoAdded several parentheses to MIN/MAX macros.
Martin Mares [Fri, 5 Feb 1999 21:29:19 +0000 (21:29 +0000)] 
Added several parentheses to MIN/MAX macros.

26 years agoFew fixes in parsing of filters
Pavel Machek [Wed, 3 Feb 1999 12:28:16 +0000 (12:28 +0000)] 
Few fixes in parsing of filters

26 years agoReplaced the old ugly ipv6 compilation hack by a conditional in Modules.
Martin Mares [Sat, 23 Jan 1999 21:08:59 +0000 (21:08 +0000)] 
Replaced the old ugly ipv6 compilation hack by a conditional in Modules.

26 years agoFilter all `Modules' files through C preprocessor, so that they can
Martin Mares [Sat, 23 Jan 1999 21:08:36 +0000 (21:08 +0000)] 
Filter all `Modules' files through C preprocessor, so that they can
reference BIRD configuration.

By the way: Do you know GCC by default does `#define unix 1'?

26 years agofilters_init() renamed to filters_postconfig().
Pavel Machek [Fri, 15 Jan 1999 18:13:55 +0000 (18:13 +0000)] 
filters_init() renamed to filters_postconfig().

26 years agoOriginal `expr' is back, filter expressions renamed to `term'.
Martin Mares [Fri, 15 Jan 1999 18:04:28 +0000 (18:04 +0000)] 
Original `expr' is back, filter expressions renamed to `term'.

In the future, we'll allow any filter term in place of `expr' and we'll
just evaluate it immediately, but not now as we have no evaluation
routines.

26 years agoAdded bird.conf to .cvsignore and created an example configuration file.
Martin Mares [Fri, 15 Jan 1999 17:18:41 +0000 (17:18 +0000)] 
Added bird.conf to .cvsignore and created an example configuration file.

If you want to run bird now, just copy doc/bird.conf.example as bird.conf
and edit it to suit your needs.

26 years agoKilled duplicate %type for expr.
Martin Mares [Fri, 15 Jan 1999 16:59:26 +0000 (16:59 +0000)] 
Killed duplicate %type for expr.

26 years agoMake filters actually compiled.
Pavel Machek [Fri, 15 Jan 1999 16:52:14 +0000 (16:52 +0000)] 
Make filters actually compiled.

26 years agoFilters, second try. This time they have their own directory.
Pavel Machek [Fri, 15 Jan 1999 16:49:17 +0000 (16:49 +0000)] 
Filters, second try. This time they have their own directory.

26 years agoPropagate "depend" target to real top-level Makefile.
Martin Mares [Fri, 15 Jan 1999 16:40:14 +0000 (16:40 +0000)] 
Propagate "depend" target to real top-level Makefile.

26 years ago#if 1 that creeped into cvs killed.
Pavel Machek [Fri, 15 Jan 1999 16:13:51 +0000 (16:13 +0000)] 
#if 1 that creeped into cvs killed.

26 years agoBe a tiny bit more verbose.
Pavel Machek [Fri, 15 Jan 1999 14:42:55 +0000 (14:42 +0000)] 
Be a tiny bit more verbose.

26 years agoFilters added. They are unable to do anything interesting for now
Pavel Machek [Fri, 15 Jan 1999 14:41:51 +0000 (14:41 +0000)] 
Filters added. They are unable to do anything interesting for now
(with exception of printing integers to screen), but they exist.

26 years agoProperly initialize filters. Also bumped version to 0.0.0 as it
Pavel Machek [Fri, 15 Jan 1999 14:40:50 +0000 (14:40 +0000)] 
Properly initialize filters. Also bumped version to 0.0.0 as it
actually does something.

26 years agoFixed trivial bug in naming of `depend' file. Argh.
Martin Mares [Tue, 12 Jan 1999 20:36:18 +0000 (20:36 +0000)] 
Fixed trivial bug in naming of `depend' file. Argh.

26 years agoMake it compile again (stupid makefiles!), make quiet option work
Pavel Machek [Tue, 12 Jan 1999 16:50:38 +0000 (16:50 +0000)] 
Make it compile again (stupid makefiles!), make quiet option work
(multicast/broadcast options are currently unimplemented).

26 years agoKeep protocol data out of iface_patt.
Pavel Machek [Tue, 12 Jan 1999 16:41:34 +0000 (16:41 +0000)] 
Keep protocol data out of iface_patt.

26 years agoPatterns expanded in the right way
Pavel Machek [Tue, 12 Jan 1999 16:40:55 +0000 (16:40 +0000)] 
Patterns expanded in the right way

26 years agoInitialize only protocols which are compiled in :)
Martin Mares [Sun, 10 Jan 1999 00:26:11 +0000 (00:26 +0000)] 
Initialize only protocols which are compiled in :)

26 years agoFew last-minute bug fixes.
Martin Mares [Sun, 10 Jan 1999 00:25:50 +0000 (00:25 +0000)] 
Few last-minute bug fixes.

26 years agoNew makefiles. Includes support for out-of-source-tree builds.
Martin Mares [Sun, 10 Jan 1999 00:18:32 +0000 (00:18 +0000)] 
New makefiles. Includes support for out-of-source-tree builds.

26 years agoFirst step of "autoconfization". Created a configure script which
Martin Mares [Sat, 9 Jan 1999 15:02:11 +0000 (15:02 +0000)] 
First step of "autoconfization". Created a configure script which
guesses most system-dependent parameters and determines name of system
configuration file (sysdep/cf/...) with the remaining ones.

To compile BIRD, you now need to do:

autoconf # Create configure from configure.in
./configure # Run configure script
make # Compile everything

Configuration files:

sysdep/config.h Master config file
sysdep/autoconf.h Parameters determined by configure script
sysdep/cf/*.h Fixed system configuration we're unable
to guess.

Makefiles are still the original ones, but this will change soon.

26 years agoBird now uses fib structure instead of linklist.
Pavel Machek [Tue, 22 Dec 1998 19:41:04 +0000 (19:41 +0000)] 
Bird now uses fib structure instead of linklist.

26 years agoOops, previous modification for passing NULL to fib_init() did not
Pavel Machek [Tue, 22 Dec 1998 19:20:43 +0000 (19:20 +0000)] 
Oops, previous modification for passing NULL to fib_init() did not
compile :-(.

26 years agoAllow NULL to init_fib().
Pavel Machek [Tue, 22 Dec 1998 18:55:49 +0000 (18:55 +0000)] 
Allow NULL to init_fib().

26 years agolog(), die() and bug() messages shound NOT contain trailing newlines.
Martin Mares [Sun, 20 Dec 1998 14:29:06 +0000 (14:29 +0000)] 
log(), die() and bug() messages shound NOT contain trailing newlines.

26 years agodie() -> bug() where appropriate.
Martin Mares [Sun, 20 Dec 1998 14:27:37 +0000 (14:27 +0000)] 
die() -> bug() where appropriate.

26 years agoAdded #if 0 to rip_postconfig(), so that it doesn't crash whole daemon
Martin Mares [Sun, 20 Dec 1998 14:26:57 +0000 (14:26 +0000)] 
Added #if 0 to rip_postconfig(), so that it doesn't crash whole daemon
when RIP is unconfigured.

die() -> bug()

26 years agoFiner grained logging levels:
Martin Mares [Sun, 20 Dec 1998 14:24:35 +0000 (14:24 +0000)] 
Finer grained logging levels:

#define L_DEBUG "\001"   /* Debugging messages */
#define L_INFO "\002"    /* Informational messages */
#define L_WARN "\003"    /* Warnings */
#define L_ERR "\004"     /* Errors */
#define L_AUTH "\005"    /* Authorization failed etc. */
#define L_FATAL "\006"   /* Fatal errors */
#define L_TRACE "\002"   /* Protocol tracing */
#define L_INFO "\003"    /* Informational messages */
#define L_REMOTE "\004"  /* Remote protocol errors */
#define L_WARN "\004"    /* Local warnings */
#define L_ERR "\005"     /* Local errors */
#define L_AUTH "\006"    /* Authorization failed etc. */
#define L_FATAL "\007"   /* Fatal errors */
#define L_BUG "\010"     /* BIRD bugs */

Introduced bug() which is like die(), but with level L_BUG. Protocols
should _never_ call die() as it should be used only during initialization
and on irrecoverable catastrophic events like out of memory.

Also introduced ASSERT() which behaves like normal assert(), but it calls
bug() when assertion fails. When !defined(DEBUGGING), it gets ignored.

26 years agoWhen printing a routing table, fib_check() it.
Martin Mares [Sun, 20 Dec 1998 14:01:37 +0000 (14:01 +0000)] 
When printing a routing table, fib_check() it.

26 years agoRewrote fib functions to make them insert/delete/asynchronous-walk safe.
Martin Mares [Sun, 20 Dec 1998 14:01:20 +0000 (14:01 +0000)] 
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
box by whole ipa_hash().

Consult FIB_ITERATE_* macros in nest/route.h.

Implemented fib_check() debugging function and also rewrote the rehashing
algorithm to use better thresholds and not to waste time by rehashing
forth and back.

26 years agoNew hash functions according to benchmarks posted yesterday. (The IPv6
Martin Mares [Sun, 20 Dec 1998 13:57:49 +0000 (13:57 +0000)] 
New hash functions according to benchmarks posted yesterday. (The IPv6
version has not been benchmarked yet due to insufficient test data.)
Now ipa_hash() returns a uniformely distributed 16-bit value.

26 years agoImplemented deletion/insertion/asynchronous-walk lists.
Martin Mares [Sun, 20 Dec 1998 13:56:27 +0000 (13:56 +0000)] 
Implemented deletion/insertion/asynchronous-walk lists.
For example of their use, look at comments in lib/slists.h.

26 years agoVariance estimation fixed.
Martin Mares [Sat, 19 Dec 1998 21:53:28 +0000 (21:53 +0000)] 
Variance estimation fixed.

26 years agoAdded several tools for fib hashing function analysis. It turned out
Martin Mares [Sat, 19 Dec 1998 11:51:47 +0000 (11:51 +0000)] 
Added several tools for fib hashing function analysis. It turned out
we can use very simple function which is monotonic with respect
to re-hashing:

n ^= n >> 16;
n ^= n << 10;
h = (n >> (16 - o)) & ((1 << o) - 1);

where o is table order. Statistical analysis for both backbone routing
table and local OSPF routing tables gives values near theoretical
optimum for uniform distribution (see ips.c for formulae).

The trick is very simple: We always calculate a 16-bit hash value n and
use o most significant bits (this gives us monotonity wrt. rehashing
if we sort the chains by the value of n). The first shift/xor pair
reduces the IP address to a 16-bit one, the second pair makes higher
bits of the 16-bit value uniformly distributed even for tables containing
lots of long prefixes (typical interior routing case with 24-bit or even
longer prefixes).

26 years agodebug() -> DBG() in rip.
Pavel Machek [Wed, 9 Dec 1998 20:08:57 +0000 (20:08 +0000)] 
debug() -> DBG() in rip.

26 years agoInitial multicast support (can not work, but skeleton is there)
Pavel Machek [Wed, 9 Dec 1998 15:22:40 +0000 (15:22 +0000)] 
Initial multicast support (can not work, but skeleton is there)

26 years agoHopefully finished kernel syncer (krt) rewrite:
Martin Mares [Tue, 8 Dec 1998 18:37:58 +0000 (18:37 +0000)] 
Hopefully finished kernel syncer (krt) rewrite:

  o  Interface syncing is now a part of krt and it can have configurable
     parameters. Actually, the only one is scan rate now :)
  o  Kernel routing table syncing is now synchronized with interface
     syncing (we need the most recent version of the interface list
     to prevent lots of routes to non-existent destinations from
     appearing). Instead of its own timer, we just check if it's
     route scan time after each iface list scan.
  o  Syncing of device routes implemented.
  o  CONFIG_AUTO_ROUTES should control syncing of automatic device routes.
  o  Rewrote krt_remove_route() to really remove routes :)
  o  Better diagnostics.
  o  Fixed a couple of bugs.

26 years agoFixed a couple of bugs in static protocol. All static routes except device
Martin Mares [Tue, 8 Dec 1998 18:31:31 +0000 (18:31 +0000)] 
Fixed a couple of bugs in static protocol. All static routes except device
ones seem to work well.

26 years agoAdded source RTS_DUMMY for temporary routes. They should never appear
Martin Mares [Tue, 8 Dec 1998 18:30:35 +0000 (18:30 +0000)] 
Added source RTS_DUMMY for temporary routes. They should never appear
in the main table.

26 years agoRewritten kernel syncer. Now uses the rta trickery I've introduced yesterday
Martin Mares [Tue, 8 Dec 1998 16:20:13 +0000 (16:20 +0000)] 
Rewritten kernel syncer. Now uses the rta trickery I've introduced yesterday
and does things "the right way". Few things are still missing (device
routes etc.), I'll add them later in the evening.

26 years agoMinor rte/rta interface changes:
Martin Mares [Mon, 7 Dec 1998 21:59:15 +0000 (21:59 +0000)] 
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()
     which will replace rte->attrs by a cached copy.

  o  In order to support this, one of previously pad bytes in struct rta
     now holds new attribute flags (RTAF_CACHED). If you call rte_update()
     with uncached rta, you _must_ clear these flags. In other cases rta_lookup()
     sets it appropriately.

  o  Added rte_free() which is useful when you construct a rte and then the
     circumstances change and you decide not to use it for an update. (Needed
     for temporary rte's in kernel syncer...)

26 years agoComparison of kernel reject routes fixed.
Martin Mares [Mon, 7 Dec 1998 10:16:15 +0000 (10:16 +0000)] 
Comparison of kernel reject routes fixed.

26 years agoKRF_* flags moved to krt.h as they are internal to kernel syncer,
Martin Mares [Mon, 7 Dec 1998 10:15:42 +0000 (10:15 +0000)] 
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.

26 years agoAll static routes except for device ones should work and appear/disappear
Martin Mares [Sun, 6 Dec 1998 23:13:31 +0000 (23:13 +0000)] 
All static routes except for device ones should work and appear/disappear
when their destination comes on/off link. Deserves better testing :)

See example in bird.conf.

26 years agoRemoved protocol-specific data in rte for protocol static since no
Martin Mares [Sun, 6 Dec 1998 23:11:47 +0000 (23:11 +0000)] 
Removed protocol-specific data in rte for protocol static since no
such data ever existed.

26 years agoAesthetic fix for neighbor cache debug dump.
Martin Mares [Sun, 6 Dec 1998 23:11:18 +0000 (23:11 +0000)] 
Aesthetic fix for neighbor cache debug dump.

26 years agoAdded new rule for prefix length / netmask.
Martin Mares [Sun, 6 Dec 1998 23:10:45 +0000 (23:10 +0000)] 
Added new rule for prefix length / netmask.

26 years agocf_error() now accepts any format strings instead of just an error
Martin Mares [Sun, 6 Dec 1998 23:10:28 +0000 (23:10 +0000)] 
cf_error() now accepts any format strings instead of just an error
message. Also added extra kludge to get rid of collisions of REJECT
symbols.

26 years agoAdded skeleton of static route protocol.
Martin Mares [Sun, 6 Dec 1998 18:21:23 +0000 (18:21 +0000)] 
Added skeleton of static route protocol.

26 years agoKernel syncer is now configurable. It will probably need some more
Martin Mares [Sun, 6 Dec 1998 17:40:42 +0000 (17:40 +0000)] 
Kernel syncer is now configurable. It will probably need some more
options, but at least basic tuning is possible now.

26 years agoFixed bug in CF_ADDTO. How it's possible it has ever worked?
Martin Mares [Sun, 6 Dec 1998 17:39:08 +0000 (17:39 +0000)] 
Fixed bug in CF_ADDTO. How it's possible it has ever worked?

26 years agoAdded rule "bool" for boolean switches.
Martin Mares [Sun, 6 Dec 1998 17:38:42 +0000 (17:38 +0000)] 
Added rule "bool" for boolean switches.

26 years agoName cleanups as suggested by Pavel:
Martin Mares [Sun, 6 Dec 1998 11:59:18 +0000 (11:59 +0000)] 
Name cleanups as suggested by Pavel:

- cfg_strcpy() -> cfg_strdup()
- mempool -> linpool, mp_* -> lp_*  [to avoid confusion with memblock, mb_*]

Anyway, it might be better to stop ranting about names and do some *real* work.

26 years agoRip now has configurable per-interface metric (please rewiev), and few
Pavel Machek [Fri, 4 Dec 1998 11:45:51 +0000 (11:45 +0000)] 
Rip now has configurable per-interface metric (please rewiev), and few
more configurable parameters. To do that, union was added into iface_patt.

26 years agoInfinity is now configurable ammount.
Pavel Machek [Tue, 1 Dec 1998 16:17:10 +0000 (16:17 +0000)] 
Infinity is now configurable ammount.

26 years agoAdded configuration of the device internal protocol. This is primarily
Martin Mares [Sun, 29 Nov 1998 22:03:58 +0000 (22:03 +0000)] 
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.

26 years agoHandle disabled protocol instances.
Martin Mares [Sun, 29 Nov 1998 22:01:33 +0000 (22:01 +0000)] 
Handle disabled protocol instances.

26 years agoAdded functions for manipulating interface name pattern lists:
Martin Mares [Sun, 29 Nov 1998 22:01:03 +0000 (22:01 +0000)] 
Added functions for manipulating interface name pattern lists:

   o  iface_patt_match(list, iface) -- match interface against list
   o  iface_patts_equal(a, b, c) -- compare whether two pattern lists are
      equal or not. c(x,y) is called for comparison of protocol-dependent
      data.