Statistics
| Branch: | Revision:

iof-bird-daemon / sysdep @ e48dae3e

# Date Author Comment
cd44b466 05/08/2000 02:24 PM Martin Mares

Forgot to add a spiky comment :)

f9254d23 05/08/2000 02:19 PM Martin Mares

Autoconf is evil. The sysconfdir and similar variables are unusable in
C includes as they contain substitutions specific to make.

Worked around by creating sysconf/paths.h which is created from
the Makefile instead of by the configure script.

818ff1e2 05/08/2000 12:38 PM Martin Mares

When reporting a bug(), call abort() instead of exit(), so that we
can analyse the core.

c304392e 05/08/2000 12:37 PM Martin Mares

Some less socket error messages.

9cbf43eb 05/08/2000 12:09 PM Martin Mares

Don't report refused connections.

b6c9d8eb 05/08/2000 12:05 PM Martin Mares

Removed the `async' switch which was used for debugging only anyway.

Don't moan when netlink reports lost packets.

94e935d8 05/08/2000 11:02 AM Martin Mares

Incoming buffer must be at least 8KB long.

916c8c0a 05/08/2000 10:40 AM Martin Mares

Use preferences properly.

1151401e 05/08/2000 10:38 AM Martin Mares

Don't crash when reporting deleted routes.

Set preferences correctly.

84f07002 05/06/2000 09:46 PM Martin Mares

IPv6 support compiles on both glibc 2.0 and 2.1.

ab1129c1 05/05/2000 05:17 PM Martin Mares

Added skeleton Doc files for the whole developer's documentation.

9a220cab 05/04/2000 08:52 PM Martin Mares

#ifdef out lots of debugging information.

The long resource/routing table dump printed upon startup is gone now
and if you wish to see it, just send bird SIGUSR1 or use the `debug'
commands.

93a786cb 05/04/2000 08:30 PM Martin Mares

Removed a lot of unused variables.

Please try compiling your code with --enable-warnings to see them. (The
unused parameter warnings are usually bogus, the unused variable ones
are very useful, but gcc is unable to control them separately.)

2edb31b0 04/28/2000 03:11 PM Martin Mares

Split CF_HDR section to CF_HDR (only includes) and CF_DEFINES (defines,
C declarations etc.).

f75e3bbc 04/27/2000 10:35 PM Martin Mares

Fixed a couple of nasty CLI bugs which were triggered on long or multi-part
outputs. It took a whole evening to hunt them down, but now the CLI seems
to work fine.

Now I run three BGP connections with several thousand routes!

e1ddd993 04/26/2000 01:26 PM Martin Mares

Changed handling of incoming connections, so that we can send data
from the send hook without worrying about existence of socket buffers.

Also, don't forget to copy peer addresses.

0cadd5f5 04/26/2000 12:33 PM Martin Mares

Removed several FIXME's.

00c0c18a 04/25/2000 11:07 PM Martin Mares

Allow sk_close(NULL).

f380aa60 04/20/2000 11:05 PM Martin Mares

IPv6 compiles with glibc 2.1.

f2cb1d70 04/10/2000 12:38 PM Martin Mares

Dropped CPU_NEEDS_ALIGN_* as unaligned.h no longer uses them.

3991d84e 04/01/2000 10:19 AM Martin Mares

Changed initialization of protocol list -- now we call proto_build() instead
of calling the protocols manually.

Implemented printing of dynamic attributes in `show route all'.

Each protocol can now register its own attribute class (protocol->attr_class,...

a37410cb 03/31/2000 11:33 PM Martin Mares

Use bsprintf() instead of sprintf().

221135d6 03/31/2000 11:30 PM Martin Mares

Include "lib/string.h" instead of <string.h>. It should give us bzero()
and other non-portable functions on all systems.

320f4173 03/30/2000 10:43 AM Martin Mares

Defined sk_close() which closes the socket safely even if called from
socket hook. Replaces the SK_DELETED hack.

Squashed a couple of bugs in handling of TCP sockets.

1cf716f0 03/20/2000 09:49 PM Martin Mares

Handle EINPROGRESS properly.

Set IP_DONTROUTE sockopt only if sk->ttl == 1.

f098e072 03/12/2000 10:53 PM Martin Mares

Fixed a bunch of FIXME's by removing them :)

7a88832e 03/12/2000 10:43 PM Martin Mares

Added tm_format_datetime().

a92bebe0 03/12/2000 09:58 PM Martin Mares

Yet another LOCAL_DEBUG turned off.

832fa033 03/12/2000 09:54 PM Martin Mares

Cleaned up debugging in kernel syncer. Netlink has still LOCAL_DEBUG
turned on, but after some testing I'll gag it.

6b9fa320 03/12/2000 09:01 PM Martin Mares

Great cleanup of debug messages. LOCAL_DEBUG turned off in most modules,
several debug() calls converted to DBG.

c801e1fb 03/07/2000 08:09 PM Martin Mares

Renamed command `shutdown' to `down', so that `s' can be used as an
abbreviation for `show'.

b9626ec6 03/04/2000 10:21 PM Martin Mares

Garbage collector events and counters are now per table and one day
they can be made configurable if it turns out to be useful.

d07bab39 03/01/2000 11:29 AM Martin Mares

ipa_opposite hack is not applicable in IPv6.

6a636392 02/29/2000 11:19 PM Martin Mares

Rewrote interface type detection logic. The `unnumbered' flag is now per
address, not per interface (hence it's ifa->flags & IA_UNNUMBERED) and
should be set reliably. IF_MULTIACCESS should be fixed now, but it isn't
wise to rely on it on interfaces configured with /30 prefix.

9fac310d 01/19/2000 03:07 PM Martin Mares

Put client on a stony ground. The whole client is going to be system-specific
(the current version UNIX-specific) anyway, so it's useless to try splitting it
to sysdep and generic part. Instead of this, configure script decides (based on
system type and user's wish) what (if any) client should be built and what...

3ea1ba63 01/18/2000 11:01 AM Martin Mares

Killed protocol->priority. Protocol startup should be clean and hack-free now.
It seems everything still works (except for disable/enable/restart which hangs
sometimes, but it's another story).

aa8761de 01/18/2000 10:39 AM Martin Mares

Kernel route syncer now supports dynamic reconfiguration. Also it doesn't
depend on the startup counter hack now and uses a zero-time timer instead
to make itself scheduled after normal protocol startup.

fb89b1a4 01/17/2000 12:40 PM Martin Mares

Removed point-to-point tunnel hack as it breaks ordinary PtP interfaces.
I'll find a better solution soon.

d272fe22 01/17/2000 11:52 AM Martin Mares

Separated `official protocol names' used in status dumps from name templates
used for automatic generation of instance names.

protocol->name is the official name
protocol->template is the name template (usually "name%d"),
should be all lowercase.

Updated all protocols to define the templates, checked that their configuration...

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