]> git.ipfire.org Git - thirdparty/bird.git/log
thirdparty/bird.git
4 years agoDoc: Update prefix set comment
Ondrej Zajicek (work) [Sat, 28 Mar 2020 16:17:51 +0000 (17:17 +0100)] 
Doc: Update prefix set comment

4 years agoFletcher16 test fixed to work at bigendian architectures.
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.

4 years agoFilter: Remove mixed address tests and fix formatting
Ondrej Zajicek (work) [Thu, 26 Mar 2020 03:53:23 +0000 (04:53 +0100)] 
Filter: Remove mixed address tests and fix formatting

4 years agoFilter: Optimize IPv4 prefix sets
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.

4 years agoRIP: Improvements to demand circuit mode
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.

4 years agoPerf: changed route update pattern to be more like common protocols
Maria Matejka [Mon, 27 Jan 2020 16:42:11 +0000 (17:42 +0100)] 
Perf: changed route update pattern to be more like common protocols

4 years agoNetlink: Handle interfaces with missing broadcast addresses
Ondrej Zajicek (work) [Thu, 5 Mar 2020 22:51:28 +0000 (23:51 +0100)] 
Netlink: Handle interfaces with missing broadcast addresses

4 years agoTests: Enforce cleanup before running a test
Ondrej Zajicek (work) [Thu, 5 Mar 2020 21:01:30 +0000 (22:01 +0100)] 
Tests: Enforce cleanup before running a test

4 years agoTests: Activate OSPF tests
Ondrej Zajicek (work) [Thu, 5 Mar 2020 16:39:52 +0000 (17:39 +0100)] 
Tests: Activate OSPF tests

4 years agoFlowspec: Fix tests
Ondrej Zajicek (work) [Tue, 3 Mar 2020 18:04:05 +0000 (19:04 +0100)] 
Flowspec: Fix tests

Missing dst no longer generates error.

4 years agoBGP: Handle flowspec rules without dst part
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.

4 years agoBGP: Support for MD5SIG together with remote range
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.

4 years agoRIP: Demand circuit support (RFC 2091)
Ondrej Zajicek (work) [Fri, 21 Feb 2020 01:35:50 +0000 (02:35 +0100)] 
RIP: Demand circuit support (RFC 2091)

4 years agoRIP: Fix crash when interface is removed
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.

4 years agoConf: Better error message when reading iproute2 config
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>

4 years agoRPKI: Allow build without libSSH
Maria Matejka [Tue, 4 Feb 2020 09:15:35 +0000 (10:15 +0100)] 
RPKI: Allow build without libSSH

4 years agoAdded missing extern
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.

4 years agoBFD: Option to specify which class of BFD sessions are accepted
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.

4 years agoOSPF: Fix bad initialization of tx_hdrlen field
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.

4 years agoKRT: Improve syncer code to avoid using temporary data in rtable
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.

4 years agoFilter: Fix typecheck for AND/OR.
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.

4 years agoKRT: Remove KRF_SYNC_ERROR flag
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.

4 years agoKRT: Fix removal of KRF_INSTALLED
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.

4 years agoTest: Improve filter_test
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.

4 years agoDoc: Fix documentation of BGP gateway option
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.

4 years agoKRT: Remove KRF_INSTALLED flag
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.

4 years agoFilter: fix filter comparison test
Maria Matejka [Thu, 12 Dec 2019 14:42:29 +0000 (15:42 +0100)] 
Filter: fix filter comparison test

4 years agoFilter: Fix function comparison
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).

4 years agoNest: Fix bitmap cleanup
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.

4 years agoFilter: Add support for src/dst accessors for Flowspec and SADR
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

4 years agoBGP: Add some statistics
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'.

4 years agoCI: Add more build tests
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.

4 years agoCI: Cleanup of job templates
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.

4 years agoCI: Update new netlab location
Ondrej Zajicek (work) [Sun, 10 Nov 2019 21:58:23 +0000 (22:58 +0100)] 
CI: Update new netlab location

