0
0
mirror of https://gitlab.nic.cz/labs/bird.git synced 2024-12-23 10:11:53 +00:00
Commit Graph

2936 Commits

Author SHA1 Message Date
Ondrej Zajicek (work)
1657c41c96 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.
2019-09-09 03:49:35 +02:00
Ondrej Filip
7300d79be9 Version 1.x.x uses "legacy" git branch. Thanks Vicent Bernat for the notification. 2019-08-12 15:01:21 +02:00
Ondrej Zajicek (work)
a6622bd204 NEWS and version update 2019-08-01 03:31:23 +02:00
Ondrej Zajicek (work)
aba51d80c0 Doc: Update documentation about VRFs and BFD 2019-08-01 01:02:31 +02:00
Ondrej Zajicek (work)
da8644d7d9 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.
2019-08-01 00:53:22 +02:00
Maria Matejka
d72d3891bf Log: Fixed race condition in reconfigure while BFD is running 2019-07-30 12:13:38 +02:00
Maria Matejka
46faedff29 Debug: growing message format buffer
This led in corner cases to undefined buffer content
and garbage output.
2019-07-18 12:41:45 +02:00
Ondrej Zajicek (work)
9d23aa7a80 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.
2019-07-18 02:05:36 +02:00
Ondrej Zajicek (work)
f9deedf1f0 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.
2019-07-18 02:04:42 +02:00
Alexander Azimov
9ff6c8d83c BGP: Compliance with RFC8203bis 2019-07-11 15:44:52 +02:00
Ondrej Zajicek (work)
78c05cc159 OSPF: Update DR when local priority changes
When priority is reconfigured locally, we need to trigger DR election.
2019-07-11 15:44:05 +02:00
Ondrej Zajicek (work)
a92aee467e Avoid fallthrough warnings 2019-07-11 15:44:05 +02:00
Ondrej Zajicek (work)
6b72ea4c14 OSPF: N-bit should not be set for DBDES packets 2019-07-11 15:44:05 +02:00
Maria Jan Matejka
354afcab04 BGP: Prefix hash is too small, increase its max size.
This doesn't make any change for you until you have
millions of updates waiting to be sent. Increasing
the max hash size from 2^20 to 2^24.
2019-06-11 13:19:21 +00:00
Maria Jan Matejka
e989b901fc BGP: split tx explicitly
If BGP has too many data to send and BIRD is slower than the link, TX is
always possible until all data is sent. This patch limits maximum number
of generated BGP messages in one iteration of TX hook.
2019-06-11 09:39:00 +00:00
Ondrej Filip
5648f07e4d Small typo in doc. 2019-04-24 13:50:54 +02:00
Ondrej Zajicek (work)
b5d1903bf6 NEWS and version update 2019-02-26 18:10:04 +01:00
Ondrej Zajicek (work)
2e7ee1c9d3 Nest: Do not compare rte.flags during rte_update()
Route flags are mosty internal state of rtable, they are not significant
to whether a route has changed. With the old code, all routes received as
a part of enhanced route refresh are always re-announced to other peers
due to change in REF_STALE.
2019-02-22 02:33:01 +01:00
Ondrej Zajicek (work)
797969983d Doc: Detect SP/OpenSP automatically 2019-02-19 18:32:45 +01:00
Ondrej Zajicek (work)
b3fceeba30 Nest: Prevent withdraws from propagation back to source protocol (for accepted mode)
Update for one of previous patches, handles the the issue for
first-accepted mode of route propagation.
2019-02-19 16:21:52 +01:00
Ondrej Zajicek (work)
2dd9800ab5 Nest: Improve export counter handling
One of previous workarounds for phantom route avoidance breaks export
counters by expanding sending of spurious withdraws, which are send when
we are not sure whether we have advertised that routes in the past.
If not, then export counter is decreased, but it was not increased
before, so it overflows under zero.

