]> git.ipfire.org Git - thirdparty/bird.git/log
thirdparty/bird.git
26 years agoRecognize site scope for IPv4 addresses (prefixes reserved for private
Martin Mares [Tue, 27 Apr 1999 16:03:17 +0000 (16:03 +0000)] 
Recognize site scope for IPv4 addresses (prefixes reserved for private
networks).

Removed old #ifndef logic which was used to avoid IPv4/IPv6 clashes
before conditionals in Modules lists were introduced.

26 years agoJust changes of comments.
Ondrej Filip [Tue, 27 Apr 1999 13:04:33 +0000 (13:04 +0000)] 
Just changes of comments.

26 years agoHello timer implemented.
Ondrej Filip [Tue, 27 Apr 1999 12:56:52 +0000 (12:56 +0000)] 
Hello timer implemented.

26 years agoWork on hello continues.
Ondrej Filip [Thu, 22 Apr 1999 13:12:28 +0000 (13:12 +0000)] 
Work on hello continues.

26 years agoUpdated filters: they now actually see IP/pxlen of net being filtered,
Pavel Machek [Mon, 19 Apr 1999 18:41:56 +0000 (18:41 +0000)] 
Updated filters: they now actually see IP/pxlen of net being filtered,
gateway, and who told us, so they can do usefull jobs from now on.

26 years agoSImplify code a tiny bit.
Pavel Machek [Wed, 14 Apr 1999 21:11:24 +0000 (21:11 +0000)] 
SImplify code a tiny bit.

26 years agoRedesigned struct ospf_iface & new struct ospf_sock.
Ondrej Filip [Wed, 14 Apr 1999 15:13:44 +0000 (15:13 +0000)] 
Redesigned struct ospf_iface & new struct ospf_sock.

26 years agoSmall bug fix in memcpy.
Ondrej Filip [Wed, 14 Apr 1999 12:47:18 +0000 (12:47 +0000)] 
Small bug fix in memcpy.

26 years agoMulticasts once again: When using SO_BINDTODEVICE, don't specify IP address
Martin Mares [Wed, 14 Apr 1999 12:29:47 +0000 (12:29 +0000)] 
Multicasts once again: When using SO_BINDTODEVICE, don't specify IP address
of the interface.

26 years agoNext attempt to get SO_BINDTODEVICE work :)
Martin Mares [Wed, 14 Apr 1999 11:39:07 +0000 (11:39 +0000)] 
Next attempt to get SO_BINDTODEVICE work :)

26 years agoUse SO_BINDTODEVICE if we're using old multicast API (i.e., struct ip_mreq
Martin Mares [Wed, 14 Apr 1999 11:21:02 +0000 (11:21 +0000)] 
Use SO_BINDTODEVICE if we're using old multicast API (i.e., struct ip_mreq
and not ip_mreqn). This should get multicasts on unnumbered PtP links work.

26 years agoA couple of OSPF fixes:
Martin Mares [Wed, 14 Apr 1999 11:09:55 +0000 (11:09 +0000)] 
A couple of OSPF fixes:

o  ((flags & IF_CHANGE_UP) == IF_CHANGE_UP)   ->   (flags & IF_CHANGE_UP)
o  bcopy  ->  memcpy   (bcopy is unportable)
o  Ifdeffed out add_tail(&(ifa->sk_list),NODE mcsk) -- the node in socket
   structure is for internal use by the resource manager only. (Now, the
   debugging dump of open sockets looks sane :-)).

26 years agoRemoved redeclaration of `idval', so that it compiles :)
Martin Mares [Wed, 14 Apr 1999 10:49:31 +0000 (10:49 +0000)] 
Removed redeclaration of `idval', so that it compiles :)

26 years agoAdded wait timer for eligible BCAST & NBMA interface.
Ondrej Filip [Tue, 13 Apr 1999 21:46:20 +0000 (21:46 +0000)] 
Added wait timer for eligible BCAST & NBMA interface.

26 years agoChange in ospf_iface. (My bad understanding of lists manipulation.)
Ondrej Filip [Tue, 13 Apr 1999 19:27:44 +0000 (19:27 +0000)] 
Change in ospf_iface. (My bad understanding of lists manipulation.)

26 years agoIPv6 changes.
Ondrej Filip [Tue, 13 Apr 1999 18:21:53 +0000 (18:21 +0000)] 
IPv6 changes.

