| Branch: | Revision:

iof-bird-daemon / sysdep / linux @ 1bc26957

# Date Author Comment
1bc26957 05/10/2011 12:42 AM Ondrej Zajicek

Allows run with restricted privileges.

Adds option -u and -g to specify user and group.
When different user (than root) is specified,
linux capabilities CAP_NET_* are kept.

71ca7716 04/13/2011 10:32 AM Ondrej Zajicek

Adds support for several Linux kernel route attributes.

83696b39 03/29/2011 12:44 AM Ondrej Zajicek

Hide 6to4 route warnings.

52a43ae3 03/28/2011 08:46 PM Ondrej Zajicek

Minor changes in addresses.

Mainly changes IA_UNNUMBERED to IA_PEER and adds IA_HOST. Also do not
show broadcast addr in show interfaces. Nobody cares for that.

32b49728 12/07/2010 10:36 PM Ondrej Zajicek

Multipath support for linux kernel protocol.

01427d3f 11/19/2010 05:03 PM Ondrej Zajicek

Remove some runaway debug messages and typos.

f25cb0ef 11/11/2010 09:03 AM Ondrej Zajicek

Implements link state detection.

Also changes some symbol names (IFF_ADMIN_DOWN -> IFF_SHUTDOWN,

cfe34a31 07/05/2010 03:50 PM Ondrej Zajicek

Implements hostcache and recursive next hops.

Hostcache is a structure for monitoring changes in a routing table that
is used for routes with dynamic/recursive next hops. This is needed for
proper iBGP next hop handling.

691057f0 05/26/2010 02:09 PM Ondrej Zajicek

Support loopback/dummy addresses.

87a9abea 05/21/2010 01:17 PM Ondrej Zajicek

Fixes interface scan on Linux 2.4.x in IPv6 mode.

ba321706 04/27/2010 10:39 PM Ondrej Zajicek

Better support for /31 networks.

6bc414d6 04/19/2010 02:10 PM Ondrej Filip

It seems that prefixes /31 and /127 are valid and used in this strange world.

646b24d9 04/08/2010 03:45 PM Ondrej Zajicek

Minor changes.

c429d4a4 04/04/2010 01:41 PM Ondrej Zajicek

Restrict export of device routes to the kernel protocol.

In usual configuration, such export is already restricted
with the aid of the direct protocol but there are some
races that can circumvent it. This makes it harder to
break kernel device routes. Also adds an option to...

e7b09e4a 04/02/2010 02:11 PM Ondrej Zajicek

Use SO_BINDTODEVICE also in Linux/IPv6.

bed41728 04/02/2010 09:31 AM Ondrej Zajicek

Minor fixes to previous patches.

0aad2b92 03/14/2010 03:36 PM Ondrej Zajicek

Temporary OSPF commit - sockets.

54305181 03/11/2010 05:55 PM Ondrej Zajicek

Merge branch 'new' into socket2

ff2857b0 02/26/2010 09:55 AM Ondrej Zajicek

Many changes in (mainly) kernel syncers.

- BSD kernel syncer is now self-conscious and can learn alien routes
- important bugfix in BSD kernel syncer (crash after protocol restart)
- many minor changes and bugfixes in kernel syncers and neighbor cache
- direct protocol does not generate host and link local routes...

e81b440f 02/21/2010 01:34 PM Ondrej Zajicek

Fix configure to enable warnings and fix most of them.

353729f5 02/11/2010 09:23 AM Ondrej Zajicek

Temporary OSPF commit - socket changes.

3f22fa9e 11/09/2009 09:54 PM Ondrej Zajicek

Merge branch 'dev' into ospf3

9d4d38d1 10/28/2009 09:39 PM Ondrej Zajicek

Fixes some problems related to link-local routes in KRT interface.

bff74c7a 10/20/2009 05:04 PM Ondrej Zajicek

Allows importing 'onlink' routes.

aa7088fe 09/30/2009 02:34 PM Ondrej Zajicek

Fixes one previous commit.

2d507e64 09/24/2009 05:08 PM Ondrej Zajicek

Do not allow gateway routes with NULL iface.

be862406 09/08/2009 11:45 AM Ondrej Zajicek

Temporary OSPFv3 development commit.

Finally, it is working.

f9c799a0 09/04/2009 09:06 AM Ondrej Zajicek

Temporary OSPFv3 development commit (changing multicast support).

b49e6f5a 08/25/2009 02:42 PM Ondrej Zajicek

Temporary OSPFv3 development commit

86975e58 08/21/2009 07:43 AM Ondrej Zajicek

Allow more kernel routing tables in IPv6.

51f4469f 05/29/2009 03:36 PM Ondrej Zajicek

Fixes problems with rewriting of kernel device routes.

6c84554b 05/21/2009 07:26 AM Ondrej Zajicek

Merge branch 'master' into dev

19e10907 05/08/2009 12:37 PM Ondrej Zajicek

Fixes communication on netlink sockets

Independent sessions on netlink sockets mixed state
in some common variables.

2b70f074 05/04/2009 04:17 PM Ondrej Filip

Linux specific TCP-MD5 handling moved to sysdep/linux/sysio.h
FreeBSD coded added. BSD cannot set BGP passwords itself.
This has to be done by external command.

e366625c 04/17/2009 04:43 PM Ondrej Zajicek

Fixes mixed-up messages on netlink socket

Under specific circumstances there might be two mixed-up
netlink sessions (one for scan, the other for route change
request). This patch separates netlink scans and requests
to two fds (and seq counters).

This should fix

cb530392 02/26/2009 01:23 PM Ondrej Zajicek

Rate limit for most abundant log messages

11ec0f1a 01/16/2009 11:49 AM Ondrej Zajicek

Fixes compilation on older systems.

Older kernel headers (the ones in Debian Sarge) does not
have __kernel_sockaddr_storage .

6c8102e3 11/04/2008 01:51 PM Ondrej Zajicek

Ignore messages related to wireless extensions.

a98fbf0f 10/26/2008 11:20 PM Ondrej Zajicek

Merge branch 'dev' into out

4c94a6c7 10/26/2008 10:23 PM Ondrej Zajicek

Do not repeat 'Invalid broadcast address' error message.

'Invalid broadcast address' error is reported only once for
an interface and not during every interface scan.

d7f3b306 10/26/2008 10:20 PM Ondrej Zajicek

Ignore unknown netlink events.

Bird sometimes reported 'bird: nl_parse_link: Malformed message received'.
The cause is that bird asynchronously received netlink packet from
wireless driver about some wireless event on its link layer. In that
case bird shouldn't complain.

1567edea 10/26/2008 10:09 PM Ondrej Zajicek

Bugfix for routing table breaking bug.

Here is a patch fixing a bug that causes breakage of a local routing
table during shutdown of Bird. The problem was caused by shutdown
of 'device' protocol before shutdown of 'kernel' protocol. When
'device' protocol went down, the route (with local network prefix)...

d51aa281 10/26/2008 09:42 PM Ondrej Zajicek

Implementation of MD5 authentication of BGP sessions.

057021df 08/25/2008 11:19 AM Martin Mares

Fix behavior of ipa_opposite().

It was giving wrong results on /30 networks.

9831e591 06/05/2004 09:58 AM Martin Mares

Staticized lots of local functions.

6578a604 06/05/2004 09:11 AM Martin Mares

Marked unused parameters in sysdep code as such.

abf06173 02/22/2003 11:06 PM Martin Mares

Current Linux kernels don't remember rtm_protocol for IPv6 routes and supply RTPROT_BOOT instead.
Work around that.

8001948b 02/22/2003 10:38 PM Martin Mares

Report link-scope addresses as well.

5fc7c5c5 08/03/2001 08:44 AM Martin Mares

Don't loop forever when trying to skip an out-sequence netlink reply.

2836ce39 06/21/2000 09:58 AM Martin Mares

Check broadcast address sanity before believing it.

ca00d4a1 06/18/2000 07:49 PM Martin Mares

Fix numbering of routing tables in IPv6 version.

df49d4e1 06/04/2000 07:56 PM Martin Mares

Removed lots of trailing newlines in log messages.

Please note that the only calls which don't add newlines automatically
(i.e., don't print a full line of output) are debug() and DBG.

4a911501 06/01/2000 12:58 PM Martin Mares

Updated for new scope handling.

Also, provide proper address scopes in struct ifa.

0e5aa966 05/11/2000 04:30 PM Martin Mares

Multicast problems should be gone, although the fix is Linux only and we'll
need to figure out something better when working on new ports.

109c2f6c 05/11/2000 12:30 PM Martin Mares

If a broadcast address is missing, go fake one.

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.

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

IPv6 support compiles on both glibc 2.0 and 2.1.

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'

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

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

IPv6 compiles with glibc 2.1.

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.

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.

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.

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.

f7fcb752 01/17/2000 11:17 AM Martin Mares

Reconfiguration for device protocol.

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

Minor cleanups.

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.

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

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

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

Renamed attr->attrs to attr->eattrs.

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

Taught Netlink how to behave in IPv6 world.

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

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

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

Removed TOS support. This simplifies many things a lot.

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

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

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

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.

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

Netlink scans routes...

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.

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

Implemented netlink protocol parsing functions. More to come tomorrow.

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.

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.

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

Squashed one bug in timing of route scans.

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

Synced Linux sysdeps to new interface.

08c69a77 12/20/1998 02:27 PM Martin Mares

die() -> bug() where appropriate.

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.