4 years agoCI: Minor update
Ondrej Zajicek (work) [Sun, 10 Nov 2019 02:43:30 +0000 (03:43 +0100)] 
CI: Minor update

4 years agoApply relevant changes from branch mh-test-gitlab
Ondrej Zajicek (work) [Sun, 10 Nov 2019 02:02:58 +0000 (03:02 +0100)] 
Apply relevant changes from branch mh-test-gitlab

4 years agoGitlab test
Ondrej Zajicek (work) [Thu, 31 Oct 2019 23:13:59 +0000 (00:13 +0100)] 
Gitlab test

4 years agoNest: Use bitmaps to keep track of exported routes
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.

4 years agoLib: Basic and hierarchical bitmaps
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.

4 years agoCLI: Fix continuation lines after final one
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.

4 years agoBGP: Fix processing of IPv6 Flowspec
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.

4 years agoNetlink: Handle IPv4 routes with IPv6 nexthops
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.

4 years agoBGP: Add option to enforce first AS in AS_PATH
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.

4 years agoDoc: Minor fix
Ondrej Zajicek (work) [Tue, 5 Nov 2019 15:29:47 +0000 (16:29 +0100)] 
Doc: Minor fix

4 years agoDoc: Add documentation for BGP option 'allow as sets'
Ondrej Zajicek (work) [Tue, 5 Nov 2019 15:00:25 +0000 (16:00 +0100)] 
Doc: Add documentation for BGP option 'allow as sets'

4 years agoFilter: Add type info for more instructions
Ondrej Zajicek (work) [Tue, 5 Nov 2019 14:14:57 +0000 (15:14 +0100)] 
Filter: Add type info for more instructions

4 years agoFilter: Improve typecheck error messages
Ondrej Zajicek (work) [Tue, 5 Nov 2019 14:13:57 +0000 (15:13 +0100)] 
Filter: Improve typecheck error messages

4 years agoFilter: Better constant promotion
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.

4 years agoFilter: Improved parse-time typechecks
Ondrej Zajicek (work) [Wed, 23 Oct 2019 20:53:23 +0000 (22:53 +0200)] 
Filter: Improved parse-time typechecks

4 years agoFilter: 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.

4 years agoBGP: Add option to reject AS_SETs
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

4 years agoSupport for address family constants
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.

4 years agoNest: Fix bug in export table
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.

4 years agoBGP: RFC 8654 got released
Ondrej Zajicek (work) [Fri, 25 Oct 2019 23:28:38 +0000 (01:28 +0200)] 
BGP: RFC 8654 got released

4 years agoNest: Fix primary flag in show route
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.

4 years agoBGP: Fix handling of transitive extended communities
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.

4 years agoAccept uppercase letters in iproute2 names
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.

4 years agoNest: Fix build without protocols
Fabrice Fontaine [Sat, 19 Oct 2019 10:50:27 +0000 (12:50 +0200)] 
Nest: Fix build without protocols

(CHECK keyword added by commiter)

4 years agoRPKI: Fix handling of IPv6 cache addresses
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.

4 years agoNEWS and version update v2.0.7
Ondrej Zajicek (work) [Thu, 10 Oct 2019 22:18:38 +0000 (00:18 +0200)] 
NEWS and version update

4 years agoBGP: Fix reconfiguration with import table
Ondrej Zajicek (work) [Thu, 10 Oct 2019 21:33:40 +0000 (23:33 +0200)] 
BGP: Fix reconfiguration with import table

Change of some options requires route refresh, but when import table is
active, channel reload is done from it instead of doing full route
refresh. So in this case we request it internally.

4 years agoDoc: Minor documentation fixes
Ondrej Zajicek (work) [Thu, 10 Oct 2019 20:43:41 +0000 (22:43 +0200)] 
Doc: Minor documentation fixes

Thanks to Christoph for the bugreport.

