Statistics
| Branch: | Revision:

iof-bird-daemon / sysdep @ 153f02da

# Date Author Comment
153f02da 12/07/2017 12:06 PM Ondrej Zajicek (work)

Nest: Maintain separate IPv4, IPv6 and LLv6 preferred addresses

Also redesign preferred address selection and update protocols to use
appropriate preferred address.

Based on a previous work by Jan Maria Matejka.

a1f5e514 07/04/2017 09:36 PM Ondrej Zajicek (work)

Implement onlink flag for nexthops

Add proper support for per-nexthop onlink flag in routes to handle next
hop addresses that are not covered by interface IP ranges. Supported by
kernel and static protocols.

Thanks to Vincent Bernat for the idea.

734e9fb8 05/23/2017 11:12 AM Ondrej Zajicek (work)

Minor cleanups and fixes

5a9169e1 05/18/2017 12:28 PM Ondrej Zajicek (work)

Merge branch 'master' into int-new

78e4dac9 05/18/2017 12:26 PM Ondrej Zajicek (work)

Fix some forgotten warnings

d19617f0 05/17/2017 12:50 PM Ondrej Zajicek (work)

Merge remote-tracking branch 'origin/int-new' into int-new

05d47bd5 05/16/2017 01:34 PM Jan Moskyto Matejka

Linpool: default allocation size

1c5b4c5d 05/16/2017 12:56 PM Ondrej Zajicek (work)

Merge branch 'master' into int-new

b845ea09 05/16/2017 11:05 AM Ondrej Zajicek (work)

Remove autoconf macros for time_t and alignment

Replaced by constant compile-time expressions. CPU_STRUCT_ALIGN is not
really correct, but is consistent with the old behavior.

e40542ef 05/16/2017 10:59 AM Ondrej Zajicek (work)

Minor autoconf cleanup and documentation update

c253ec3a 05/16/2017 10:59 AM Ondrej Zajicek (work)

Some more autoconf cleanups

Replace integer type width detection with C99 fixed-width types.
Also remove some unused or obsolete code.

Thanks to Ruben Kerkhof for the patchset.

fd1f355b 05/09/2017 03:37 PM Ondrej Zajicek (work)

Merge branch 'master' into int-new

71652572 05/09/2017 02:46 PM Ondrej Zajicek (work)

Minor autoconf cleanup and documentation update

525a88d8 05/09/2017 12:48 PM Ondrej Zajicek (work)

Merge branch 'master' into int-new

5d6dc930 05/09/2017 11:45 AM Ondrej Zajicek (work)

Some more autoconf cleanups

Replace integer type width detection with C99 fixed-width types.
Also remove some unused or obsolete code.

Thanks to Ruben Kerkhof for the patchset.

95639d95 05/03/2017 10:56 AM Ondrej Zajicek (work)

Device: Fix option 'primary'

92a85089 04/29/2017 07:49 PM Ondrej Zajicek (work)

NEWS and version update

b644a490 04/29/2017 04:37 PM Ondrej Zajicek (work)

BSD: Fix address scan on OpenBSD

1d213067 04/28/2017 11:24 PM Ondrej Zajicek (work)

Minor fixes

97e48b6a 04/12/2017 02:04 PM Jan Moskyto Matejka

Adding also our copy of struct rtvia.

54635f43 04/12/2017 02:04 PM Jan Moskyto Matejka

Include local lwtunnel.h unless found in system

bff21441 03/29/2017 02:10 PM Ondrej Zajicek (work)

Netlink: Change default kernel metric to 32

This avoids collisions with non-BIRD routes in kernel tables.

ed610044 03/29/2017 01:55 PM Ondrej Zajicek (work)

Netlink: Better handling of an error case

7074be22 03/28/2017 04:27 PM Ondrej Zajicek (work)

Netlink: Fix device route delete

d1b8fe93 03/28/2017 02:05 PM Ondrej Zajicek (work)

