| Branch: | Revision:

iof-bird-daemon / nest @ 3b3b0910

# Date Author Comment
3b3b0910 12/07/2017 12:53 PM Ondrej Zajicek (work)

Babel: More changes and bugfixes

Several changes and bugfixes in Babel, namely:

- Exported route parameters stored directly in route table entry
- Exported non-babel routes no longer stored in per-entry route list
- Route update, selection and retraction simplified and fixed...

3e405fb1 12/07/2017 12:53 PM Ondrej Zajicek (work)

Nest: Update to new timers

ee528fbd 12/07/2017 12:53 PM Ondrej Zajicek (work)

Timers: Add typecast to unit-converting macros

d3fa9e84 12/07/2017 12:49 PM Ondrej Zajicek (work)

Timers: Show sub-second times in some protocol outputs

f047271c 12/07/2017 12:49 PM Ondrej Zajicek (work)

Timers: Parse and format functions for microsecond times

Date/time output (e.g. in logs, show commands) can use %f to specify
subsecond time. By default, millisecond precision is used in output.

02552526 12/07/2017 12:49 PM Ondrej Zajicek (work)

Timers: Replace old timers with microsecond timers

The old timer interface is still kept, but implemented by new timers. The
plan is to switch from the old inteface to the new interface, then clean
it up.

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.

289c1a79 10/17/2017 02:52 PM Jan Moskyto Matejka

Iface address debug dump fix

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.

801fd81e 05/31/2017 12:12 PM Ondrej Zajicek (work)

Merge branch 'master' into int-new

33f7fbc4 05/31/2017 12:11 PM Ondrej Zajicek (work)

CLI: Fix bug in symbol handling introduced in previous patches

a1dc5267 05/25/2017 09:37 PM Ondrej Zajicek (work)

Merge branch 'master' into int-new

b7761af3 05/25/2017 09:30 PM Ondrej Zajicek (work)

Conf: Replace keyword and symbol hash table with generic hash table.

The old hash table had fixed size, which makes it slow for config files
with large number of symbols and symbol lookups. The new one is growing
according to needs.

6aaaa635 05/23/2017 03:40 PM Ondrej Zajicek (work)

Change parser to handle numbers as unsigned

Lexer always parsed numbers as unsigned, but parser handled them as
signed and grammar contained many unnecessary checks for negativity.

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

Minor cleanups and fixes

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

Linpool: default allocation size

f8d44b01 05/15/2017 10:10 AM Jan Moskyto Matejka

Nest: split route show into separate file

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

Minor fixes

b2949999 04/25/2017 05:02 PM Ondrej Zajicek (work)

Nest: Update of show route cmd

Some code cleanup, multiple bugfixes, allows to specify also channel
for 'show route export'. Interesting how such apparenty simple thing
like show route cmd has plenty of ugly corner cases.

4278abfe 04/18/2017 11:56 AM Ondrej Zajicek (work)

Check validity of dest w.r.t. net_type

Allow to define static roa/flow routes without dest.

3484cb9a 04/18/2017 11:45 AM Jan Moskyto Matejka

Client: separate config syntax structure for "show route for"

7ee07a3c 04/12/2017 02:05 PM Jan Moskyto Matejka

Nest: Fix route lookup

2faf519c 04/12/2017 02:04 PM Jan Moskyto Matejka

Client: multitable version of show route

1e37e35c 03/22/2017 05:16 PM Ondrej Zajicek (work)

BGP: Support for MPLS labels and VPN SAFI

Basic support for SAFI 4 and 128 (MPLS labeled IP and VPN) for IPv4 and
IPv6. Should work for route reflector, but does not properly handle
originating routes with next hop self.

Based on patches from Jan Matejka.

3c744164 03/17/2017 02:48 PM Jan Moskyto Matejka

Nexthop: Fixed recursive route mpls label merging

8c9986d3 03/13/2017 12:51 PM Jan Moskyto Matejka

Filters: VPN Route Distinguishers, Prefix Type, Docs Update

665be7f6 03/09/2017 12:47 PM Ondrej Zajicek (work)

Nest: Minor fixes in show route

5ffb62dd 03/09/2017 12:47 PM Ondrej Zajicek (work)

Nest: Allow iface-only neighbors

039a65d0 02/24/2017 01:05 PM Jan Moskyto Matejka

Nexthop: Fixed hostentry

93f50ca3 02/22/2017 01:11 PM Jan Moskyto Matejka

Nest: names for nhu_state values

It took too much time to analyze what's the meaning of nhu_state values
so I spent less than the same amount of time documenting it.

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

5509e17d 01/22/2017 03:32 PM Ondrej Zajicek (work)

BGP: Support for AS confederations (RFC 5065)

f8aad5d5 01/03/2017 03:30 PM Ondrej Zajicek (work)

Minor cleanups

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

MPLS: Label stack concatenation for recursive routes

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.

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

c42ecaab 12/07/2016 03:27 PM Ondrej Zajicek (work)

Tests: Fix build

77234bbb 12/07/2016 02:54 PM Ondrej Zajicek (work)

Basic flow specification support (RFC 5575)

Add flow4/flow6 network and rt-table type and operations, config grammar
and static protocol support.