4 years agoNest: Handle non-MPLS on MPLS case in recursive route update
Ondrej Zajicek (work) [Thu, 10 Oct 2019 13:25:36 +0000 (15:25 +0200)] 
Nest: Handle non-MPLS on MPLS case in recursive route update

When non-MPLS recursive route resolves to MPLS underlying route,
then it should get MPLS labels from the the underlying route.

4 years agoNest: Handle PtP links in recursive route update
Ondrej Zajicek (work) [Thu, 10 Oct 2019 13:06:32 +0000 (15:06 +0200)] 
Nest: Handle PtP links in recursive route update

Underlying (IGP) route may lead to PtP link, in this case it does not
need gateway. Which is different than direct route without gateway.

When recursive (BGP) route uses PtP route, it should not use recursive
next hop as immediate next hop, while for direct routes it should.

4 years agoNest: Fix recursive route update
Ondrej Zajicek (work) [Thu, 10 Oct 2019 12:01:16 +0000 (14:01 +0200)] 
Nest: Fix recursive route update

Missing cleanup can lead to dangling pointer to old next hops.

4 years agoBGP: AIGP metric support (RFC 7311)
Ondrej Zajicek (work) [Sat, 28 Sep 2019 12:17:20 +0000 (14:17 +0200)] 
BGP: AIGP metric support (RFC 7311)

4 years agoLib: Support for 64-bit numbers in bvsnprintf()
Ondrej Zajicek (work) [Tue, 1 Oct 2019 15:01:29 +0000 (17:01 +0200)] 
Lib: Support for 64-bit numbers in bvsnprintf()

Use 'l' for s64/u64 instead of for long/ulong, as that is much more
useful. Also make number() correct with regard to signed/unsigned
typecasts.

4 years agoBuild: Pass -g to cc called as linker to explicitly keep debug info
Maria Matejka [Mon, 30 Sep 2019 11:54:14 +0000 (13:54 +0200)] 
Build: Pass -g to cc called as linker to explicitly keep debug info

4 years agoTesting measures times
Maria Matejka [Mon, 23 Sep 2019 13:41:55 +0000 (15:41 +0200)] 
Testing measures times

4 years agoLTO: debug info also kept with the final binary
Maria Matejka [Wed, 25 Sep 2019 14:37:16 +0000 (16:37 +0200)] 
LTO: debug info also kept with the final binary

4 years agoPerf: allow testing with cached route attributes.
Maria Matejka [Wed, 21 Aug 2019 15:35:27 +0000 (17:35 +0200)] 
Perf: allow testing with cached route attributes.

4 years agoDoc: Fix duplicated lines
Ondrej Zajicek [Tue, 8 Oct 2019 12:20:25 +0000 (14:20 +0200)] 
Doc: Fix duplicated lines

Thanks to elados93 for the patch.

4 years agoTesting: Don't call vsnprintf with NULL format
Maria Matejka [Mon, 30 Sep 2019 11:53:24 +0000 (13:53 +0200)] 
Testing: Don't call vsnprintf with NULL format

4 years agoFixed undefined behavior on signals.
Maria Matejka [Fri, 4 Oct 2019 10:20:02 +0000 (12:20 +0200)] 
Fixed undefined behavior on signals.

The C11 specification allows only sig_atomic_t and _Atomic variable
access. All other accesses to global variables are undefined behavior.

Using int was probably OK on x86 and x86_64; yet there were some reports
from other architectures (especially some MIPS) that in rare cases,
after issuing SIGHUP, BIRD did strange things.

4 years agoBFD: Fix reconfiguration of neighbors
Ondrej Zajicek (work) [Mon, 30 Sep 2019 17:10:14 +0000 (19:10 +0200)] 
BFD: Fix reconfiguration of neighbors

The bfd_reconfigure_neighbors() returned after first reconfigured
neighbor instead of continuing with the next one.

Thanks to Winston Chen for the bugreport and a patch.