Netlink: Fix bug in RTA_PRIORITY handling

7a855725 03/14/2017 12:53 PM Ondrej Zajicek (work)

Some autoconf cleanups

The patch allows to use autoreconf, replaces some long obsolete
constructs and does some other minor cleanups. Also, the file
configure.in is renamed to configure.ac, as the old name has been
deprecated for a long time.

Thanks to Ruben Kerkhof for the patchset.

c609d039 02/22/2017 10:58 AM Jan Moskyto Matejka

Merge branch 'int-new' into nexthop-merged

62e64905 02/20/2017 01:26 AM Ondrej Zajicek (work)

Several minor fixes

c259669f 02/08/2017 01:34 PM Ondrej Zajicek (work)

Merge branch 'master' into int-new

f6e6c3b5 01/17/2017 12:21 PM Ondrej Zajicek (work)

Fix IP_HDRINCL usage on FreeBSD 11

FreeBSD 11 changed endianity of ip_len field from host order to network
order. Also DragonFly BSD allegedly expects network order here.

Thanks to Olivier Cochard-Labbé for the patch.

d14f8c3c 12/22/2016 08:38 PM Jan Moskyto Matejka

Netlink: MPLS routes in kernel

Anyway, Bird is now capable to insert both MPLS routes and MPLS encap
routes into kernel.

It was (among others) needed to define platform-specific AF_MPLS to 28
as this constant has been assigned in the linux kernel.

No support for BSD now, it may be added in the future.

5b208e29 12/22/2016 12:09 PM Jan Moskyto Matejka

Removing (struct rta)->cast. Never used.

4e276a89 12/22/2016 12:01 PM Jan Moskyto Matejka

Merged multipath and single-path data structures.

Dropped struct mpnh and mpnh_*()
Now struct nexthop exists, nexthop_*(), and also included struct nexthop
into struct rta.

Also converted RTD_DEVICE and RTD_ROUTER to RTD_UNICAST. If it is needed
to distinguish between these two cases, RTD_DEVICE is equivalent to...

017da76b 12/21/2016 03:46 PM Ondrej Zajicek (work)

NEWS and version update

2c33da50 12/20/2016 07:36 PM Jan Moskyto Matejka

Netlink: fix occasional netlink hangs on busy machines

5546aad2 12/07/2016 06:56 PM Ondrej Zajicek (work)

NEWS and version update

ad88b94b 12/07/2016 02:30 PM Jan Moskyto Matejka

Merge branch 'int-new-rpki-squashed' (early part) into int-new

d15b0b0a 12/07/2016 01:20 PM Ondrej Zajicek (work)

BGP redesign

Integrated and extensible BGP with generalized AFI handling,
support for IPv4+IPv6 AFI and unicast+multicast SAFI.

af62c0f9 12/07/2016 01:15 PM Jan Moskyto Matejka

LibSSH may be switched off together with RPKI

cdbe1def 12/07/2016 08:35 AM Jan Moskyto Matejka

SSH: Commented quirk based on undocumented behavior of LibSSH

65d2a88d 12/07/2016 08:35 AM Pavel Tvrdík

RPKI protocol with one cache server per protocol

