| Branch: | Revision:

iof-bird-daemon @ e86cfd41

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

54bb032d 03/23/2016 01:21 AM Jan Moskyto Matejka

Birdlib: Modify lists to avoid problems with pointer aliasing rules

The old linked list implementation used some wild typecasts and required
GCC option -fno-strict-aliasing to work properly. This patch fixes that.
However, we still keep the option due to other potential problems....

665b8e52 03/23/2016 01:21 AM Ondrej Zajicek (work)

Birdlib: Do cleanups after remove/free

To avoid byzantine behavior in case of some errors, linked lists are
cleared after rem_node() and resource headers are cleared after rfree().

39a6b19d 03/23/2016 01:21 AM Ondrej Zajicek (work)

OSPF: Fix bogus LSA ID collisions between received and originated LSAs

After restart, LSAs locally originated by the previous instance are
received from neighbors. They are installed to LSA db and flushed. If
export of a route triggers origination of a new external LSA before flush...

0a505706 03/23/2016 01:21 AM Ondrej Zajicek (work)

Minor changes in documentation

a459f4df 03/23/2016 01:21 AM Ondrej Zajicek (work)

OSPF: Fix reading from freed memory

Thanks to Pavel Tvrdik for noticing it.

62a4ad36 03/22/2016 12:23 PM Jan Moskyto Matejka

Merge remote-tracking branch 'origin/poll'

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

9036bbf2 03/17/2016 05:40 PM Pavel Tvrdík

RIP: fix typo in configuration at rx length opt

79a4f74a 03/17/2016 05:40 PM Pavel Tvrdík

BGP: Add documentaion for extended messages

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.

ce95af7a 02/25/2016 05:25 PM Jan Moskyto Matejka

Merge branch 'master' of

e3f506f9 02/25/2016 05:23 PM Ondrej Zajicek (work)

OSPF: Multicast ability is irrelevant for stub interfaces

b25509e5 02/25/2016 05:22 PM Jan Moskyto Matejka

All the current pthread implementations are OK and working with us.

No more need to disable pthread for specific BSD's.

9c9cc35c 02/16/2016 04:33 PM Ondrej Zajicek (work)

Filter: Implement last_nonaggregated operator on bgp_path

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.

487c6961 02/11/2016 03:38 PM Ondrej Zajicek (work)

BGP: Fix bug in incoming connection handling

When a BGP session was established by an outgoing connection with
Graceful Restart behavior negotiated, a pending incoming connection in
OpenSent state, and another incoming connection was received, then the
outgoing connection (and whole BGP session) was closed, but the old...

52e21323 11/25/2015 02:52 PM Ondrej Zajicek (work)

BGP: Update capability number from IANA for extended messages

33b4f40a 11/24/2015 03:01 PM Pavel Tvrdík

MD5: Mormalize naming style

90f78507 11/24/2015 02:21 PM Ondrej Zajicek (work)

Merge branch 'master' into rip-new

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.

e422ca0f 11/24/2015 12:52 PM Ondrej Zajicek (work)

Some consts for function arguments

Patch from Pavel Tvrdik

5126380b 11/24/2015 12:47 PM Ondrej Zajicek (work)

Minor changes to SHA hash functions

12d752ef 11/23/2015 10:32 AM Ondrej Zajicek (work)

Merge commit 'origin/crypto-hash^'

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.

f312a837 11/13/2015 06:34 PM Pavel Tvrdík

Add SHA-384/512 and HMAC-SHA-384/512 crypto hash

4035e0e7 11/13/2015 06:34 PM Pavel Tvrdík

Add SHA-224/256 and HMAC-SHA-224/256 crypto hash

5d0c36f1 11/13/2015 06:33 PM Pavel Tvrdík

Add SHA1 and SHA1-HMAC crypto hash

75ff0802 11/13/2015 06:31 PM Pavel Tvrdík

Add get_u64() and put_u64() into lib/unaligned.h

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.

86b4e170 11/09/2015 12:01 AM Ondrej Zajicek (work)

Nest: Fixes bug in missing cleanup during table removal

When a table is removed during reconfiguration, a reference was not
cleared in the old configuration, which breaks undo.

9b9a7143 11/08/2015 11:42 PM Ondrej Zajicek (work)

Conf: Fixes bug in symbol lookup during reconfiguration

Symbol lookup by cf_find_symbol() not only did the lookup but also added
new void symbols allocated from cfg_mem linpool, which gets broken when
lookups are done outside of config parsing, which may lead to crashes...

3aed0a6f 11/03/2015 10:27 AM Ondrej Zajicek (work)

IO: Fix the previous bugfix

I should check it after making some trivial changes. The original patch
from Alexander has it right.

338f85ca 11/03/2015 10:08 AM Ondrej Zajicek (work)

IO: Handle fd values too big for select()

If the number of sockets is too much for select(), we should at least
handle it with proper error messages and reject new sockets instead of
breaking the event loop.