Squashed flowspec branch from Pavel Tvrdik.

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.

f6e8e141 12/07/2016 08:35 AM Pavel Tvrdik

Check table type at `show route for ...'

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
( that is integrated inside
the BIRD's code.

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

0eb7f17d 11/30/2016 10:57 AM Pavel Tvrdik

nest/a-path.c: Fix description of BS constant (block size)

261816b0 11/15/2016 03:24 PM Ondrej Zajicek (work)

BGP: Cluster list item should be prepended

Commit 3c09af41... changed behavior of int_set_add() from prepend to
append, which makes more sense for community list, but prepend must be
used for cluster list. Add int_set_prepend() and use it in cluster list...

5e3cd0e5 11/11/2016 04:43 PM Pavel Tvrdik

Birdtest: Replace BT_SUCCESS and BT_FAILURE with 1 and 0

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

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

Merge tag 'v1.6.2' into int-new

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.

3c09af41 10/13/2016 02:59 PM Pavel Tvrdik

Clist: The add() function will append a new value

The add() function used to prepend a new community to clist, but after
this fix the add() function appends new community.

2e7fb11a 10/12/2016 12:22 PM Jan Moskyto Matejka

Fixed memory bloating on kernel merge paths together with export filter.

Some memory was being allocated from bad linpool, not from the given one
as they should.

Thanks to Madhu and Justin Cattle for reporting this.

9df52a98 10/12/2016 10:48 AM Pavel Tvrdik

Doc: Change debug to { flag1|flag2|flag3 [, ...] } style

Thanks to Micah Anderson for bug report and Ondrej Zajicek for the idea!

9fcb9637 10/12/2016 10:48 AM Pavel Tvrdik

Nest: Remove trailing whitespaces

a46e01ee 10/04/2016 10:45 AM Ondrej Zajicek (work)

Nest: Fix signedness of large communities

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.

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

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

Nest: Keep multipath next hops sorted

d107ef78 08/16/2016 11:02 AM Pavel Tvrdik

Whitespace fixes

12640c14 07/19/2016 10:16 AM Ondrej Zajicek (work)

Babel: Documentation updates

This updates the documentation to correctly mention Babel when protocols
are listed, and adds examples and route attribute documentation to the
Babel section of the docs.

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

6887f409 07/17/2016 12:54 PM Ondrej Filip

Prepare for longer interface names - clean up of the code.

a0fe1944 06/08/2016 02:22 PM Ondrej Filip

Add AS# ranges to bgpmask.

5af7b596 05/13/2016 11:48 AM Jan Moskyto Matejka

Merge branch 'int-new' of into int-new

d39d41fb 05/13/2016 11:46 AM Jan Moskyto Matejka

Hash: Fix of previous commit

659f80f2 05/12/2016 07:47 PM Ondrej Zajicek (work)

Make int-new compilable again

776d6b2c 05/12/2016 04:11 PM Ondrej Zajicek (work)

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

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

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

54ac0bec 05/12/2016 02:16 PM Jan Moskyto Matejka

Hash: fixed rta hashing wrt. structure padding

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

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

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

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

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

Direct: Implement check link for direct protocol

When enabled, direct protocol generates routes only if the underlying
link state is up.

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

0c8c8151 04/07/2016 07:58 AM Jan Moskyto Matejka

Merge branch 'int-new-channels' of into int-new-channels

06edbb67 04/06/2016 11:10 PM Ondrej Zajicek (work)

Nest: Reset export route counter during graceful restart

Counter exp_routes is increased during initial route feed after GR
recovery, so it has to start with zero, otherwise BIRD will end with
double value in exp_routes.

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

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

BGP: Add documentaion for extended messages

43fd8fae 03/10/2016 03:07 PM Pavel Tvrdík

nest/proto fix local_debug mode

062d18fd 03/10/2016 03:07 PM Pavel Tvrdík

Fix typo

a815d62d 02/19/2016 03:33 PM Jan Moskyto Matejka

Hash: typecast error fix

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

Filter: Implement last_nonaggregated operator on bgp_path

9a74622c 02/10/2016 12:26 PM Jan Moskyto Matejka

Updated RTA hashes to 32-bit values.

... and reworked the hashes a bit. Also added mem_hash function
which just computes a hash of given memory block.

1bb3ecb2 02/08/2016 03:08 PM Pavel Tvrdík

Fix closing flushed channel

Fix reading from freed memory.
Free at: channel_set_state(c, CS_DOWN)
Read at: WALK_LIST2_DELSAFE(c, n, x, tab->channels, table_node)

00:00:00:00.261 24718
00:00:09:31.755 24718 Invalid read of size 8
00:00:09:31.755 24718 at 0x4061BA: rt_prune_table (rt-table.c:1688)...
2a013bb3 02/01/2016 03:01 PM Jan Moskyto Matejka

Fixed sigsegv for missing proto->rt_notify hook

If rt_notify is NULL, the export must always stay DOWN.

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.

9f5782d9 01/28/2016 04:16 PM Pavel Tvrdík

Add 'GENERATE/ACCEPT FROM datetime TO datetime' to password options

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

BSD: Explicitly dropping routes with mismatched AF's.

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

Delete old ROA code