Statistics
| Branch: | Revision:

iof-bird-daemon / sysdep @ f7fcb752

# Date Author Comment
f7fcb752 01/17/2000 11:17 AM Martin Mares

Reconfiguration for device protocol.

99278e10 01/16/2000 11:36 PM Martin Mares

Wording changes.

bf8558bc 01/16/2000 05:40 PM Martin Mares

Converted shutdown to a kind of reconfiguration, it's no more handled
as a exception in protocol state machines. Introduced a `shutdown'
CLI command. Killed few reconfiguration bugs.

50fe90ed 01/16/2000 04:44 PM Martin Mares

First attempt on dynamic reconfiguration. There are still lots of bugs
and problems to solve, but the hardest part works.

476e1084 12/16/1999 01:51 PM Martin Mares

Minor cleanups.

e693ddff 12/16/1999 01:23 PM Martin Mares

Handle cases when SIOCGIFINDEX is defined, but doesn't work (new glibc
with 2.0 kernels).

a2867cd9 12/16/1999 01:14 PM Martin Mares

Better order of includes.

set_inaddr() moved to sysio.h.

67ece6df 12/16/1999 01:06 PM Martin Mares

Tried to clean up multicast handling. Now we don't try to guess
multicast abilities depending on definedness of symbols and use hard-wired
system-dependent configuration defines instead.

Please test whereever you can.

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

30bc402e 12/08/1999 03:12 PM Martin Mares

Temporary work-arounds for multicast problems. Needs further investigation.

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.

dc82daaa 12/08/1999 01:20 PM Martin Mares

- Path to control socket is selectable via command-line option.
- die() when control socket open failed.

f78056fb 12/06/1999 01:51 PM Martin Mares

Allow logging to stderr as well.

a0c37b45 12/06/1999 01:45 PM Martin Mares

Logging is now configurable. You can define multiple log outputs (to both
files and syslog) and assign lists of message categories to each of them.

a9c986f9 12/06/1999 01:43 PM Martin Mares

Added tracked_fopen() which is a fopen registered in resource database.
Will be used for log files.

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

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

afa8937a 12/01/1999 11:59 AM Martin Mares

Added tm_format_reltime() for formatting of relative time quantities.

487d1afa 11/30/1999 02:01 PM Martin Mares

Moved TIME_INFINITY to timer.h, so that it's publicly available.

30770df2 11/17/1999 12:04 PM Martin Mares

If the main event queue is not empty, call select() with zero timeout, so
that the events are ran again after the FD's are checked. This allows us
to schedule I/O checks between processing of user commands.

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

Renamed attr->attrs to attr->eattrs.

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.

b93abffa 10/29/1999 12:09 PM Martin Mares

Implemented unix-domain sockets.

54165b13 10/29/1999 10:08 AM Martin Mares

Configure PATH_CONTROL_SOCKET.
autoconf.h is now written to obj/sysdep, the source tree is hopefully
completely read-only now.

ed608150 10/29/1999 09:44 AM Martin Mares

Added skeleton of the client. Does nothing, but at least compiles.

f782b72c 10/02/1999 11:06 AM Martin Mares

Failure to set socket TOS is not a fatal error.

f6519414 08/17/1999 08:47 PM Martin Mares

Added a function for generating 32-bit random numbers.

4532a89e 08/03/1999 07:37 PM Martin Mares

Taught Netlink how to behave in IPv6 world.

4f22c981 08/03/1999 07:36 PM Martin Mares

Support for IPv6 sockets. How nice one doesn't have to ifdef around
ten years of API evolution :-)

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

92730354 08/03/1999 07:30 PM Martin Mares

Changes to interface handling on traditional Unices:

o  Aliases are interpreted as secondary addresses.
o When the system doesn't supply interface indices, generate
our ones.
913f7dc9 08/03/1999 07:29 PM Martin Mares

Added functions for parsing and formatting of dates.

bd7f1081 06/01/1999 03:31 PM Martin Mares

Grrr, the "obvious fix" to multicasting code from yesterday was
fundamentally wrong. Reversed.

c7208da0 05/31/1999 08:28 PM Martin Mares

Fix potential multicasting bug.

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.

4b0d57e5 05/21/1999 02:29 PM Martin Mares

Added CONFIG_MULTIPLE_TABLES whereever appropriate.

1c3c9dce 05/21/1999 02:29 PM Martin Mares

Removed one unused structure field.

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.

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

4c5e5e3a 04/14/1999 12:29 PM Martin Mares

Multicasts once again: When using SO_BINDTODEVICE, don't specify IP address
of the interface.

1b50a1e4 04/14/1999 11:39 AM Martin Mares

Next attempt to get SO_BINDTODEVICE work :)

36154beb 04/14/1999 11:21 AM Martin Mares

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.

01bd7759 04/12/1999 06:07 PM Martin Mares

Ignore alias interfaces (some day, we will treat them as pure secondary
interface addresses).

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

Removed TOS support. This simplifies many things a lot.

61fb537c 04/12/1999 03:27 PM Martin Mares

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

5a99ade4 04/12/1999 02:57 PM Martin Mares

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.

49ed70b4 04/07/1999 02:25 PM Martin Mares

Portability fixes.

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

73c7bed1 04/03/1999 01:00 PM Martin Mares

Defined CONFIG_SELF_CONSCIOUS whenever the kernel scanner is able
to distinguish between our own routes and alien ones.

fe662dfd 04/02/1999 01:38 PM Martin Mares

Fixed `too many interfaces' cases.

