Statistics
| Branch: | Revision:

iof-bird-daemon / proto @ 62e64905

# Date Author Comment
62e64905 02/20/2017 01:26 AM Ondrej Zajicek (work)

Several minor fixes

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

MPLS: Label stack concatenation for recursive routes

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

Static: Protocol rework wrt. struct nexthop changes; MPLS label support

ec5e5d23 12/22/2016 12:23 PM Jan Moskyto Matejka

Nexthop: Support for label stack in nest

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

b94e5e58 12/07/2016 02:35 PM Jan Moskyto Matejka

RPKI: fixed some of the extended warnings

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

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

Make: upgrade Babel makefiles

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

e03dc6a9 11/02/2016 04:53 PM Ondrej Zajicek (work)

BFD: Authentication

Implement BFD authentication (part of RFC 5880). Supports plaintext
passwords and cryptographic MD5 / SHA-1 authentication.

Based on former commit from Pavel Tvrdik

29239ba2 11/02/2016 04:53 PM Ondrej Zajicek (work)

OSPF: Use message authentication interface

Based on former commit from Pavel Tvrdik

390601f0 11/02/2016 04:53 PM Ondrej Zajicek (work)

RIP: Use message authentication interface

Based on former commit from Pavel Tvrdik

56cb3bed 11/02/2016 03:23 PM Pavel Tvrdík

Nest: Add support for MAC algorithms in grammar

de2a27e2 11/02/2016 03:23 PM Ondrej Zajicek (work)

Add generic message authentication interface

Add generic interface for generating and verifying MACs (message
authentication codes). Replace multiple HMAC implementation with
a generic one.

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.

3213273d 10/27/2016 09:08 AM Ondrej Filip

IANA assigned a different number to large BGP communities - changed.

66dbdbd9 10/03/2016 10:48 AM Ondrej Zajicek (work)

BGP: Support for large communities

Add support for large communities (draft-ietf-idr-large-community),
96bit alternative to RFC 1997 communities.

Thanks to Matt Griswold for the original patch.

0f5054f6 09/15/2016 02:18 PM Pavel Tvrdik

BFD: Fix invalid read from pollfd array

It is possible that sockets_add() are called between sockets_prepare()
and sockets_fire() during poll loop in birdloop_main(), so we need to
use loop->poll_fd.used instead of loop->sock_num to find the last field.

84cac51a 09/14/2016 09:53 AM Ondrej Zajicek (work)

Nest: Keep multipath next hops sorted

13a31a40 07/20/2016 01:55 PM Ondrej Zajicek (work)

Babel: Immediately update hello interval on interface reconfigure

An interface reconfiguration may change both the hello and update
intervals. An update interval change is immediately put into effect,
while a hello interval change is not. This also updates the hello...

c6ed5a0f 07/19/2016 12:38 PM Ondrej Zajicek (work)

Babel: Do not maintain feasibility distance for our own routes

We do not need to maintain feasibility distances for our own router
ID (we ignore the updates anyway). Not doing so makes the routes be
garbage collected sooner when export filters change.

Signed-off-by: Toke Høiland-Jørgensen <>

0f673666 07/19/2016 12:28 PM Ondrej Zajicek (work)

Babel: Do not keep an infeasible route as selected

When a route becomes infeasible it should not be kept as selected; this
is forbidden by section 3.6 of the RFC and prevents subsequent updates
from the same router ID from replacing it.

Signed-off-by: Toke Høiland-Jørgensen <>

5d6ca220 07/19/2016 12:23 PM Ondrej Zajicek (work)

Babel: Send wildcard retractions on shutdown and startup

This makes BIRD send a wildcard retraction on all interfaces before
shutting down and right after starting up. This helps ensure that
neighbours will discard the announced routes as soon as possible,...

ecae2f43 07/19/2016 11:33 AM Ondrej Zajicek (work)

Babel: Rework handling of retractions

An update with wildcard AE and infinite metric should be treated as a
global retraction of all prefixes announced by that neighbour, per
section 4.4.9 of the RFC. In addition, router ID and seqno in retraction
updates should be ignored. This reworks the handling of retractions and...