Thanks to Alexander V. Chernikov for the patch.

8eb8e546 10/17/2015 12:44 PM Ondrej Zajicek (work)

Merge branch 'master' into rip-new

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

Minor changes

8465dccb 10/05/2015 11:18 AM Ondrej Zajicek (work)

Major RIP redesign

The new RIP implementation fixes plenty of old bugs and also adds support
for many new features: ECMP support, link state support, BFD support,
configurable split horizon and more. Most options are now per-interface.

b5e76398 08/19/2015 09:16 AM Ondrej Zajicek

OSPF: Fixes some issues with link detection

Thanks to Bernardo Figueiredo and Israel G. Lugo for the bugreport.

c7b99a93 07/28/2015 01:08 PM Ondrej Zajicek

Nest: Fixes one of previous commit

dbf4c0cb 07/28/2015 10:56 AM Ondrej Zajicek

Minor update to test commits

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

Netlink: Fixes uninitialized variable

Thanks to Pavel Tvrdik for the bugfix

538264cf 07/24/2015 04:02 PM Ondrej Zajicek

Static: Support for BFD controlled static routes

1321e12a 07/20/2015 03:11 PM Ondrej Zajicek

Static: Allows to specify attributes for static routes

The patch adds suport for specifying route attributes together with
static routes, e.g.:

route via { krt_advmss = 1200; ospf_metric1 = 100; };
ffa398b8 07/19/2015 09:39 AM Ondrej Zajicek

BFD: Fixes crash after socket error

Thanks to Thomas King for the bugreport.

a8ad8fd6 07/18/2015 09:15 PM Ondrej Zajicek

Simplify build messages

Thanks to Christian Tacke for the original patch.

17661ff9 07/18/2015 05:30 PM Ondrej Zajicek

Nest: Fixes symbols in router id

Thanks to Peter Hudec for noticing the problem.

6683d42d 07/18/2015 05:05 PM Ondrej Zajicek

Documentation update

06e0d1b6 07/18/2015 11:38 AM Ondrej Zajicek

BGP: Extended messages support

Implements draft-ietf-idr-bgp-extended-messages-10, for now
undocumented and with temporary private capability number.

ab4da342 07/18/2015 11:05 AM Ondrej Zajicek

Direct: Fixes behavior for the same routes on different interfaces

