| Branch: | Revision:

iof-bird-daemon / sysdep / linux / netlink.c @ c8cafc8e

History | View | Annotate | Download (38.8 KB)

# Date Author Comment
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.

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

Kernel socket missing err_hook fix

Thanks to Tim Weippert for bugreport.

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

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

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

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

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

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

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

ad276157 11/24/2015 01:30 PM Jan Moskyto Matejka

Netlink: attribute validation before parsing

Wanted netlink attributes are defined in a table, specifying
their size and neediness. Removing the long conditions that did the
validation before.

Also parsing IPv4 and IPv6 versions regardless on the IPV6 macro.

1e4891e4 11/23/2015 10:13 AM Ondrej Zajicek (work)

Nest: Fix bug in device proto

If an interface address notification is received during device protocol
shutdown/restart, BIRD crashed.

Thanks to Wei Huang for the bugreport.

fce764f9 11/11/2015 10:46 AM Pavel Tvrdík

Fix compiling with --enable-debug option

9ddbfbdd 11/11/2015 10:40 AM Jan Moskyto Matejka

Netlink: Allow more than 256 routing tables.

Since 2.6.19, the netlink API defines RTA_TABLE routing attribute to
allow 32-bit routing table IDs. Using this attribute to index routing
tables at Linux, instead of 8-bit rtm_table field.

acb04cfd 10/17/2015 12:43 PM Ondrej Zajicek (work)

Minor changes

641172c6 07/28/2015 10:36 AM Ondrej Zajicek

Netlink: Fixes uninitialized variable

Thanks to Pavel Tvrdik for the bugfix

78a2cc28 06/08/2015 12:24 AM Ondrej Zajicek

KRT: Fixes some minor bugs in kernel protocol

ae80a2de 06/08/2015 12:24 AM Pavel Tvrdík

unsigned [int] -> uint

38e835de 05/13/2015 11:19 AM Ondrej Zajicek

Fix in the last commit

9fdf9d29 05/12/2015 02:42 PM Ondrej Zajicek

KRT: Add support for plenty of kernel route metrics

Linux kernel route metrics (RTA_METRICS netlink route attribute) are
represented and accessible as new route attributes:

krt_mtu, krt_window, krt_rtt, krt_rttvar, krt_sstresh, krt_cwnd, krt_advmss,
krt_reordering, krt_hoplimit, krt_initcwnd, krt_rto_min, krt_initrwnd,...

16a3254c 03/31/2015 09:59 PM Ondrej Zajicek

Understand IFF_MULTICAST flag on ifaces in Linux

Unfortunately, some interfaces support multicast but do not have
this flag set, so we use it only as a positive hint.

Thanks to Clint Armstrong for noticing the problem.

86c3eea0 02/21/2015 08:19 PM Ondrej Zajicek


This value is specified in documentation.

1123e707 10/02/2014 10:52 AM Ondrej Zajicek

Implements token bucket filter for rate limiting.

05476c4d 05/18/2014 09:42 AM Ondrej Zajicek

IPv4/IPv6 integrated socket code.

3216eb03 02/26/2014 11:52 AM Ondrej Zajicek

Fixes longstanding issue with interfaces staying in IF_TMP_DOWN.

Thanks to Pierluigi Rolando and others for the bugreport.

283c7dfa 11/25/2013 05:42 PM Ondrej Zajicek

Merge branch 'master' into add-path

65194bd1 11/23/2013 09:48 PM Ondrej Zajicek

Removes workaround related to import of kernel device routes.

Thanks to Benjamin Cama for notification.

736e143f 11/23/2013 10:50 AM Ondrej Zajicek

Merge branch 'master' into add-path


f83ce94d 09/26/2013 03:33 PM Ondrej Zajicek

Fixes missing unregister of kernel table handling code.

And some minor fixes.

Thanks to Sergey Popovich for the patch.

c6964c30 07/04/2013 04:02 PM Ondrej Zajicek

Makes krt.c much more readable.

9810d055 05/28/2013 08:44 AM Ondrej Zajicek

Fixes problems with routing table scans on some platforms.

Negative bit shifts are definitely undefined oprations.

094d2bdb 08/14/2012 02:46 PM Ondrej Zajicek

Implements ADD-PATH extension for BGP.

Allows to send and receive multiple routes for one network by one BGP
session. Also contains necessary core changes to support this (routing
tables accepting several routes for one network from one protocol).
It needs some more cleanup before merging to the master branch.

c06de722 08/06/2012 09:09 AM Ondrej Zajicek

Some minor fixes.

95616c82 05/04/2012 02:38 PM Ondrej Zajicek

Cleanup in sysdep KRT code, part 4.

Adding some files that was accidentally removed
(instead of moved) in cleanup part 2.