321ff8c4 07/19/2016 09:57 AM Ondrej Zajicek (work)

Babel: Make sure intervals do not overflow

Intervals are carried as 16-bit centisecond values, but kept internally
in 16-bit second values, which causes a potential for overflow. This adds
some checks to make sure this does not happen.

Signed-off-by: Toke Høiland-Jørgensen <>

ea0cb652 07/11/2016 06:41 PM Ondrej Zajicek (work)

BGP: Fix extended messages

Change attribute length limit to handle extended (64 kB) messages.

Do not mix updates and withdraws (RFC 7606).

775a5a81 06/29/2016 12:24 PM Ondrej Zajicek (work)

BGP: Skip empty path segments in received AS_PATH

Although RFC 4271 does not forbid empty path segments, they are useless
and some implementations consider them invalid. It is clarified in RFC 7606,
specifying that AS_PATH with empty segment is considered malformed.

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

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

Prog Doc: Complete several missing parameters

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

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

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

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

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

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'

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

RIP: fix typo in configuration at rx length opt

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

Poll: Prevent the improbable case of EAGAIN after POLLIN

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

OSPF: Multicast ability is irrelevant for stub interfaces

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

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.

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

RIP: Fix DBG output

74d94167 01/25/2016 09:29 AM Jan Moskyto Matejka

RIPng: fixed misrejection of host routes

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

Hidden AF_INET* inside sysdep/

5b218c3d 01/11/2016 08:29 AM Jan Moskyto Matejka

BFD: split of v4/v6 sockets

74c838a8 12/29/2015 02:42 PM Ondrej Zajicek (work)

Move ID allocator to a separate file and use it also in OSPF

04632fd7 12/24/2015 02:56 PM Ondrej Zajicek (work)

Follow-up work on integration

600998fc 12/21/2015 07:28 PM Ondrej Zajicek (work)

Modify FIB_WALK() and FIB_ITERATE() to work with new FIB code

Returned user data pointers have offset relative to fib_node.

0bf95f99 12/21/2015 04:17 PM Ondrej Zajicek (work)

Follow-up work on integration

Contains some patches from Jan Moskyto Matejka

23c212e7 12/21/2015 02:33 AM Ondrej Zajicek (work)

Follow-up work on integration

7fd4143e 12/20/2015 12:47 PM Jan Moskyto Matejka

Integrated address print lengths

Minor changes by Ondrej Santiago Zajicek

d7661fbe 12/19/2015 02:57 PM Jan Moskyto Matejka

Removed BITS_PER_IP_ADDRESS, MAX_PREFIX_LENGTH, BIRD_AF

Explicit setting of AF_INET(6|) in IP socket creation. BFD set to listen
on v6, without setting the V6ONLY flag to catch both v4 and v6 traffic.

Squashing and minor changes by Ondrej Santiago Zajicek

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

BGP: Update capability number from IANA for extended messages

04ae8dda 11/25/2015 01:24 PM Ondrej Zajicek (work)

Merge branch 'master' into int-new

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

MD5: Mormalize naming style

d44e686e 11/12/2015 01:03 AM Ondrej Zajicek (work)

Follow-up commit on integrated BIRD

Use net_addr for interface address prefixes, support net_addr in
configuration parser.

fe9f1a6d 11/05/2015 11:48 AM Ondrej Zajicek (work)

Initial commit on integrated BIRD

New data types net_addr and variants (in lib/net.h) describing
network addresses (prefix/pxlen). Modifications of FIB structures
to handle these data types and changing everything to use these
data types instead of prefix/pxlen pairs where possible....

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

Merge branch 'master' into rip-new

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.

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 10.1.1.0/24 via 10.0.0.1 { 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.

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.

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.

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

Moving of mulipath merging code from OSPF to nest

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

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

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.

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.

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.

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.

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.

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.

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

Fixes potential alignment bug in BGP.

Thanks to Andrew (seti.kr.ua) for the bug report.