Thanks to Andrew ( for the bug report.

8d9eef17 06/08/2015 12:24 AM Ondrej Zajicek

BGP multipath support

Kernel option 'merge paths' allows to merge routes exported to kernel
protocol (currently BGP and static routes) to multipath routes.

db027a41 06/08/2015 12:24 AM Ondrej Zajicek

Fixes subtle bug in temporary attribute handling

In some cases, export filter accessed attributes of a different route.

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

KRT: Fixes some minor bugs in kernel protocol

d217ba51 06/08/2015 12:24 AM Ondrej Zajicek

Moving of mulipath merging code from OSPF to nest

ca34698c 06/08/2015 12:24 AM Ondrej Zajicek

Fixes bug in pipe feeding when filtered routes are kept in table

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

unsigned [int] -> uint

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

unsgined char -> byte

398f9225 06/01/2015 08:41 AM Ondrej Filip

Typo fix by Hans van Kranenburg

9fe1d3ca 05/22/2015 09:12 AM Ondrej Zajicek

Fixes unnamed protocols from templates

d0e23d42 05/16/2015 10:56 PM Ondrej Zajicek

Simplify flushing process

Related to changes from previous patch.

86f567e1 05/16/2015 06:17 PM Ondrej Zajicek

Fix minor issue in pipe route propagation

In some circumstances during reconfiguration, routes propagated by pipes
to other tables may hang there even after the primary routes are removed.

There is already a workaround for this issue in the code which removes...

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

315f23a0 05/10/2015 05:44 PM Ondrej Zajicek

Add bitfield route attribute type

77edab64 05/01/2015 12:40 PM Ondrej Zajicek

OSPF: Redesign LSA checksumming

New LSA checksumming code separates generic Fletcher-16 and OSPF-specific
code and avoids back and forth endianity conversions, making it much more
readable and also several times faster.

30d09eb9 04/28/2015 11:45 AM Ondrej Zajicek

OSPF: Fixes validation of LSA checksums

Prior to this patch, BIRD validates the OSPF LSA checksum by calculating
a new checksum and comparing it with the checksum in the header. Due to
the specifics of the Fletcher checksum used in OSPF, this is not
necessarily correct as the checkbytes in the header may be calculated via...

7069fc9e 04/25/2015 07:41 PM Ondrej Zajicek

KRT: Fixes route reload

Did not really worked

c5ff44a7 04/25/2015 06:43 PM Ondrej Zajicek

KRT: Fixes learning of preferred kernel routes.

When a new route was imported from kernel and chosen as preferred, then
the old best route was propagated as a withdraw to the kernel protocol.
Under some circumstances such withdraw propagated to the BSD kernel could...

90097f4f 04/22/2015 08:53 AM Ondrej Zajicek

KRT: Support for RTM_CHANGE on BSD

deec752e 04/20/2015 10:27 AM Ondrej Zajicek

NEWS and version update

b867a87c 04/18/2015 10:31 PM Ondrej Zajicek

Fixes port range socket option

ef3cac66 04/18/2015 11:26 AM Ondrej Zajicek

OSPF: Fixes handling of external routes with immediate gw

The bug caused that received external LSAs with locally reachable
next hops were ignored. I wonder why nobody noticed it sooner.

304ac2e8 04/12/2015 08:47 AM Ondrej Zajicek

Minor fixes

d924d5a5 03/31/2015 10:10 PM Ondrej Zajicek

BGP: Fixes serious bug in TX handling

Under some circumstances and heavy load, TX could be postponed
until the session fails with hold timer expired.

Thanks to Javor Kliachev for making the bug reproductible.

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.

2eadd36f 03/29/2015 07:24 PM Ondrej Zajicek

BGP: AS-wide unique router ID (RFC 6286) support

RFC 6286 relaxed rules for router IDs, allowing EBGP sessions between
routers with the same ID (but different ASN).

9aed29e6 03/29/2015 04:29 PM Ondrej Zajicek

BGP: Enhanced route refresh (RFC 7313) support

Also hook feed_done is renamed to feed_end.

a5a5a41e 03/09/2015 10:59 PM Ondrej Filip

Possibility to define unnamed protocols from template added.

509aab5d 03/02/2015 09:58 AM Ondrej Zajicek

Fixes serious bug in BGP add-path

Temporary rta is reused in BGP, while rta_lookup() breaks it.

Thanks to Alexander Chernikov for analysing the problem.

af454f9b 03/02/2015 08:42 AM Ondrej Zajicek

Fixes bug in debug dumps

Using 'dump sockets' in IPv6 mode caused crash due to mismatched format string.

Thanks to Pavel Tvrdik for noticing it.

8bcb5fb1 03/02/2015 08:41 AM Ondrej Zajicek

Implement latency tracking, internal event log and watchdog

4e639744 02/24/2015 03:19 PM Ondrej Zajicek

Add minor comment

9c89560e 02/22/2015 07:14 PM Ondrej Zajicek

Use IP_PORTRANGE_HIGH for BFD where available

6cf72d7a 02/22/2015 04:21 PM Ondrej Zajicek

Rename BGP option 'start delay' to 'connect delay'

Also update log message for error-triggered startup delay.

a1beb8f3 02/22/2015 12:50 PM Ondrej Zajicek

Relax BGP neighbor parameter

Permit specifying neighbor address, AS number and port independently.
Add 'interface' parameter for specifying interface for link-local
sessions independently.

Thanks to Alexander V. Chernikov for the original patch.

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


This value is specified in documentation.

2bbc3083 02/21/2015 08:08 PM Ondrej Zajicek

Store protocol config size inside protocol structure

Make proto_config_new() use this info instead of supplied size.

Thanks to Alexander V. Chernikov for the patch.

374917ad 02/21/2015 07:55 PM Ondrej Zajicek

Make BGP protocol instance search a separate function

Thanks to Alexander V. Chernikov for the patch.

6264aad1 02/21/2015 07:11 PM Pavel Tvrdík

Minor fixes

85a3639d 02/21/2015 07:07 PM Pavel Tvrdik

Better Clang compatibility

7d37bf79 02/21/2015 06:38 PM Pavel Tvrdik

Remove a comparison of unsigned expression < 0

e598853e 02/21/2015 06:32 PM Pavel Tvrdik

Add const to a param msg at functions log_msg, log_rl, die, bug and debug

4a591d4b 02/21/2015 06:31 PM Pavel Tvrdik

Replacing GNU old-style field designator extension

8ce9a877 02/21/2015 01:52 PM Ondrej Zajicek

Fixes minor bug in BFD.

Thanks to Pavel Tvrdik for noticing it.

51762a45 02/21/2015 01:05 PM Ondrej Zajicek

Allows user data attached to f_trie_node structure.

Thanks to Alexander Chernikov for the patch.

bc7f4e0e 02/21/2015 11:42 AM Ondrej Zajicek

Bump max symbol length to 64.

And move the constant to conf.h header.

Thanks to Alexander Chernikov for the patch.

ab006391 02/21/2015 11:30 AM Ondrej Zajicek

Fixes a bug in locking code.

When multiple protocols have a lock for the same IP address, it crashes
under some circumstances.

Thanks to Matthias Schiffer for the bugreport.

dfc7a6c6 02/21/2015 11:24 AM Ondrej Zajicek

Fixes potential alignment bug in BGP.

Thanks to Andrew ( for the bug report.