]>
git.ipfire.org Git - thirdparty/bird.git/log
Ondrej Zajicek (work) [Mon, 18 May 2020 20:16:37 +0000 (22:16 +0200)]
RIP: Triggered RIP (demand circuit) documentation
Ondrej Zajicek (work) [Mon, 18 May 2020 14:25:08 +0000 (16:25 +0200)]
Nest: Implement BGP path mask loop operator
Implement regex-like '+' operator in BGP path masks to match previous
path mask item multiple times. This is useful as ASNs may appear
multiple times in paths due to path prepending for traffic engineering
purposes.
Ondrej Zajicek (work) [Tue, 12 May 2020 01:46:47 +0000 (03:46 +0200)]
RIP: Fix handling of passive mode for demand circuit interfaces
Ondrej Zajicek (work) [Mon, 11 May 2020 02:29:36 +0000 (04:29 +0200)]
Nest: Fix neighbor handling for colliding ranges
Resolve neighbors using longest prefix match. Although interface ranges
should not generally collide, it may happen for unnumbered links.
Thanks to Kenth Eriksson for the bugreport.
Ondrej Zajicek (work) [Tue, 5 May 2020 00:20:30 +0000 (02:20 +0200)]
Tests: Activate BGP-int test
Matous Holinka [Wed, 29 Apr 2020 14:15:17 +0000 (16:15 +0200)]
Tests: Change unsupported Ubuntu 19.04 for supported version 19.10
Ondrej Zajicek (work) [Wed, 29 Apr 2020 13:07:33 +0000 (15:07 +0200)]
Filter: Remove quitbird command
No need for this debug filter command and it can be abused from CLI.
Maria Matejka [Fri, 1 May 2020 13:41:42 +0000 (15:41 +0200)]
Fixed a harmless warning in production build
Maria Matejka [Fri, 1 May 2020 13:34:17 +0000 (15:34 +0200)]
Merge remote-tracking branch 'origin/mq-static-analysis'
Maria Matejka [Mon, 19 Aug 2019 12:43:14 +0000 (14:43 +0200)]
Slab: Init node in slab head to NULLs.
Maria Matejka [Sat, 17 Aug 2019 14:09:29 +0000 (16:09 +0200)]
Timer: Adding missing initializer.
Maria Matejka [Sat, 17 Aug 2019 13:03:09 +0000 (15:03 +0200)]
Lexer: strtoul shall never set endptr to NULL; it should be an error
Maria Matejka [Sat, 17 Aug 2019 12:57:41 +0000 (14:57 +0200)]
Unix socket: Path length check directly before copying the path.
This is not needed as the string is always short enough, anyway
it may be needed in future and one strlen during BIRD start is
cheap enough.
Maria Matejka [Mon, 19 Aug 2019 12:36:51 +0000 (14:36 +0200)]
Lists: Replaced replace_node() by update_node() which is the only use of that function.
Maria Matejka [Sat, 17 Aug 2019 12:03:47 +0000 (14:03 +0200)]
Lists: fix a stupid sanitizer bug
Maria Matejka [Sat, 17 Aug 2019 12:18:41 +0000 (14:18 +0200)]
Uninitialized list nodes fixes
Maria Matejka [Sat, 17 Aug 2019 11:36:36 +0000 (13:36 +0200)]
Nest: Added const to ea_show just to declare that this shouldn't really change anything
Maria Matejka [Sat, 17 Aug 2019 08:28:55 +0000 (10:28 +0200)]
OSPF: Zero-initialization of a temporary neighbor
Maria Matejka [Sat, 17 Aug 2019 08:20:46 +0000 (10:20 +0200)]
Nest: Several assumptions to tame the static analyzer
Maria Matejka [Sat, 17 Aug 2019 06:59:06 +0000 (08:59 +0200)]
Nest: Assumption in rt-show for not-so-intuitive invariant.
Maria Matejka [Sat, 17 Aug 2019 06:54:08 +0000 (08:54 +0200)]
Static scanner and expensive debugging setup fix
Maria Matejka [Fri, 16 Aug 2019 19:22:56 +0000 (21:22 +0200)]
RPKI: fixed rare va_list leak
Maria Matejka [Fri, 16 Aug 2019 19:15:49 +0000 (21:15 +0200)]
Static check: Don't report dead code
Maria Matejka [Fri, 16 Aug 2019 12:04:53 +0000 (14:04 +0200)]
OSPF: Adding a note about a static analyzer result.
Maria Matejka [Fri, 16 Aug 2019 10:47:13 +0000 (12:47 +0200)]
OSPF: variable-length array of size 0 replaced by alloca()'d pointer
NULL pointer is safer than a random pointer onto stack if this function
gets changed and eventually broken.
Maria Matejka [Wed, 14 Aug 2019 14:23:58 +0000 (16:23 +0200)]
List expensive check.
Maria Matejka [Wed, 14 Aug 2019 14:22:39 +0000 (16:22 +0200)]
Expensive check declaration
Intended to be run at every operation with complex data structures
to check their consistency and validity.
Maria Matejka [Wed, 14 Aug 2019 10:29:04 +0000 (12:29 +0200)]
IPv6 address parser: fail on incomplete addresses
Maria Matejka [Wed, 14 Aug 2019 09:49:20 +0000 (11:49 +0200)]
Filter: Don't alloc varargs array if its length would be zero
Maria Matejka [Wed, 14 Aug 2019 09:31:03 +0000 (11:31 +0200)]
Filter: Removed forgotten dead code
Maria Matejka [Mon, 27 Apr 2020 20:33:10 +0000 (22:33 +0200)]
Non-null function argument declaration
Ondrej Zajicek (work) [Wed, 29 Apr 2020 00:50:29 +0000 (02:50 +0200)]
BGP: Fix handling of strange IPv6 link-local-only next hops
There are three common ways how to encode IPv6 link-local-only next hops:
(:: ll), (ll), and (ll ll). We use the first one but we should accept all
three. The patch fixes handling of the last one.
Thanks to Sebastian Hahn for the bugreport.
Maria Matejka [Thu, 1 Aug 2019 12:25:01 +0000 (14:25 +0200)]
More assertion categories
Maria Matejka [Wed, 14 Aug 2019 08:28:23 +0000 (10:28 +0200)]
Not calling memcpy with n=0.
Maria Matejka [Wed, 14 Aug 2019 09:06:49 +0000 (11:06 +0200)]
Filter: fixed omitted overflow check in EC constructor
Maria Matejka [Wed, 14 Aug 2019 08:14:15 +0000 (10:14 +0200)]
Makefile rule for static analyzer
Ondrej Zajicek (work) [Tue, 28 Apr 2020 12:58:43 +0000 (14:58 +0200)]
Tests: Activate BGP-auth test
Ondrej Zajicek (work) [Tue, 28 Apr 2020 01:52:47 +0000 (03:52 +0200)]
Tests: Activate OSPF-VRF test
Ondrej Zajicek (work) [Wed, 22 Apr 2020 14:03:37 +0000 (16:03 +0200)]
Tests: Activate BGP test
Nasato Goto [Wed, 15 Apr 2020 01:46:53 +0000 (03:46 +0200)]
BGP: Fix handling of 16bit-only ASN translation
The bug generated invalid AGGREGATOR attribute during translation of
32bit ASN to 16bit-only BGP peer. The patch fixes that.
Maria Matejka [Wed, 8 Apr 2020 20:25:15 +0000 (22:25 +0200)]
Configuration strings are constant.
This is merely a const propagation. There was no problem in there.
Ondrej Zajicek (work) [Sat, 28 Mar 2020 16:17:51 +0000 (17:17 +0100)]
Doc: Update prefix set comment
Maria Matejka [Sat, 4 Apr 2020 23:12:06 +0000 (01:12 +0200)]
Fletcher16 test fixed to work at bigendian architectures.
To be honest, it was wrong in concept, anyway it accidentally worked.
Ondrej Zajicek (work) [Thu, 26 Mar 2020 03:53:23 +0000 (04:53 +0100)]
Filter: Remove mixed address tests and fix formatting
Ondrej Zajicek (work) [Thu, 26 Mar 2020 02:57:48 +0000 (03:57 +0100)]
Filter: Optimize IPv4 prefix sets
Use separate IPv4 and IPv6 implementation of prefix sets. Just this
change makes IPv4 prefix sets 60% smaller and 50% faster.
Ondrej Zajicek (work) [Sat, 14 Mar 2020 16:04:49 +0000 (17:04 +0100)]
RIP: Improvements to demand circuit mode
Restart iface after changing demand circuit mode during reconfiguration.
Fix next_regular interval reset during reconfiguration. Send flushing
response when iface goes down.
Maria Matejka [Mon, 27 Jan 2020 16:42:11 +0000 (17:42 +0100)]
Perf: changed route update pattern to be more like common protocols
Ondrej Zajicek (work) [Thu, 5 Mar 2020 22:51:28 +0000 (23:51 +0100)]
Netlink: Handle interfaces with missing broadcast addresses
Ondrej Zajicek (work) [Thu, 5 Mar 2020 21:01:30 +0000 (22:01 +0100)]
Tests: Enforce cleanup before running a test
Ondrej Zajicek (work) [Thu, 5 Mar 2020 16:39:52 +0000 (17:39 +0100)]
Tests: Activate OSPF tests
Ondrej Zajicek (work) [Tue, 3 Mar 2020 18:04:05 +0000 (19:04 +0100)]
Flowspec: Fix tests
Missing dst no longer generates error.
Ondrej Zajicek (work) [Tue, 3 Mar 2020 16:45:16 +0000 (17:45 +0100)]
BGP: Handle flowspec rules without dst part
The RFC 5575 does not explicitly reject flowspec rules without dst part,
it just requires dst part in validation procedure for feasibility, which
we do not implement anyway. Thus flow without dst prefix is syntactically
valid, but unfeasible (if feasibilty testing is done).
Thanks to Alex D. for the bugreport.
Ondrej Zajicek (work) [Thu, 27 Feb 2020 15:16:48 +0000 (16:16 +0100)]
BGP: Support for MD5SIG together with remote range
When dynamic BGP with remote range is configured, MD5SIG needs to use
newer socket option (TCP_MD5SIG_EXT) to specify remote addres range for
listening socket.
Thanks to Adam Kułagowski for the suggestion.
Ondrej Zajicek (work) [Fri, 21 Feb 2020 01:35:50 +0000 (02:35 +0100)]
RIP: Demand circuit support (RFC 2091)
Ondrej Zajicek (work) [Fri, 14 Feb 2020 21:37:07 +0000 (22:37 +0100)]
RIP: Fix crash when interface is removed
Recent changes in neighbor code caused RIP to access neighbor field which
is NULL during interface/neighbor removal and caused crash when debug
messages are enabled. Use correct field to get iface from neighbor.
Maria Matejka [Tue, 4 Feb 2020 09:34:46 +0000 (10:34 +0100)]
Conf: Better error message when reading iproute2 config
Reported by: Martin Weinelt <martin@darmstadt.freifunk.net>
Maria Matejka [Tue, 4 Feb 2020 09:15:35 +0000 (10:15 +0100)]
RPKI: Allow build without libSSH
Maria Matejka [Tue, 4 Feb 2020 09:11:16 +0000 (10:11 +0100)]
Added missing extern
Thanks to Robert Scheck <bird@robert-scheck.de> who reported it
and Toke Høiland-Jørgensen <toke@toke.dk> who suggested this patch.
Ondrej Zajicek (work) [Tue, 28 Jan 2020 17:07:25 +0000 (18:07 +0100)]
BFD: Option to specify which class of BFD sessions are accepted
Allows to configure IPv4/IPv6-only or direct/multihop-only BFD protocol
instances.
Ondrej Zajicek (work) [Thu, 9 Jan 2020 01:59:59 +0000 (02:59 +0100)]
OSPF: Fix bad initialization of tx_hdrlen field
Function ifa_tx_hdrlen() uses fields autype and passwords, so it must be
called after these are set.
Thanks to Kenth Eriksson for the bugreport.
Ondrej Zajicek (work) [Tue, 7 Jan 2020 17:35:03 +0000 (18:35 +0100)]
KRT: Improve syncer code to avoid using temporary data in rtable
The old code stored route verdicts and temporary routes directly in
rtable. The new code do not store received routes (it immediately
compares them with exported routes and resolves conflicts) and uses
internal bitmap to keep track of which routes were received and which
needs to be reinstalled.
By not putting 'invalid' temporary routes to rtable, we keep rtable
in consistent state, therefore scan no longer needs to be atomic
operation and could be splitted to multiple events.
Ondrej Zajicek (work) [Tue, 7 Jan 2020 00:24:30 +0000 (01:24 +0100)]
Filter: Fix typecheck for AND/OR.
Do not apply dynamic type check for second argument of AND/OR, as it is
not evaluated immediately like regular argument would be.
Thanks to Mikael for the bugreport.
Ondrej Zajicek (work) [Thu, 19 Dec 2019 15:34:35 +0000 (16:34 +0100)]
KRT: Remove KRF_SYNC_ERROR flag
This info is now stored in an internal bmap. Unfortunately, net.flags
is still needed for temporary kernel data.
Ondrej Zajicek (work) [Tue, 17 Dec 2019 15:30:29 +0000 (16:30 +0100)]
KRT: Fix removal of KRF_INSTALLED
Use route id from net->routes to check export_map. Route received from
sysdep KRT code does not have proper id.
Ondrej Zajicek (work) [Mon, 16 Dec 2019 23:01:53 +0000 (00:01 +0100)]
Test: Improve filter_test
Initial parsing of test.conf must be done directly in filter_test main,
while reconfiguration is handled as a regular test. Also fix several
minor issues in test code.
Ondrej Zajicek (work) [Mon, 16 Dec 2019 17:05:56 +0000 (18:05 +0100)]
Doc: Fix documentation of BGP gateway option
Thanks to Nico Schottelius for the bugreport.
Ondrej Zajicek (work) [Mon, 16 Dec 2019 01:40:28 +0000 (02:40 +0100)]
KRT: Remove KRF_INSTALLED flag
The same information is stored in export_map of kernel protocol.
Maria Matejka [Thu, 12 Dec 2019 14:42:29 +0000 (15:42 +0100)]
Filter: fix filter comparison test
Ondrej Zajicek (work) [Tue, 10 Dec 2019 17:53:16 +0000 (18:53 +0100)]
Filter: Fix function comparison
Check the SYM_FLAG_SAME in new symbols. The old code checked that
in old symbols (f2).
Ondrej Zajicek (work) [Tue, 10 Dec 2019 17:18:02 +0000 (18:18 +0100)]
Nest: Fix bitmap cleanup
Channel currently does not have independent pool and uses protocol pool,
which is freed when protocol changes state to down, while channel is
still in flushing. Move some some cleanup code to channel_do_flush()
so it is done before freeing of protocol pool.
Ondrej Zajicek (work) [Mon, 9 Dec 2019 03:23:01 +0000 (04:23 +0100)]
Filter: Add support for src/dst accessors for Flowspec and SADR
Ondrej Zajicek (work) [Tue, 3 Dec 2019 17:05:41 +0000 (18:05 +0100)]
BGP: Add some statistics
Add some statistic counters to BGP consistent with BGP MIB (RFC 4273),
including persistent 'FSM established transitions'.
Matous Holinka [Tue, 26 Nov 2019 18:33:01 +0000 (19:33 +0100)]
CI: Add more build tests
Add more Docker images with distributions (CentOS 8, Debian 10,
Fedora 27-31, OpenSUSE 15.0 & 15.1, and Ubuntu 18.04 & 19.04).
Fix some issues with older ones.
Ondrej Zajicek (work) [Sun, 10 Nov 2019 23:24:07 +0000 (00:24 +0100)]
CI: Cleanup of job templates
Env templates were used for separate IPv4/IPv6 build, that is no longer
needed.
Ondrej Zajicek (work) [Sun, 10 Nov 2019 21:58:23 +0000 (22:58 +0100)]
CI: Update new netlab location
Ondrej Zajicek (work) [Sun, 10 Nov 2019 02:43:30 +0000 (03:43 +0100)]
CI: Minor update
Ondrej Zajicek (work) [Sun, 10 Nov 2019 02:02:58 +0000 (03:02 +0100)]
Apply relevant changes from branch mh-test-gitlab
Ondrej Zajicek (work) [Thu, 31 Oct 2019 23:13:59 +0000 (00:13 +0100)]
Gitlab test
Ondrej Zajicek (work) [Mon, 9 Sep 2019 00:55:32 +0000 (02:55 +0200)]
Nest: Use bitmaps to keep track of exported routes
Use a hierarchical bitmap in a routing table to assign ids to routes, and
then use bitmaps (indexed by route id) in channels to keep track whether
routes were exported. This avoids unreliable and inefficient re-evaluation
of filters for old routes in order to determine whether they were exported.
Ondrej Zajicek (work) [Mon, 9 Sep 2019 00:43:39 +0000 (02:43 +0200)]
Lib: Basic and hierarchical bitmaps
Basic bitmap is obvious. Hierarchical bitmap is structure of several
bitmaps, where higher levels are conjunctions of intervals on level
below, allowing for efficient lookup of first unset bit.
Ondrej Zajicek (work) [Tue, 26 Nov 2019 15:43:09 +0000 (16:43 +0100)]
CLI: Fix continuation lines after final one
Continuation lines may use short form (with space instead of message
number), but this should not be done when previous line is final.
Thanks to Kenth Eriksson for the bugreport and analysis.
Ondrej Zajicek (work) [Mon, 18 Nov 2019 16:44:34 +0000 (17:44 +0100)]
BGP: Fix processing of IPv6 Flowspec
During NLRI parsing of IPv6 Flowspec, dst prefix was not properly
extracted from NLRI, therefore a received flow was stored in a different
position in flowspec routing table, and was not reachable by command
'show route <flow>'.
Add proper prefix part accessors to flowspec code and use them from BGP
NLRI parsing code.
Thanks to Alex D. for the bugreport.
Ondrej Zajicek [Tue, 12 Nov 2019 17:13:21 +0000 (18:13 +0100)]
Netlink: Handle IPv4 routes with IPv6 nexthops
Accept RTA_VIA attribute in all cases. The old code always used
RTA_GATEWAY for IPv4 / IPv6 and RTA_VIA for MPLS. The new code uses
RTA_VIA in cases where AF of network and AF of nexthop differs.
Ondrej Zajicek (work) [Sun, 10 Nov 2019 01:06:07 +0000 (02:06 +0100)]
BGP: Add option to enforce first AS in AS_PATH
This is optional check described in RFC 4271. Although this can be also
done by filters, it is widely implemented option in BGP implementations.
Thanks to Eugene Bogomazov for the original patch.
Ondrej Zajicek (work) [Tue, 5 Nov 2019 15:29:47 +0000 (16:29 +0100)]
Doc: Minor fix
Ondrej Zajicek (work) [Tue, 5 Nov 2019 15:00:25 +0000 (16:00 +0100)]
Doc: Add documentation for BGP option 'allow as sets'
Ondrej Zajicek (work) [Tue, 5 Nov 2019 14:14:57 +0000 (15:14 +0100)]
Filter: Add type info for more instructions
Ondrej Zajicek (work) [Tue, 5 Nov 2019 14:13:57 +0000 (15:13 +0100)]
Filter: Improve typecheck error messages
Ondrej Zajicek (work) [Wed, 23 Oct 2019 20:56:23 +0000 (22:56 +0200)]
Filter: Better constant promotion
We use constant promotion from IPv4 to Router-ID values, as they have
same literals. Instead of ad-hoc code in filter instructions, add
constant promotion code to parse-time typecheck code.
Ondrej Zajicek (work) [Wed, 23 Oct 2019 20:53:23 +0000 (22:53 +0200)]
Filter: Improved parse-time typechecks
Ondrej Zajicek [Tue, 22 Oct 2019 17:19:36 +0000 (19:19 +0200)]
Filter: Parse-time typechecks
Most expressions can be type-validated in parse time. It is not
strong enough to eliminate runtime checks, but at least one gets
errors immediately during reconfigure.
Ondrej Zajicek (work) [Mon, 4 Nov 2019 21:07:03 +0000 (22:07 +0100)]
BGP: Add option to reject AS_SETs
There is a pending draft to make them obsolete
Ondrej Zajicek (work) [Sun, 3 Nov 2019 19:26:54 +0000 (20:26 +0100)]
Support for address family constants
We already had them defined on BGP level, but they are more general.
Ondrej Zajicek (work) [Sun, 3 Nov 2019 19:25:42 +0000 (20:25 +0100)]
Nest: Fix bug in export table
For regular channels do not compare src in export table, as we want to
keep here only the best (exported) route per network.
Ondrej Zajicek (work) [Fri, 25 Oct 2019 23:28:38 +0000 (01:28 +0200)]
BGP: RFC 8654 got released
Ondrej Zajicek (work) [Fri, 25 Oct 2019 11:28:51 +0000 (13:28 +0200)]
Nest: Fix primary flag in show route
The route is changed by rte_make_tmp_attrs(), so we need to compare
net->routes to the original one.
Thanks to Kenth Eriksson for the bugreport.
Ondrej Zajicek (work) [Thu, 24 Oct 2019 15:47:45 +0000 (17:47 +0200)]
BGP: Fix handling of transitive extended communities
Transitive extended communities should be removed on external sessions,
the old code them in all cases.
Thanks to Jean-Daniel Pauget for the original patch.
Ondrej Zajicek [Tue, 22 Oct 2019 14:20:38 +0000 (16:20 +0200)]
Accept uppercase letters in iproute2 names
Names read from texfiles in /etc/iproute2/* are normalized by replacing
non-alphanumeric chars with underscore. The patch fixes handling of
uppercase letters, which were handled as non-alphanumberic.
Thanks to Igor Gavrilov for the bugreport.
Fabrice Fontaine [Sat, 19 Oct 2019 10:50:27 +0000 (12:50 +0200)]
Nest: Fix build without protocols
(CHECK keyword added by commiter)
Ondrej Zajicek (work) [Sat, 19 Oct 2019 01:37:43 +0000 (03:37 +0200)]
RPKI: Fix handling of IPv6 cache addresses
The old code used just sizeof(struct sockaddr) bytes of IP address.