The patch fixes that by sending spurious withdraws, but not counting them
on export counter. That may lead to error in the other direction, but
that happens only as a race condition (i.e., in normal operation filters
return proper values about old route export state).
2019-02-19 16:02:53 +01:00
Ondrej Zajicek (work)
b4438e40ef Nest: Prevent withdraws from propagation back to source protocol
The earlier fix loosen conditions for not running filters on old
route when deciding about route propagation to a protocol to avoid
issues with ghost routes in some race conditions.

Unfortunately, the fix also caused back-propagation of withdraws. For
regular updates, back-propagation is prevented in import_control hooks,
but these are not called on withdraws. For them, import_control hooks
are called on old routes instead, changing (old, NULL) notification
to (NULL, NULL), which is ignored. By not calling export processing
in some cases, the withdraw is not ignored and is back-propagated.

This patch fixes that by contract conditions so the earlier fix is not
applied to back-propagated updates.
2019-01-30 17:08:11 +01:00
Ondrej Zajicek (work)
ccb37330d0 Doc: Add documentation for OSPF retransmit delay option
Thanks to Igor Podlesny for notification.
2019-01-26 21:03:36 +01:00
Ondrej Filip
e99e7d1c2d Added documentation for 'disable after cease' 2019-01-07 12:26:21 +01:00
Ondrej Zajicek (work)
ef8974b7ca NEWS and version update 2019-01-05 00:44:26 +01:00
Ondrej Zajicek (work)
a93684b2d4 Configure: Fix lost suffix in bird.ctl
One of previous commits bacported from 2.0 removed suffix from bird.ctl
2019-01-04 19:11:54 +01:00
Ondrej Zajicek (work)
c30f00d4a8 BSD: Fix TCP-MD5 code on current FreeBSD kernels
Current FreeBSD kernels require SA records for both directions.

Thanks to Joseph Mulloy and Andrey V. Elsukov for reporting and
solving the issue.
2019-01-04 18:20:56 +01:00
Ondrej Zajicek (work)
968c31ec6d Doc: README and INSTALL update
Minor cleanups, updates and clarifications. Also removes (incomplete
and well-known) build steps from README, as they are better described
in INSTALL.
2019-01-03 17:26:57 +01:00
Ondrej Zajicek (work)
89bc266fe7 Doc: Fix documentation build with newer Linuxdoc-Tools 2019-01-03 17:17:08 +01:00
Robert Scheck
cdf2daae01 Doc: Allow overriding $SGML_CATALOG_FILES using distribution specific paths 2018-12-20 13:25:53 +01:00
Robert Scheck
7a53383a22 Doc: Add alternative path for SGML ISO entities 8879.1986 to $SGML_CATALOG_FILES
The existing paths are valid for Debian, alternative paths are necessary
for Fedora and RHEL/CentOS.
2018-12-20 13:25:31 +01:00
Ondrej Zajicek (work)
b47d33b344 Autoconf: Minor cleanup 2018-12-20 13:17:30 +01:00
Ondrej Zajicek (work)
16fb28e588 Configure: Use standard --runstatedir option
Newer Autoconf defines --runstatedir option for setting directory for
run-time variable data. Use it instead our old --with-runtimedir.
2018-12-20 13:15:53 +01:00
Ondrej Zajicek (work)
e7e3b335bf Nest: Fix crash in rta_show() for Babel routes
Some new route source values did not have associated string
in rta_show(), which might caused crash in some cases.
2018-12-20 13:06:18 +01:00
Ondrej Zajicek (work)
4df42f1a55 Lib: Force output type in ip4_addr constructor
Fixes type issue when u64 is pushed into it.
2018-12-20 13:01:15 +01:00
Ondrej Zajicek (work)
17450df314 Filter: Fix minor bug in accessing bgp_path
Not relevant for regular BGP paths, just for BGP paths added by filters
to e.g. static routes.
2018-12-20 12:59:55 +01:00
Ondrej Zajicek (work)
d82b1a1977 Nest: Fix 'show interfaces summary' command
The command showed interfaces that were removed / in shutdown.
2018-12-20 12:57:43 +01:00
Ondrej Zajicek (work)
257c7ce95d Doc: Fix description of 'description'
Thanks to Clemens Schrimpe for the bugreport.
2018-12-20 12:54:52 +01:00
Ondrej Zajicek (work)
04edf8f2f2 IO: Workaround for broken FreeBSD behavior
FreeBSD silently changes TTL to 1 when MSG_DONTROUTE is used, even when
it is explicitly set to another value. That breaks TTL security sockets,
including BFD which always uses TTL 255. Bad FreeBSD!
2018-12-19 18:10:39 +01:00
Ondrej Zajicek (work)
c0ed32ee28 Doc: Generate MRT progdoc 2018-12-19 16:32:52 +01:00
Ondrej Zajicek (work)
523c5d9f2b Doc: Rename code documentation files back to Doc 2018-12-19 16:29:20 +01:00
Ondrej Zajicek (work)
d1c8f22bec Doc: Move root of code documentation to doc dir
It reduces clutter in root and also avoid collision with doc dir on
case-insensitive filesystems when name back to Doc.
2018-12-19 16:25:59 +01:00
Ondrej Zajicek (work)
81bc013dde Unix: Fix variable declarations 2018-12-19 15:52:13 +01:00
Ondrej Zajicek (work)
98b1486c48 OSPF: Fix wrong LSA collisions detection
In some circumstances (old LSA flushed but not acknowledged and not
removed) origination of a new LSA may wrongly triggers LSA collision
code. The patch fixes that.

