]>
git.ipfire.org Git - thirdparty/bird.git/log
Jan Moskyto Matejka [Tue, 9 Feb 2016 13:53:29 +0000 (14:53 +0100)]
VPN4 and VPN6 literals
From now on, protocol static accepts VPN4 and VPN6 addressess.
With some concerns about VPN6 Route Distinguishers, I finally chose
to have the same format as for VPN4 (where it is defined by RFC 4364).
Jan Moskyto Matejka [Tue, 9 Aug 2016 12:47:51 +0000 (14:47 +0200)]
MPLS: Label stack concatenation for recursive routes
Jan Moskyto Matejka [Fri, 4 Mar 2016 11:55:50 +0000 (12:55 +0100)]
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.
Jan Moskyto Matejka [Mon, 13 Jun 2016 13:49:53 +0000 (15:49 +0200)]
Static: Protocol rework wrt. struct nexthop changes; MPLS label support
Jan Moskyto Matejka [Wed, 2 Mar 2016 13:37:18 +0000 (14:37 +0100)]
MPLS: added net_addr_mpls variant of net_addr
Jan Moskyto Matejka [Fri, 10 Jun 2016 12:34:41 +0000 (14:34 +0200)]
Nexthop: Support for label stack in nest
Jan Moskyto Matejka [Tue, 7 Jun 2016 09:46:07 +0000 (11:46 +0200)]
Removing (struct rta)->cast. Never used.
Jan Moskyto Matejka [Fri, 6 May 2016 13:48:35 +0000 (15:48 +0200)]
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
IPA_ZERO(a->nh.gw), RTD_ROUTER is then IPA_NONZERO(a->nh.gw).
From now on, we also explicitely want C99 compatible compiler. We assume
that this 20-year norm should be known almost everywhere.
Jan Moskyto Matejka [Wed, 7 Dec 2016 16:17:04 +0000 (17:17 +0100)]
Doc: Example simple config
Ondrej Zajicek (work) [Wed, 7 Dec 2016 15:27:12 +0000 (16:27 +0100)]
Tests: Fix build
Ondrej Zajicek (work) [Wed, 7 Dec 2016 15:20:38 +0000 (16:20 +0100)]
Client: No need for birdlib functions
Ondrej Zajicek (work) [Wed, 7 Dec 2016 14:36:15 +0000 (15:36 +0100)]
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.
Jan Moskyto Matejka [Wed, 7 Dec 2016 14:35:35 +0000 (15:35 +0100)]
RPKI: fixed some of the extended warnings
Jan Moskyto Matejka [Wed, 7 Dec 2016 14:30:46 +0000 (15:30 +0100)]
Merge branch 'int-new-rpki-squashed' (early part) into int-new
Ondrej Zajicek (work) [Wed, 7 Dec 2016 13:11:28 +0000 (14:11 +0100)]
BGP redesign
Integrated and extensible BGP with generalized AFI handling,
support for IPv4+IPv6 AFI and unicast+multicast SAFI.
Jan Moskyto Matejka [Wed, 7 Dec 2016 13:15:35 +0000 (14:15 +0100)]
LibSSH may be switched off together with RPKI
Jan Moskyto Matejka [Wed, 7 Dec 2016 08:13:29 +0000 (09:13 +0100)]
SSH: Commented quirk based on undocumented behavior of LibSSH
Jan Moskyto Matejka [Wed, 7 Dec 2016 08:12:06 +0000 (09:12 +0100)]
Make: upgrade Babel makefiles
Pavel Tvrdik [Thu, 30 Jun 2016 12:56:09 +0000 (14:56 +0200)]
filter/test.conf: add ROA check and operator tests
Pavel Tvrdik [Wed, 29 Jun 2016 10:21:43 +0000 (12:21 +0200)]
Add `.maxlen' operator to all ROA prefixes in filters
Example:
bird> eval (1.2.0.0/16 max 20 as 1234).maxlen
20
Todo: Should be described in user docs
Pavel Tvrdik [Wed, 29 Jun 2016 10:08:28 +0000 (12:08 +0200)]
Add `.asn' operator to all ROA prefixes in filters
Example:
bird> eval (1.2.0.0/16 max 20 as 1234).asn
1234
Todo: Should be described in user docs
Pavel Tvrdik [Wed, 29 Jun 2016 07:56:33 +0000 (09:56 +0200)]
Check table type at `show route for ...'
Pavel Tvrdík [Thu, 17 Sep 2015 15:15:30 +0000 (17:15 +0200)]
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
Example configuration of bird.conf:
...
roa4 table r4;
roa6 table r6;
protocol rpki {
debug all;
# Import both IPv4 and IPv6 ROAs
roa4 { table r4; };
roa6 { table r6; };
# Set cache server (validator) address,
# overwrite default port 323
remote "rpki-validator.realmv6.org" port 8282;
# Overwrite default time intervals
retry 10; # Default 600 seconds
refresh 60; # Default 3600 seconds
expire 600; # Default 7200 seconds
}
protocol rpki {
debug all;
# Import only IPv4 routes
roa4 { table r4; };
# Set cache server address to localhost,
# use default ports tcp => 323 or ssh => 22
remote 127.0.0.1;
# Use SSH transport instead of unprotected transport over TCP
ssh encryption {
bird private key "/home/birdgeek/.ssh/id_rsa";
remote public key "/home/birdgeek/.ssh/known_hosts";
user "birdgeek";
};
}
...
Pavel Tvrdik [Thu, 9 Jun 2016 08:11:39 +0000 (10:11 +0200)]
Client: Includes stdlib.h for malloc()
Pavel Tvrdik [Wed, 30 Nov 2016 09:40:57 +0000 (10:40 +0100)]
filter/test.conf: Minor changes in order of calls
Pavel Tvrdik [Wed, 30 Nov 2016 10:55:33 +0000 (11:55 +0100)]
nest/a-path.c: Fix description of BS constant (block size)
Pavel Tvrdik [Wed, 30 Nov 2016 09:21:43 +0000 (10:21 +0100)]
conf/conf.h: Fix a description of a variable in a structure
Pavel Tvrdik [Wed, 30 Nov 2016 09:17:23 +0000 (10:17 +0100)]
conf/conf.c: Revert some includes removing
Pavel Tvrdik [Wed, 30 Nov 2016 09:11:12 +0000 (10:11 +0100)]
Remove filter/test_bgp_filtering.conf file
It was an example filtering configuration from BIRD's wiki.
Pavel Tvrdik [Wed, 30 Nov 2016 09:06:37 +0000 (10:06 +0100)]
Merge test6.conf IPv6 tests into test.conf
Pavel Tvrdik [Wed, 16 Nov 2016 13:05:59 +0000 (14:05 +0100)]
filter/test.conf: Extend tests
Pavel Tvrdik [Wed, 16 Nov 2016 12:46:08 +0000 (13:46 +0100)]
filter/test.conf: Reorder tests
Tests are sorted from trivial tests to more complex tests
Pavel Tvrdik [Wed, 16 Nov 2016 11:18:06 +0000 (12:18 +0100)]
filter/test.conf: Replace print func with assert and format
Pavel Tvrdik [Wed, 16 Nov 2016 11:15:43 +0000 (12:15 +0100)]
Birdtest: Add function format in grammar for stringify expression
Pavel Tvrdik [Wed, 16 Nov 2016 11:10:34 +0000 (12:10 +0100)]
Add lp_strdup function for string duplication on linpool
Pavel Tvrdik [Wed, 16 Nov 2016 10:09:55 +0000 (11:09 +0100)]
Birdtest: Remove bt_assert command from term
The bt_assert function does not return any value, so it was useless to
have a option in term definition.
Pavel Tvrdik [Wed, 16 Nov 2016 10:03:39 +0000 (11:03 +0100)]
Lexer: Add a quotation mark back while parsing quotes
Thanks to Ondrej Zajicek for code.
Pavel Tvrdik [Fri, 11 Nov 2016 16:43:09 +0000 (17:43 +0100)]
Birdtest: Replace BT_SUCCESS and BT_FAILURE with 1 and 0
Pavel Tvrdik [Fri, 11 Nov 2016 16:03:43 +0000 (17:03 +0100)]
Birdtest: Put hard new lines for strict line width
This patch ensures width of output lines from testing framework (not
debug output). So output piped lined into file that has default width 80
cols is now correctly wrapped.
Pavel Tvrdik [Fri, 11 Nov 2016 16:02:16 +0000 (17:02 +0100)]
birdtest: Fix no-forked mode in trie_test
Ondrej Zajicek (work) [Wed, 9 Nov 2016 18:08:25 +0000 (19:08 +0100)]
Filter: Add long community tests
Based on Pavel Tvrdik's int-test-lc branch.
Ondrej Zajicek (work) [Wed, 9 Nov 2016 15:36:34 +0000 (16:36 +0100)]
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.
Ondrej Zajicek (work) [Tue, 8 Nov 2016 18:27:58 +0000 (19:27 +0100)]
Merge branch 'master' into int-new
Ondrej Zajicek (work) [Tue, 8 Nov 2016 16:46:29 +0000 (17:46 +0100)]
Minor code cleanups
Ondrej Zajicek (work) [Tue, 8 Nov 2016 16:03:31 +0000 (17:03 +0100)]
Merge tag 'v1.6.2' into int-new
Ondrej Zajicek (work) [Thu, 3 Nov 2016 08:53:53 +0000 (09:53 +0100)]
Add missing extern
Ondrej Zajicek (work) [Sun, 30 Oct 2016 22:51:23 +0000 (23:51 +0100)]
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
Ondrej Zajicek (work) [Thu, 27 Oct 2016 18:58:21 +0000 (20:58 +0200)]
OSPF: Use message authentication interface
Based on former commit from Pavel Tvrdik
Ondrej Zajicek (work) [Wed, 26 Oct 2016 14:07:45 +0000 (16:07 +0200)]
RIP: Use message authentication interface
Based on former commit from Pavel Tvrdik
Pavel Tvrdík [Thu, 28 Jan 2016 16:05:15 +0000 (17:05 +0100)]
DOC: Password algorithm option
Pavel Tvrdík [Tue, 26 Jan 2016 15:45:13 +0000 (16:45 +0100)]
Nest: Add support for MAC algorithms in grammar
Ondrej Zajicek (work) [Tue, 25 Oct 2016 15:04:17 +0000 (17:04 +0200)]
Add generic message authentication interface
Add generic interface for generating and verifying MACs (message
authentication codes). Replace multiple HMAC implementation with
a generic one.
Ondrej Zajicek (work) [Tue, 1 Nov 2016 15:18:27 +0000 (16:18 +0100)]
BSD: Fix build on OpenBSD broken by previous commit
Jan Moskyto Matejka [Fri, 14 Oct 2016 13:37:04 +0000 (15:37 +0200)]
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.
Ondrej Zajicek (work) [Tue, 1 Nov 2016 10:37:49 +0000 (11:37 +0100)]
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.
Ondrej Filip [Thu, 27 Oct 2016 09:08:28 +0000 (11:08 +0200)]
IANA assigned a different number to large BGP communities - changed.
Ondrej Zajicek (work) [Tue, 18 Oct 2016 11:06:05 +0000 (13:06 +0200)]
Filter: Minor formatting changes in test.conf
Pavel Tvrdik [Thu, 13 Oct 2016 14:57:21 +0000 (16:57 +0200)]
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.
Pavel Tvrdik [Thu, 13 Oct 2016 13:17:41 +0000 (15:17 +0200)]
Filter: Expand testing of large community sets
Jan Moskyto Matejka [Wed, 12 Oct 2016 12:16:34 +0000 (14:16 +0200)]
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.
Pavel Tvrdik [Mon, 5 Sep 2016 09:20:28 +0000 (11:20 +0200)]
Doc: Change debug to { flag1|flag2|flag3 [, ...] } style
Thanks to Micah Anderson for bug report and Ondrej Zajicek for the idea!
Pavel Tvrdik [Mon, 19 Sep 2016 14:01:29 +0000 (16:01 +0200)]
Nest: Remove trailing whitespaces
Pavel Tvrdik [Mon, 26 Sep 2016 16:05:51 +0000 (18:05 +0200)]
Doc: Fix deprecated unescaped braces in perl script
This commit should fix warning `make docs'
./sgml2html bird.sgml Unescaped left brace in regex is deprecated,
passed through in regex; marked by <-- HERE in m/\\nameurl{ <-- HERE
(.*)}{(.*)}/ at fmt_latex2e.pl line 287.
Pavel Tvrdik [Sat, 1 Oct 2016 10:50:29 +0000 (12:50 +0200)]
Tree/Trie: Check the end of buffer
We set buffer->pos to buffer->end in function buffer_print() when
bvsnprintf() failed, so there would be uninitialized memory between
the old buffer->pos and the current buffer->pos.
Pavel Tvrdik [Thu, 29 Sep 2016 16:08:40 +0000 (18:08 +0200)]
Doc: Add tag for links to RFCs
Pavel Tvrdik [Mon, 3 Oct 2016 10:35:36 +0000 (12:35 +0200)]
Doc: Fix inline <htmlurl></htmlurl>
Don't make space before or after link name.
Pavel Tvrdik [Mon, 3 Oct 2016 10:04:44 +0000 (12:04 +0200)]
Doc: Do not use symlinks for files
Pavel Tvrdik [Mon, 3 Oct 2016 09:46:40 +0000 (11:46 +0200)]
Doc: Generate one-sided version
This removes jumping offset for odd and even pages for binding book.
Pavel Tvrdik [Mon, 3 Oct 2016 09:39:56 +0000 (11:39 +0200)]
Doc: Use [table t] or [table name]
Pavel Tvrdik [Mon, 3 Oct 2016 09:36:44 +0000 (11:36 +0200)]
Doc: Fix unnecessary special chars
Pavel Tvrdik [Mon, 3 Oct 2016 08:59:43 +0000 (10:59 +0200)]
Doc: Enable break lines in <tag></tag>
Pavel Tvrdik [Mon, 3 Oct 2016 08:32:28 +0000 (10:32 +0200)]
Doc: Daemon command-line options alphabet order
Pavel Tvrdik [Mon, 3 Oct 2016 08:22:24 +0000 (10:22 +0200)]
Doc: Add command-line options --version, --help
Pavel Tvrdik [Mon, 26 Sep 2016 16:00:59 +0000 (18:00 +0200)]
Doc: Add labels to all chapters and options
Pavel Tvrdik [Thu, 29 Sep 2016 12:05:25 +0000 (14:05 +0200)]
Doc: Generate clickable PDF
Pavel Tvrdik [Thu, 29 Sep 2016 09:20:04 +0000 (11:20 +0200)]
Doc: Fix whitespaces
Ondrej Zajicek (work) [Tue, 4 Oct 2016 21:19:35 +0000 (23:19 +0200)]
Filter: fix missing separator
Ondrej Zajicek (work) [Tue, 4 Oct 2016 10:45:39 +0000 (12:45 +0200)]
Nest: Fix signedness of large communities
Ondrej Zajicek (work) [Mon, 3 Oct 2016 22:31:43 +0000 (00:31 +0200)]
Doc: Documentation for large communities
Ondrej Zajicek (work) [Sat, 1 Oct 2016 20:31:01 +0000 (22:31 +0200)]
Filter: large community sets
Add support for lc sets to filter code. Grammar of (small) community sets
has to be updated to avoid parser collisions.
Ondrej Zajicek (work) [Sat, 1 Oct 2016 10:50:29 +0000 (12:50 +0200)]
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.
Ondrej Zajicek (work) [Thu, 29 Sep 2016 13:06:19 +0000 (15:06 +0200)]
NEWS and version update
Pavel Tvrdik [Thu, 29 Sep 2016 11:28:18 +0000 (13:28 +0200)]
Docs: fix BFD label
BFD headline will appear in Table of Contents again.
Jan Moskyto Matejka [Thu, 29 Sep 2016 10:00:53 +0000 (12:00 +0200)]
Kernel socket missing err_hook fix
Thanks to Tim Weippert for bugreport.
Ondrej Zajicek (work) [Thu, 22 Sep 2016 11:34:56 +0000 (13:34 +0200)]
NEWS and version update
Pavel Tvrdik [Tue, 20 Sep 2016 13:13:01 +0000 (15:13 +0200)]
Add !~ operator to filter grammar
Ondrej Zajicek [Wed, 21 Sep 2016 10:07:59 +0000 (12:07 +0200)]
Remove cvsignore
We have gitignore
Ondrej Zajicek (work) [Mon, 19 Sep 2016 10:29:56 +0000 (12:29 +0200)]
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
scope automatically.
Pavel Tvrdik [Thu, 8 Sep 2016 14:27:40 +0000 (16:27 +0200)]
Main: Improve BIRD help messages
Pavel Tvrdik [Wed, 7 Sep 2016 12:58:51 +0000 (14:58 +0200)]
Add stdlib.h to client/commands.c
Pavel Tvrdik [Thu, 8 Sep 2016 11:45:36 +0000 (13:45 +0200)]
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.
Pavel Tvrdik [Tue, 6 Sep 2016 15:08:45 +0000 (17:08 +0200)]
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,
linpool was not flushed properly and memory leaked.
Add linpool argument to rt_export_merged() and use @krt_filter_lp when
called from kernel protocol.
Thanks to Justin Cattle and Alexander Frolkin for the bugreport.
(Commit squashed and updated by Ondrej Zajicek)
Pavel Tvrdik [Tue, 6 Sep 2016 15:18:15 +0000 (17:18 +0200)]
Filter: Prefer xmalloc/xfree to malloc/free
Ondrej Zajicek (work) [Thu, 15 Sep 2016 12:59:06 +0000 (14:59 +0200)]
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
filters, that is not consistent with the way how Linux kernel handles
route metric - not just a route attribute, but a part of a route key.
Ondrej Zajicek (work) [Wed, 14 Sep 2016 09:40:15 +0000 (11:40 +0200)]
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.
Thanks to Mikhail Sennikovskii for the original patch.
Ondrej Zajicek (work) [Tue, 30 Aug 2016 15:17:27 +0000 (17:17 +0200)]
Nest: Keep multipath next hops sorted
Ondrej Zajicek (work) [Wed, 31 Aug 2016 12:02:41 +0000 (14:02 +0200)]
KRT: Fix trivial error
Ondrej Zajicek (work) [Tue, 30 Aug 2016 10:43:46 +0000 (12:43 +0200)]
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.
Ondrej Zajicek (work) [Tue, 23 Aug 2016 15:35:26 +0000 (17:35 +0200)]
Merge remote-tracking branch 'origin/misc-fixes'
Ondrej Zajicek (work) [Tue, 23 Aug 2016 15:33:00 +0000 (17:33 +0200)]
Minor README update