0498d92f 04/02/1999 11:45 AM Pavel Machek

Believe it or not, printf()'s does not work too much without this one.

8cda9cdb 04/01/1999 07:23 PM Martin Mares

Argh, the fix was wrong.

e4241f24 04/01/1999 03:35 PM Martin Mares

Portability fixes.

abae6e9c 04/01/1999 03:33 PM Martin Mares

First few FreeBSD portability fixes.

fb71b23e 03/29/1999 08:33 PM Martin Mares

Remember that we can run device syncer without kernel syncer
and vice versa now.

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

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

3f2a21fd 03/29/1999 08:14 PM Martin Mares

Don't try to delete interface routes on CONFIG_AUTO_ROUTES systems.

f54801ff 03/29/1999 07:14 PM Martin Mares

Moved all system-dependent #include's containing endianity conversion
functions to sysdep header endian.h.

1127ac6e 03/27/1999 10:51 PM Martin Mares

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...
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...
f79a749d 03/24/1999 09:23 AM Martin Mares

Removed our declaration of RTPROT_BIRD since Alexey has assigned
us a real protocol number in 2.2.4 kernel.

111213f0 03/04/1999 07:00 PM Martin Mares

Fixed processing of !krt_capable() routes. Converted device route decisions
to the krt_capable mechanism as well.

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.

2253c9e2 03/04/1999 02:23 PM Martin Mares

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

f81dc856 03/04/1999 11:40 AM Martin Mares

Converted some mb_alloc/bzero pairs to mb_allocz.

7a2105be 03/04/1999 11:36 AM Martin Mares

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

aa645786 03/03/1999 08:57 PM Martin Mares

Netlink scans routes...

53b7a298 03/03/1999 08:55 PM Martin Mares

Fix several things I broke today.

2d140452 03/03/1999 07:49 PM Martin Mares

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)...
7972248d 03/02/1999 06:37 PM Martin Mares

Netlink module supports interface scan on startup. Working on more.

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

b982b6db 03/01/1999 10:31 PM Martin Mares

Implemented netlink protocol parsing functions. More to come tomorrow.

b4b3b39e 03/01/1999 10:30 PM Martin Mares

Added SK_MAGIC type sockets for internal use by system dependent code,
especially for netlink communication.

bdb95a21 03/01/1999 08:17 PM Martin Mares

Added skeletal version of Linux netlink interface. It doesn't work yet,
but the framework is there and I'll try finish it soon.

ea3582a6 03/01/1999 08:15 PM Martin Mares

Include "config.h" instead of "autoconf.h" in all Modules lists to make defines
in the static portion of configuration includes available as well.

025d14cd 03/01/1999 07:05 PM Martin Mares

Use traditional Unix route/iface interface only when CONFIG_NETLINK
is not defined. Also moved declarations of Unix iface logic to krt.h.

013a9b91 02/13/1999 08:46 PM Martin Mares

When shutting down, remove all routes (except for RTS_INHERIT and RTS_DEVICE
routes) from kernel routing tables unless the "persist" switch is set.

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

7f3d1a08 02/13/1999 07:57 PM Martin Mares

Squashed one bug in timing of route scans.

4c9dd1e4 02/13/1999 07:43 PM Martin Mares

Synchronize signals to the main select/event/timer loop.

Parse command line options.

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

config->router_id works again.

14dea0ed 02/11/1999 10:51 PM Martin Mares

Run the event queue before writing SIGUSR dumps.

e8f73195 02/11/1999 09:18 PM Martin Mares

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

ed245f96 02/05/1999 09:39 PM Martin Mares

Synced Linux sysdeps to new interface.

10d807d0 02/05/1999 09:38 PM Martin Mares

Synced kernel interface to new interface.

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

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

ca3d562b 01/15/1999 06:13 PM Pavel Machek

filters_init() renamed to filters_postconfig().

b9d70dc8 01/15/1999 04:49 PM Pavel Machek

Filters, second try. This time they have their own directory.

41183888 01/15/1999 02:40 PM Pavel Machek

Properly initialize filters. Also bumped version to 0.0.0 as it
actually does something.

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

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

2f9bcf97 01/09/1999 03:02 PM Martin Mares

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...
08c69a77 12/20/1998 02:27 PM Martin Mares

die() -> bug() where appropriate.

98e87c86 12/20/1998 02:24 PM Martin Mares

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

8e66a0eb 12/08/1998 06:37 PM Martin Mares

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...
f39e4713 12/08/1998 04:20 PM Martin Mares

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.

cdc6bfa7 12/07/1998 10:16 AM Martin Mares

Comparison of kernel reject routes fixed.