4 years agoNest: Fix bug in export table
Ondrej Zajicek (work) [Tue, 24 Sep 2019 15:12:15 +0000 (17:12 +0200)] 
Nest: Fix bug in export table

Exported route may be in modified state, we need to get cached one for
rte_same() and rta_clone() to work properly.

4 years agoFilter: Fix eval command
Ondrej Zajicek (work) [Mon, 23 Sep 2019 22:18:48 +0000 (00:18 +0200)] 
Filter: Fix eval command

4 years agoNest: Fix help for 'graceful restart' command
Ondrej Zajicek (work) [Sun, 22 Sep 2019 21:32:22 +0000 (23:32 +0200)] 
Nest: Fix help for 'graceful restart' command

Multi-worded commands are not automatically added to top-level
help output.

Thanks to Christoph for the bugreport.

4 years agoFilters: Function body comparison result now used.
Maria Matejka [Fri, 20 Sep 2019 08:16:51 +0000 (10:16 +0200)] 
Filters: Function body comparison result now used.

Function bodies were compared in post-parse time, yet the result was not
used and the functions were incorrectly considered the same as before.

Now the result is used to reload affected protocols.

4 years agoBGP: Fix setup with multiple dynamic BGP ranges
Ondrej Zajicek (work) [Tue, 17 Sep 2019 12:45:14 +0000 (14:45 +0200)] 
BGP: Fix setup with multiple dynamic BGP ranges

Based on a patch from Liam Nattrass, thanks.

4 years agoNEWS and version update v2.0.6
Ondrej Zajicek (work) [Tue, 10 Sep 2019 15:34:41 +0000 (17:34 +0200)] 
NEWS and version update

4 years agoDoc: Update BGP mask documentation
Ondrej Zajicek (work) [Tue, 10 Sep 2019 15:28:06 +0000 (17:28 +0200)] 
Doc: Update BGP mask documentation

4 years agoFilter: Fix crash with 'where' filters and function calls
Ondrej Zajicek (work) [Tue, 10 Sep 2019 11:45:18 +0000 (13:45 +0200)] 
Filter: Fix crash with 'where' filters and function calls

The old 'where' code computed size value incorrectly, which leads
to invalid instruction lines and filter errors or crashes.

4 years agoBGP: Fix handling of bgp_aggregator atttribute
Ondrej Zajicek (work) [Mon, 9 Sep 2019 11:17:30 +0000 (13:17 +0200)] 
BGP: Fix handling of bgp_aggregator atttribute

The attribute should not be modifiable by filters as we do not
support its type.

4 years agoBGP: Fix bugs in handling of shutdown messages
Ondrej Zajicek (work) [Mon, 9 Sep 2019 01:13:35 +0000 (03:13 +0200)] 
BGP: Fix bugs in handling of shutdown messages

There is an improper check for valid message size, which may lead to
stack overflow and buffer leaks to log when a large message is received.

Thanks to Daniel McCarney for bugreport and analysis.

4 years agoOSPF: Fix 'show ospf lsadb' cmd without proto arg
Ondrej Zajicek (work) [Thu, 29 Aug 2019 18:58:16 +0000 (20:58 +0200)] 
OSPF: Fix 'show ospf lsadb' cmd without proto arg

It crashed when used without protocol argument.

Thanks to Alexander for the bugreport.

4 years agoChannel refeed with import table splitting between routes for one prefix
Maria Matejka [Mon, 26 Aug 2019 19:53:56 +0000 (21:53 +0200)] 
Channel refeed with import table splitting between routes for one prefix

4 years agoSysdep: Drop supplementary groups when dropping GID
Ondrej Zajicek (work) [Wed, 21 Aug 2019 15:30:00 +0000 (17:30 +0200)] 
Sysdep: Drop supplementary groups when dropping GID

We forgot to do that. Oops.

4 years agoBGP: Use reallocation for capability structure
Ondrej Zajicek (work) [Wed, 21 Aug 2019 15:16:08 +0000 (17:16 +0200)] 
BGP: Use reallocation for capability structure