Thanks to Asbjorn Mikkelsen for the bugreport and @mdelagueronniere
for the original patch.
2018-12-17 17:10:59 +01:00
Ondrej Zajicek (work)
8c0b12ac86 OSPF: Fix reconfiguration of vlinks
Fix crash during reconfiguration of OSPF config with vlinks. When vlink
is reconfigured, a generic iface-reconfiguration code is used, which in
one place supposes that it is running on a regular iface.

Thanks to Cybertinus for a bugreport.
2018-12-10 02:08:52 +01:00
Ondrej Zajicek (work)
ea59172cde Static: Fix reset neighbor entries for ECMP routes
Neighbor entries for static ECMP routes were not cleaned up during
reconfigure and pointed to the old instances, which leads to crash
after reconfigure.

Thanks to Vladimir Osmolovskiy for the bugreport.
2018-12-04 13:52:58 +01:00
Ondrej Zajicek (work)
93cec70361 MRT documentation 2018-11-21 15:59:53 +01:00
Ondrej Zajicek (work)
1453ab7552 MRT: Fix bug in MRT table dump requested from CLI 2018-11-20 17:40:47 +01:00
Ondrej Zajicek (work)
81489b79e0 Nest: Improve keeping track of IPv6 link-local addresses
Most protocols in IPv6 mode use link-local source addresses and expect
that there is one on each active interface. The old code depended on
assumption that if there is some IPv6 address on iface, there is also an
IPv6 link-local address on that iface (added by kernel when the iface
went up). Unfortunately, that is not generally true, as a configured
global address sometimes ceases to be tentative (finishes DOD) before
a link-local address on the same iface. In such case a protocol iface
(namely RAdv and Babel) is activated, but fails to found link-local
address and stays in failed state.

The patch fixes that by tracking 'primary' IPv6 link-local address,
sending iface restart notifications when it changes and making
protocols ignore iface-up notifications when no such address is
selected for an iface.
2018-11-08 20:43:04 +01:00
Ondrej Zajicek (work)
716b904f4e Filter: Make ifname attribute modifiable
Allow to change an interface associated with a route by setting
ifname attribute. It will also change the route to a direct one.
2018-11-05 21:55:18 +01:00