26 years agoSets of IP addresses should work, now. (From now on it is also
Pavel Machek [Tue, 13 Apr 1999 11:40:04 +0000 (11:40 +0000)] 
Sets of IP addresses should work, now. (From now on it is also
possible to write if 1.2.3.4 < 1.2.3.5, but I'm not sure if it is good
for anything.)

26 years agoSmall change to stop using loopback.
Ondrej Filip [Tue, 13 Apr 1999 00:46:34 +0000 (00:46 +0000)] 
Small change to stop using loopback.

26 years agoA small init change to avoid core dump.
Ondrej Filip [Tue, 13 Apr 1999 00:24:05 +0000 (00:24 +0000)] 
A small init change to avoid core dump.

26 years agoNot all I mean serious. Almost everything will change.
Ondrej Filip [Mon, 12 Apr 1999 23:54:21 +0000 (23:54 +0000)] 
Not all I mean serious. Almost everything will change.
Changes: struct ospf_iface draft, various constants added...

26 years agoAdded ipa_compare as requested.
Martin Mares [Mon, 12 Apr 1999 20:26:06 +0000 (20:26 +0000)] 
Added ipa_compare as requested.

26 years agoSets of integers now actually work. Sets of IP will work as soon as
Pavel Machek [Mon, 12 Apr 1999 19:58:18 +0000 (19:58 +0000)] 
Sets of integers now actually work. Sets of IP will work as soon as
compare function is ready.

26 years agoIgnore alias interfaces (some day, we will treat them as pure secondary
Martin Mares [Mon, 12 Apr 1999 18:07:05 +0000 (18:07 +0000)] 
Ignore alias interfaces (some day, we will treat them as pure secondary
interface addresses).

26 years agoRemoved TOS support. This simplifies many things a lot.
Martin Mares [Mon, 12 Apr 1999 18:01:07 +0000 (18:01 +0000)] 
Removed TOS support. This simplifies many things a lot.

26 years agoCosmetic message fix.
Martin Mares [Mon, 12 Apr 1999 17:27:21 +0000 (17:27 +0000)] 
Cosmetic message fix.

26 years agoUse $(CC) instead of gcc even when generating dependencies.
Martin Mares [Mon, 12 Apr 1999 17:21:11 +0000 (17:21 +0000)] 
Use $(CC) instead of gcc even when generating dependencies.

26 years agoOops, a typo in previous struct ip_mreqn changes...
Martin Mares [Mon, 12 Apr 1999 17:20:50 +0000 (17:20 +0000)] 
Oops, a typo in previous struct ip_mreqn changes...

26 years agoUse `struct ip_mreqn' instead of `struct ip_mreq' for multicast
Martin Mares [Mon, 12 Apr 1999 15:27:56 +0000 (15:27 +0000)] 
Use `struct ip_mreqn' instead of `struct ip_mreq' for multicast
operations on 2.1/2.2 kernels. This allows passing of real interface
indexes instead of referencing interfaces by their IP addresses which
fails badly in presence of unnumbered interfaces.

Unfortunately, this structure is not visible with glibc 2.0 as it provides
its own networking headers :-(  Both libc5 and glibc 2.1 should be OK.

26 years agoFixed a couple of bugs in handling of multicast sockets.
Martin Mares [Mon, 12 Apr 1999 14:57:46 +0000 (14:57 +0000)] 
Fixed a couple of bugs in handling of multicast sockets.

See comments in lib/socket.h for a detailed guide on how to use them.

26 years agoOops, typo.
Pavel Machek [Mon, 12 Apr 1999 12:07:15 +0000 (12:07 +0000)] 
Oops, typo.

26 years agoIn case no startup function is defined, don't try to launch it.
Pavel Machek [Mon, 12 Apr 1999 12:01:59 +0000 (12:01 +0000)] 
In case no startup function is defined, don't try to launch it.

26 years agoAdded new target "tags" to generate a tag table for Emacs.
Martin Mares [Sun, 11 Apr 1999 19:28:16 +0000 (19:28 +0000)] 
Added new target "tags" to generate a tag table for Emacs.

Also made "depend" work before the tree is compiled first time.

26 years agoDecrease number of warnings.
Pavel Machek [Sat, 10 Apr 1999 09:45:08 +0000 (09:45 +0000)] 
Decrease number of warnings.

26 years agoPortability fixes.
Martin Mares [Wed, 7 Apr 1999 14:25:56 +0000 (14:25 +0000)] 
Portability fixes.

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

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

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

26 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

26 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 `}'.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

26 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

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

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

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

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

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