Instead of having large stack buffer for max amount of AFI/SAFI pairs.
The old code is not correct w.r.t. extendeded option length, as more
AFI/SAFI pairs may fit into the capability option.

4 years agoBGP: Implement extended optional parameters length
Ondrej Zajicek (work) [Tue, 20 Aug 2019 17:12:59 +0000 (19:12 +0200)] 
BGP: Implement extended optional parameters length

Extends BGP options/capabilities data length to 16bit, to avoid issues
with too many capabilities. See draft-ietf-idr-ext-opt-param-07

4 years agoNest: Fix crash in route reload when some channels are not up.
Ondrej Zajicek (work) [Tue, 13 Aug 2019 16:57:40 +0000 (18:57 +0200)] 
Nest: Fix crash in route reload when some channels are not up.

Only channels that are up can be reloaded.

4 years agoBGP: implement Adj-RIB-Out
Ondrej Zajicek (work) [Tue, 13 Aug 2019 16:22:07 +0000 (18:22 +0200)] 
BGP: implement Adj-RIB-Out

The patch implements optional internal export table to a channel and
hooks it to BGP so it can be used as Adj-RIB-Out. When enabled, all
exported (post-filtered) routes are stored there. An export table can be
examined using e.g. 'show route export table bgp1.ipv4'.

4 years agoFilter: Fixing empty block and never-executed-statement bug
Maria Matejka [Tue, 13 Aug 2019 14:45:27 +0000 (16:45 +0200)] 
Filter: Fixing empty block and never-executed-statement bug

4 years agoRAdv: Allow solicited RAs to be sent as unicast
Ondrej Zajicek (work) [Sun, 11 Aug 2019 22:41:36 +0000 (00:41 +0200)] 
RAdv: Allow solicited RAs to be sent as unicast

Add option to send solicited router advertisements as unicast directly
to soliciting nodes instead of as multicast to all-nodes group.

4 years agoFilter: Allow to use set constants / expressions in path masks
Ondrej Zajicek (work) [Tue, 6 Aug 2019 16:54:19 +0000 (18:54 +0200)] 
Filter: Allow to use set constants / expressions in path masks

Allow to not only use set literals in path masks, but also existing
set constants or set expressions.

4 years agoFilter: Allow to use sets in path masks
Ondrej Zajicek (work) [Tue, 6 Aug 2019 14:58:13 +0000 (16:58 +0200)] 
Filter: Allow to use sets in path masks

4 years agoBGP: Improve reconfiguration
Ondrej Zajicek (work) [Tue, 6 Aug 2019 13:29:06 +0000 (15:29 +0200)] 
BGP: Improve reconfiguration

Several BGP channel options (including 'next hop self') could be
reconfigured without session reset, with just route refeed/refresh.
The patch improves reconfiguration code to do it that way.

4 years agoBGP: Fix 'deterministic med' to work with 'merge paths'
Ondrej Zajicek (work) [Tue, 6 Aug 2019 13:09:42 +0000 (15:09 +0200)] 
BGP: Fix 'deterministic med' to work with 'merge paths'

The 'deterministic med' option is implemented by suppressing other than
best-in-group routes (grouped by ASN) from best route selection. This
interferes with 'merge paths' as supressed routes are no longer mergable
with best route. This is fixed by suppressing only those routes that are
not mergable with best-in-group route.

4 years agoConfigure: CFLAGS update
Ondrej Zajicek (work) [Tue, 6 Aug 2019 12:53:02 +0000 (14:53 +0200)] 
Configure: CFLAGS update

 - add -flto only to default CFLAGS
 - add -fno-strict-aliasing, -fno-strict-overflow always
 - remove -Wno-implicit-fallthrough

4 years agoShow LDFLAGS in configure v2.0.5
Ondrej Zajicek [Thu, 1 Aug 2019 12:49:03 +0000 (14:49 +0200)] 
Show LDFLAGS in configure