0
0
mirror of https://gitlab.nic.cz/labs/bird.git synced 2024-11-15 07:38:43 +00:00
Commit Graph

2930 Commits

Author SHA1 Message Date
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
Ondrej Zajicek (work)
fff79b1c1e OSPF: Fix some trace messages
Missing argument in MTU change trace message can crash bird when MTU
change happens and trace messages are active.

Thanks to Alexander Velkov for the bugreport.
2018-10-25 17:21:06 +02:00
Ondrej Zajicek (work)
c0fc3e6718 The MRT protocol
The new MRT protocol is responsible for periodic RIB table dumps in the
MRT format (RFC 6396). Also the existing code for BGP4MP MRT dumps is
refactored and splitted between BGP to MRT protocols, will be more
integrated into MRT in the future.

Example:

protocol mrt {
	table "*";
	filename "%N_%F_%T.mrt";
	period 60;
}

It is partially based on the old MRT code from Pavel Tvrdik.
2018-09-18 17:50:45 +02:00
Jan Maria Matejka
afa14f1868 Conf: Show the line:char position where the syntax error happens 2018-09-11 16:58:09 +02:00
Ondrej Zajicek (work)
b1f6c439f5 BGP: Fix BFD/GR interaction
The old code does not cause GR if BFD failed when GR is running,
session is re-established but not yet synchronized.
2018-08-01 17:41:29 +02:00
Ondrej Zajicek (work)
4abccabd7b BGP: Minor fixes in long-lived graceful restart 2018-08-01 17:35:39 +02:00
Ondrej Zajicek (work)
6be71641ef BSD: Use MSG_DONTROUTE for unicast packets on FreeBSD
BSD systems cannot use SO_DONTROUTE, because it does not work properly
with multicast packets (perhaps it tries to find iface based on multicast
group address). But we can use MSG_DONTROUTE sendmsg() flag for unicast
packets. Works on FreeBSD, is ignored on OpenBSD and is broken on NetBSD
(i guess due to integrated routing table and ARP table).
2018-07-28 19:30:56 +02:00