]>
git.ipfire.org Git - thirdparty/bird.git/log
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.
Ondrej Zajicek (work) [Thu, 10 Oct 2019 22:18:38 +0000 (00:18 +0200)]
NEWS and version update
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.
Ondrej Zajicek (work) [Thu, 10 Oct 2019 20:43:41 +0000 (22:43 +0200)]
Doc: Minor documentation fixes
Thanks to Christoph for the bugreport.
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.
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.
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.
Ondrej Zajicek (work) [Sat, 28 Sep 2019 12:17:20 +0000 (14:17 +0200)]
BGP: AIGP metric support (RFC 7311)
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.
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
Maria Matejka [Mon, 23 Sep 2019 13:41:55 +0000 (15:41 +0200)]
Testing measures times
Maria Matejka [Wed, 25 Sep 2019 14:37:16 +0000 (16:37 +0200)]
LTO: debug info also kept with the final binary
Maria Matejka [Wed, 21 Aug 2019 15:35:27 +0000 (17:35 +0200)]
Perf: allow testing with cached route attributes.
Ondrej Zajicek [Tue, 8 Oct 2019 12:20:25 +0000 (14:20 +0200)]
Doc: Fix duplicated lines
Thanks to elados93 for the patch.
Maria Matejka [Mon, 30 Sep 2019 11:53:24 +0000 (13:53 +0200)]
Testing: Don't call vsnprintf with NULL format
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.
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.
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.
Ondrej Zajicek (work) [Mon, 23 Sep 2019 22:18:48 +0000 (00:18 +0200)]
Filter: Fix eval 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.
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.
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.
Ondrej Zajicek (work) [Tue, 10 Sep 2019 15:34:41 +0000 (17:34 +0200)]
NEWS and version update
Ondrej Zajicek (work) [Tue, 10 Sep 2019 15:28:06 +0000 (17:28 +0200)]
Doc: Update BGP mask documentation
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.
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.
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.
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.
Maria Matejka [Mon, 26 Aug 2019 19:53:56 +0000 (21:53 +0200)]
Channel refeed with import table splitting between routes for one prefix
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.
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.
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
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.
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'.
Maria Matejka [Tue, 13 Aug 2019 14:45:27 +0000 (16:45 +0200)]
Filter: Fixing empty block and never-executed-statement bug
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.
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.
Ondrej Zajicek (work) [Tue, 6 Aug 2019 14:58:13 +0000 (16:58 +0200)]
Filter: Allow to use sets in path masks
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.
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.
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
Ondrej Zajicek [Thu, 1 Aug 2019 12:49:03 +0000 (14:49 +0200)]
Show LDFLAGS in configure
Ondrej Zajicek [Thu, 1 Aug 2019 12:45:23 +0000 (14:45 +0200)]
Enable more threads for flto
Ondrej Zajicek [Thu, 1 Aug 2019 12:27:20 +0000 (14:27 +0200)]
Fix output of CFLAGS in configure script
Ondrej Zajicek (work) [Wed, 31 Jul 2019 21:35:29 +0000 (23:35 +0200)]
NEWS and version update
Ondrej Zajicek (work) [Wed, 31 Jul 2019 17:45:29 +0000 (19:45 +0200)]
Change 'graceful down' command to 'graceful restart' and update docs
The command initiating planned graceful restart including bird shutdown
should be called 'graceful restart' instead of 'graceful down', as the
later should be reserved for graceful shutdown in style of RFC 8326.
Ondrej Zajicek (work) [Tue, 30 Jul 2019 17:21:06 +0000 (19:21 +0200)]
Doc: Update documentation about VRFs and BFD
Maria Matejka [Tue, 30 Jul 2019 12:28:40 +0000 (14:28 +0200)]
Conf: Fixed symbol redefinition
Maria Matejka [Tue, 30 Jul 2019 10:11:49 +0000 (12:11 +0200)]
Log: Fixed race condition in reconfigure while BFD is running
Vincent Bernat [Mon, 29 Jul 2019 13:42:30 +0000 (15:42 +0200)]
RPKI: Fix allocation of hostname when using an IPv6 address
Ondrej Zajicek (work) [Thu, 25 Jul 2019 12:24:16 +0000 (14:24 +0200)]
BFD: Fix formatting of 'show bfd sessions'
The formatting was broken due to longer date in 'since' column.
Ondrej Zajicek (work) [Wed, 24 Jul 2019 13:38:32 +0000 (15:38 +0200)]
Merge remote-tracking branch 'origin/mq-filter-stack'
Ondrej Zajicek (work) [Wed, 24 Jul 2019 13:08:03 +0000 (15:08 +0200)]
Nest: VRF of protocol can be explicitly specified as 'default'
Protocol can have specified VRF, in such case it is restricted to a set
of ifaces associated with the VRF, otherwise it can use all interfaces.
The patch allows to specify VRF as 'default', in which case it is
restricted to a set of iface not associated with any VRF.
Ondrej Zajicek (work) [Tue, 23 Jul 2019 15:02:41 +0000 (17:02 +0200)]
OSPF: Fix formatting of 'show ospf neighbors'
The formatting was broken when too short router-id was used.
Ondrej Zajicek (work) [Mon, 22 Jul 2019 23:52:18 +0000 (01:52 +0200)]
RPKI: Fix reconfiguration when ssh parameters are undefined
Ondrej Zajicek (work) [Thu, 18 Jul 2019 00:39:35 +0000 (02:39 +0200)]
Lib: Improve printf() tests
Includes patch from Maximilian Eschenbacher
Ondrej Zajicek (work) [Wed, 17 Jul 2019 23:57:26 +0000 (01:57 +0200)]
Lib: Fix print of 64-bit router id
Mismatched types to printf(). The old code coincidentally worked on amd64
due to its calling conventions.
Thanks to Maximilian Eschenbacher for the bugreport.
Ondrej Zajicek (work) [Wed, 17 Jul 2019 14:20:35 +0000 (16:20 +0200)]
BFD: Support for VRFs
Allow multiple BFD instances in separate VRFs, dispatch BFD requests
according to VRFs.
Thanks to Alexander Zubkov for notice and patches.
Ondrej Zajicek (work) [Mon, 15 Jul 2019 16:16:55 +0000 (18:16 +0200)]
Netlink: Fix parsing of multipath routes with MPLS labels
Ondrej Zajicek (work) [Mon, 15 Jul 2019 14:23:18 +0000 (16:23 +0200)]
Netlink: Use route replace for IPv4
Use route replace netlink op instead of delete+add netlink ops for kernel
IPv4 route replace. This avoids some packetloss during route replace.
Still use the old behavior for IPv6, as some kernel bugs are hidden in
IPv6 ECMP handling.
Maria Matejka [Mon, 15 Jul 2019 14:07:16 +0000 (16:07 +0200)]
Merge remote-tracking branch 'origin/master' into mq-filter-stack
Maria Matejka [Mon, 15 Jul 2019 13:43:47 +0000 (15:43 +0200)]
Filter: further split of print & die to FI_PRINT, FI_FLUSH and FI_DIE
Maria Matejka [Mon, 15 Jul 2019 13:23:35 +0000 (15:23 +0200)]
Filter: Simpler filter context allocation
Maria Matejka [Mon, 15 Jul 2019 13:17:04 +0000 (15:17 +0200)]
Filter: FID_MEMBER debug string is a C constant string
Maria Matejka [Mon, 15 Jul 2019 13:12:18 +0000 (15:12 +0200)]
Filter: Converted FI_PRINT and FI_PATHMASK_CONSTRUCT to VARARG
Maria Matejka [Mon, 15 Jul 2019 13:06:52 +0000 (15:06 +0200)]
Filter: fixed excessive stack allocation in functions with args but no local vars
Maria Matejka [Mon, 15 Jul 2019 11:19:01 +0000 (13:19 +0200)]
Filter: lots of documentation
Maria Matejka [Mon, 15 Jul 2019 10:03:47 +0000 (12:03 +0200)]
Filter: Don't write out when re-evaluating filter for internal purposes.
Maria Matejka [Mon, 15 Jul 2019 10:03:13 +0000 (12:03 +0200)]
Filter: Don't fail badly when trying to access non-existent route in config time
Ondrej Zajicek (work) [Wed, 10 Jul 2019 16:25:36 +0000 (18:25 +0200)]
OSPF: Fix handling of NSSA option flags
Per RFC 3101, N-bit signalling NSSA support should be used only in Hello
packets, not in DBDES packets. BIRD since 2.0.4 verifies N-bit in
neighbor structure, which is learned from DBDES packets, therefore
NSSA-LSAs are not propagated to proper implementations of RFC 3101.
This patch fixes that. Both removing the check and removing N-bit from
DBDES packet. This will fix compatibility issues with proper
implementations, but causes compatibility issues with BIRD 2.0.4.
Ondrej Zajicek (work) [Wed, 10 Jul 2019 14:46:31 +0000 (16:46 +0200)]
Filter: Minor cleanups
Maria Matejka [Wed, 10 Jul 2019 09:27:08 +0000 (11:27 +0200)]
Merge branch 'master' into mq-filter-stack
Maria Matejka [Wed, 10 Jul 2019 09:12:41 +0000 (11:12 +0200)]
Debug: growing message format buffer
This led in corner cases to undefined buffer content
and garbage output.
Ondrej Zajicek (work) [Tue, 9 Jul 2019 13:57:46 +0000 (15:57 +0200)]
OSPF: Minor fix in graceful restart
Most LSA origination is blocked in ospf_update_topology(), this fix
blocks LSA origination from ospf_rt_spf().
Vincent Bernat [Tue, 9 Jul 2019 13:25:40 +0000 (15:25 +0200)]
Doc: Fix typo in BGP dynamic names feature description
Maria Matejka [Tue, 9 Jul 2019 12:53:15 +0000 (14:53 +0200)]
Merge branch 'master' of gitlab.labs.nic.cz:labs/bird
Maria Matejka [Fri, 8 Feb 2019 10:19:04 +0000 (11:19 +0100)]
Test: Fixed annoying warnings (and possible obscure bugs).
Maria Matejka [Tue, 9 Jul 2019 12:34:26 +0000 (14:34 +0200)]
Test: better random u64 generator
Ondrej Zajicek (work) [Tue, 9 Jul 2019 01:48:02 +0000 (03:48 +0200)]
OSPF: Update DR when local priority changes
When priority is reconfigured locally, we need to trigger DR election.
(recommiting, was reset by the previous commit)
Ondrej Zajicek (work) [Tue, 9 Jul 2019 01:31:54 +0000 (03:31 +0200)]
OSPF: Fix handling of external routes on graceful restart
We need to flush learned external LSAs a bit later than other LSAs (after
first feed after end of the graceful restart) to avoid flap of external
routes.
Maria Matejka [Mon, 8 Jul 2019 11:04:50 +0000 (13:04 +0200)]
Nest: Uninitialized variable fix
Thanks to Vincent Bernat for reporting this.
Maria Matejka [Mon, 8 Jul 2019 11:00:13 +0000 (13:00 +0200)]
Libdmalloc macros fixed
Ondrej Zajicek (work) [Thu, 4 Jul 2019 11:34:42 +0000 (13:34 +0200)]
OSPF: Update DR when local priority changes
When priority is reconfigured locally, we need to trigger DR election.
Maria Matejka [Wed, 3 Jul 2019 09:09:52 +0000 (11:09 +0200)]
Merge branch 'master' into mq-filter-stack
Maria Matejka [Wed, 3 Jul 2019 06:44:42 +0000 (08:44 +0200)]
Merge branch 'mq-filter-stack' of gitlab.labs.nic.cz:labs/bird into mq-filter-stack
Maria Matejka [Wed, 3 Jul 2019 06:13:07 +0000 (08:13 +0200)]
Filter: CLI command to dump all the linearized filters
Maria Matejka [Tue, 2 Jul 2019 23:23:49 +0000 (01:23 +0200)]
Filter: Split printing and dying
Maria Matejka [Tue, 2 Jul 2019 22:04:24 +0000 (00:04 +0200)]
Removed obsolete comment at as_path_cut()
Maria Matejka [Tue, 2 Jul 2019 22:00:11 +0000 (00:00 +0200)]
Dynamic attributes definition split whether it is bitmask or not.
Maria Matejka [Tue, 2 Jul 2019 20:57:00 +0000 (22:57 +0200)]
Filter: Dropped some more irrelevant whitespace from generated files
Ondrej Zajicek (work) [Tue, 2 Jul 2019 16:23:06 +0000 (18:23 +0200)]
Netlink: Handle alien routes with unsorted nexthops
Nest requires that nexthops are sorted, the kernel protocol have to
ensure that for alien routes.
Maria Matejka [Tue, 2 Jul 2019 15:59:21 +0000 (17:59 +0200)]
Filter: Nicer whitespaces in generated inst-gen.h
Maria Matejka [Tue, 2 Jul 2019 15:39:56 +0000 (17:39 +0200)]
Filter: documentation of the M4 preprocessor
Ondrej Zajicek (work) [Tue, 2 Jul 2019 14:30:36 +0000 (16:30 +0200)]
Netlink: Do unified scan for both IPv4 and IPv6
Instead of separate scans for IPv4, IPv6 and MPLS, do one AF_UNSPEC scan.
This also avoids kernel issue when kernel reported IPv4 and IPv6 routes
during MPLS scan if MPLS is not active.
Maria Matejka [Tue, 2 Jul 2019 11:13:29 +0000 (13:13 +0200)]
Filter: GCC, don't complain about indentation in generated code.
Maria Matejka [Tue, 2 Jul 2019 08:45:53 +0000 (10:45 +0200)]
Filter: Pre-evaluation of constant expressions
Maria Matejka [Mon, 1 Jul 2019 12:12:05 +0000 (14:12 +0200)]
Filter: Resolving of defined constants in config time