The RPKI protocol (RFC 6810) using the RTRLib
(http://rpki.realmv6.org/) that is integrated inside
the BIRD's code.

Implemeted transports are:
- unprotected transport over TCP
- secure transport over SSHv2...

9b0a0ba9 11/09/2016 03:36 PM Ondrej Zajicek (work)

Unit Testing for BIRD

- Unit Testing Framework (BirdTest)
- Integration of BirdTest into the BIRD build system
- Tests for several BIRD modules
Based on squashed Pavel Tvrdik's int-test branch, updated for
current int-new branch.
8860e991 11/08/2016 06:27 PM Ondrej Zajicek (work)

Merge branch 'master' into int-new

c8cafc8e 11/08/2016 04:46 PM Ondrej Zajicek (work)

Minor code cleanups

cc5b93f7 11/08/2016 04:04 PM Ondrej Zajicek (work)

Merge tag 'v1.6.2' into int-new

7eec3988 11/01/2016 03:20 PM Ondrej Zajicek (work)

BSD: Fix build on OpenBSD broken by previous commit

3e236955 11/01/2016 01:52 PM Jan Moskyto Matejka

Build: switch on -Wextra, get rid of most of the warnings

There are several unresolved -Wmissing-field-initializers on older
versions of GCC than 5.1, all of them false positive.

17fe57d8 11/01/2016 10:37 AM Ondrej Zajicek (work)

Log: Fix broken syslog name

BIRD passed string from configuration to openlog(), which kept it
internally. After reconfiguration the old string was freed, therefore
openlog had invalid copy.

Thanks to Chris Caputo for the original patch.

f51b1f55 09/29/2016 01:06 PM Ondrej Zajicek (work)

NEWS and version update

ccd2a3ed 09/29/2016 11:21 AM Jan Moskyto Matejka

Kernel socket missing err_hook fix

Thanks to Tim Weippert for bugreport.

79e2293a 09/22/2016 11:34 AM Ondrej Zajicek (work)

NEWS and version update

6e75d0d2 09/19/2016 10:29 AM Ondrej Zajicek (work)

KRT: Add krt_scope attribute

Add a new route attribute, krt_scope, to expose the Linux kernel route
scope. Constants from /etc/iproute2/rt_scopes (prefixed by "ips_") are
expected to be used with the attribute. Both import and export are
supported.

Also, the patch fixes device route export to the kernel, by setting link...

292f7858 09/15/2016 03:30 PM Pavel Tvrdik

Main: Improve BIRD help messages

a290da25 09/15/2016 01:57 PM Pavel Tvrdik

rt-table: Fix kernel protocol export filter memory bug

Kernel protocol calls rt_export_merged(), which used @rte_update_pool for
temporary allocations, supposing it is called from other functions from
rt-table.c that handles locking and flushing of the linpool. Therefore,...

4adcb9df 09/15/2016 12:59 PM Ondrej Zajicek (work)

KRT: Add kernel metric protocol option

Kernel routes with different metrics do not clash with each other,
therefore using dedicated metric value is a reliable way to avoid
overwriting routes from other sources (e.g. kernel device routes).

Although kernel route metric could already be set as a route attribute by...

2feaa693 09/14/2016 09:53 AM Ondrej Zajicek (work)

KRT: Support for IPv6 ECMP

Linux represents IPv6 ECMP routes as a sequence of unipath routes with
the same prefix. We have to translate between our representation (one
route with multipath next hop) and the Linux representation in both
directions.

Proper learning of alien IPv6 ECMP routes still not supported....

a1839f3c 08/31/2016 12:02 PM Ondrej Zajicek (work)

KRT: Fix trivial error

f9f2e280 08/30/2016 10:43 AM Ondrej Zajicek (work)

KRT: Forbid path merging on BSD

We support ECMP routes only on Linux. Exported routes are checked in
krt_capable(), but a route generated during path merging avoids this
check.

33d22f0e 08/16/2016 07:24 AM Ondřej Surý

whitespace fixes

a08a81c6 07/20/2016 01:31 PM Ondrej Zajicek (work)

Netlink: Fix build with older headers missing IFA_FLAGS

e37d2e3e 07/20/2016 01:06 PM Ondrej Zajicek (work)

Netlink: Ignore tentative addresses

Ignore tentative IPv6 addresses and wait until finish of Duplicate
Address Detection (We got notification when an address is no longer
tentative) to avoid problems when protocols try to use interfaces
with tentative link-local addresses....

f0b822a8 07/11/2016 06:22 PM Ondrej Zajicek (work)

Log: Fix error handling of debug file open

Logging is not yet initialized, we have to use fprintf() here.

Thanks to Pavel Tvrdik for noticing and debugging it.

8f01879c 06/27/2016 01:07 PM Pavel Tvrdík

cppcheck: fix va_end() functions

18c53c45 06/08/2016 03:37 PM Pavel Tvrdik

Fix declaration of shared global variables async_*

In a header file write it with extern keyword. And in one of the *.c
file declare it without extern keyword.

9dbcb11c 05/30/2016 12:28 PM Jan Moskyto Matejka

Unix IO: Tried to fix strange behavior after POLLHUP or POLLERR.

925aa149 05/24/2016 10:12 AM Jan Moskyto Matejka

After-master-merge simple fixes.

BSD lib/setkey.h and lib/sysio.h #include fixes.
OpenBSD's flex needs -o param without space.
V6ONLY for SK_IP fix.

379f9959 05/17/2016 02:19 PM Ondrej Zajicek (work)

BSD: Fix setkey in int-new branch

08b3a24d 05/17/2016 01:21 PM Ondrej Zajicek (work)

IO: Minor changes in socket AF handing

AF can be specified implicitly by saddr or daddr, flags SKF_V4ONLY and
SKF_V6ONLY are to be removed.

af678af0 05/12/2016 04:03 PM Ondrej Zajicek (work)

Merge remote-tracking branch 'origin/master' into int-new

286e2011 05/12/2016 02:04 PM Ondrej Zajicek (work)

Miscellaneous minor fixes

8e433d6a 05/12/2016 01:49 PM Pavel Tvrdik

Prog Doc: Complete several missing parameters

31e9e101 05/10/2016 02:05 PM Stijn Tintel

netlink: update struct msghdr

The netlink code assumes an order for the members of struct msghdr.
This breaks recvmsg and sendmsg with musl libc on mips64. Fix this by
using designated initializers instead.

Signed-off-by: Stijn Tintel <>

0c6dfe52 05/10/2016 12:30 PM Jan Moskyto Matejka

Merge branch 'int-new' into int-new-merged

92912f06 05/10/2016 12:21 PM Jan Moskyto Matejka

Merge remote-tracking branch 'origin/rte-update' into int-new

a8caff32 05/10/2016 12:08 PM Jan Moskyto Matejka

Portability: Fixed C extension error generated by CLang.

sysdep/linux/netlink.c:921:10: error: fields must have a constant size:
'variable length array in structure' extension will never be supported
char buf[128 + KRT_METRICS_MAX*8 + nh_bufsize(a->nexthops)];...

7152e5ef 05/10/2016 12:07 PM Jan Moskyto Matejka

Build system reworked to one global Makefile with includes and no nesting

Also removed the lib-dir merging with sysdep. Updated #include's
accordingly.

Fixed make doc on recent Debian together with moving generated doc into
objdir.

Moved Makefile.in into root dir...

f7a99acb 05/03/2016 09:02 AM Pavel Tvrdik

Initialize variable ifr in sk_setup()

00:00:00:02.831 2468 Syscall param socketcall.setsockopt(optval) points to uninitialised byte(s)
00:00:00:02.831 2468 at 0x513BDEA: setsockopt (in /usr/lib/libc-2.23.so)
00:00:00:02.831 2468 by 0x45C7AF: sk_setup (io.c:1216)...
52bae255 04/29/2016 11:07 AM Ondrej Zajicek (work)

NEWS and version update

937e75d8 04/28/2016 04:01 PM Ondrej Zajicek (work)

Add the Babel routing protocol (RFC 6126)

This patch implements the IPv6 subset of the Babel routing protocol.
Based on the patch from Toke Hoiland-Jorgensen, with some heavy
modifications and bugfixes.

Thanks to Toke Hoiland-Jorgensen for the original patch.

a7baa098 04/13/2016 12:37 PM Ondrej Zajicek (work)

BSD: Add the IPsec SA/SP database entries control

Add code for manipulation with TCP-MD5 keys in the IPsec SA/SP database
at FreeBSD systems. Now, BGP MD5 authentication (RFC 2385) keys are
handled automatically on both Linux and FreeBSD.

Based on patches from Pavel Tvrdik.

2003a184 04/08/2016 11:09 AM Jan Moskyto Matejka

Route update: move table lookup from protocols into rte_update2().

Many protocols do almost the same when creating a rte_update request
before calling rte_update2(). This commit should simplify the protocol
side of the route-creation routine.

7a7ac656 04/08/2016 10:28 AM Jan Moskyto Matejka

Merge branch 'master' into int-new-channels

f2ae2bad 04/07/2016 10:39 AM Ondrej Zajicek (work)

Main: Add local option

Add option that changes default paths for config file and control socket
to the current working directory.

4bdf1881 04/07/2016 08:08 AM Jan Moskyto Matejka

Channelize: rt_notify arg conversion table -> channel

bd22d7f4 04/06/2016 09:57 AM Ondrej Zajicek (work)

IO: Avoid multiple event cycles in one loop cycle.

Event cycle may took too much time and trigger next timer events, so
avoid cycling between timer and event cycles inside the loop cycle.

9e7b3ebd 04/06/2016 09:49 AM Ondrej Zajicek (work)

IO: Replace RX priority heuristic with explicit mark

In BIRD, RX has lower priority than TX with the exception of RX from
control socket. The patch replaces heuristic based on socket type with
explicit mark and uses it for both control socket and BGP session waiting...

e86cfd41 04/06/2016 09:46 AM Ondrej Zajicek (work)

KRT: Fix route learn scan when route changed

When a kernel route changed, function krt_learn_scan() noticed that and
replaced the route in internal kernel FIB, but after that, function
krt_learn_prune() failed to propagate the new route to the nest, because...

ea0a8be2 03/30/2016 02:21 PM Jan Moskyto Matejka

IO/Poll: fix mistaken variable merge

The events variable is used in the short loop decision. The reasons are
not much clear, keeping this to keep the former behaviour.

9c92f692 03/18/2016 10:47 AM Jan Moskyto Matejka

Unix: Substituted select -> poll also in congestion checker

It does strange things when even one fd larger than FD_SETSIZE is
passed to select().

fd926ed4 03/15/2016 01:57 PM Jan Moskyto Matejka

Poll: Prevent the improbable case of EAGAIN after POLLIN

e1c13a5a 03/11/2016 11:45 AM Jan Moskyto Matejka

Unix: Rework of select-loop to poll-loop

This should lift the limit of FD_SETSIZE and allow more than 1024 fd's.
FD_SETSIZE limit doesn't matter now when creating new sockets.

c2106b67 02/11/2016 08:53 PM Ondrej Zajicek (work)

Unix: Fix bug in syslog name handling

Pointer to current_log_name has to be changed even if the name is the
same, because the old one will be invalid/freed after reconfiguration.

ade389b3 02/01/2016 09:28 AM Jan Moskyto Matejka

BSD: compilation error fix

f4a60a9b 02/01/2016 09:28 AM Ondrej Zajicek (work)

Channels - explicit links between protocols and tables

The patch adds support for channels, structures connecting protocols and
tables and handling most interactions between them. The documentation is
missing yet.

966ca614 01/27/2016 11:41 AM Pavel Tvrdík

io.c: fix reads from uninitialized memory

2fad9214 01/21/2016 02:47 PM Jan Moskyto Matejka

BSD: fix no-return warning

3f358161 01/21/2016 01:55 PM Jan Moskyto Matejka

BSD: Explicitly dropping routes with mismatched AF's.

25905219 01/20/2016 03:46 PM Pavel Tvrdík

Add forgotten semicolon

8109eb76 01/20/2016 11:05 AM Jan Moskyto Matejka

BSD integration fixes

6ffa8f53 01/11/2016 08:29 AM Jan Moskyto Matejka

Hidden AF_INET* inside sysdep/