0
0
mirror of https://gitlab.nic.cz/labs/bird.git synced 2024-09-19 20:05:21 +00:00
Commit Graph

2912 Commits

Author SHA1 Message Date
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
Ondrej Zajicek (work)
3140c8b2ca Move FreeBSD CFLAGS and LDFLAGS to configure
Backport of commit 09c1e370b3.
2018-07-28 15:52:19 +02:00
Ondrej Zajicek (work)
aa2ec912f5 BGP: Long-lived graceful restart enhancements
When use of LLGR is negotiated, handle hold timeout by LLGR instead of by
hard restart. Allow to configure whether BFD session down event should be
handled by GR/LLGR or by hard restart.
2018-07-17 13:16:35 +02:00
Ondrej Zajicek (work)
a9d869c484 Doc: Documentation for long-lived graceful restart 2018-07-17 13:16:35 +02:00
Ondrej Zajicek (work)
68197386dd BGP: Long-lived graceful restart
The patch implements long-lived graceful restart for BGP, namely
draft-uttaro-idr-bgp-persistence-03.
2018-07-17 13:16:18 +02:00
Ondrej Zajicek (work)
470efcb98c Nest: Fix race condition during reconfiguration, part 2
If export filter is changed during reconfiguration and a route disappears
between reconfiguration and refeed (e.g., if the route is a static route
also removed during the reconfiguration), the route is not withdrawn.

The issue was fixed for regular channels by an earlier patch. This patch
fixes the issue for channels in RA_ACCEPTED mode (first-pass-the-filter),
used by BGP with 'secondary' option.
2018-07-06 02:17:59 +02:00
Ondrej Zajicek (work)
cbfdf6ed05 Nest: Fix race condition during reconfiguration
If export filter is changed during reconfiguration and a route disappears
between reconfiguration and refeed (e.g., if the route is a static route
also removed during the reconfiguration), the route is not withdrawn.
The patch fixes that by adding tx reconfiguration timestamp.
2018-07-03 19:21:59 +02:00
Maria Matejka
822a7ee6d5 Autotools: updated config.guess and config.sub
Updated to version 63b4ce2e8c28aee6a32133e400436e4ca885215a
from git://git.savannah.gnu.org/config.git

Previous version was 93b5037172b15ad28952481933517f1ba93d125b
2018-04-24 14:43:42 +02:00
Maria Matejka
0671e6c29a Netlink: removed dynamic length array as Clang won't support it. 2018-04-24 12:18:32 +02:00
Maria Matejka
1e921ec868 Android: check for extra libs needed for build 2018-04-24 12:18:32 +02:00
Maria Matejka
7904f409e2 Doc: renamed progdoc files Doc -> progdoc to fix collision with doc/ folder on case-insensitive filesystems 2018-04-23 11:29:13 +02:00
Ondrej Zajicek (work)
4c0b741ba7 Doc: Remove some superfluous slashes 2018-03-24 01:53:03 +01:00
Ondrej Zajicek (work)
f99c61b1f4 Doc: Be consistent in generating pdf output 2018-03-24 01:34:58 +01:00
Ondrej Filip
2ee6a89a8d Autoconf replaced by autoreconf 2018-03-23 17:22:55 +01:00
Ondrej Filip
f77fb3f00e Date added. 2018-03-22 13:33:12 +01:00
Ondrej Zajicek (work)
a71a75213d NEWS and version update 2018-03-21 16:26:39 +01:00
Ondrej Zajicek (work)
4dff1f32b5 Doc: Minor build fix 2018-03-21 16:26:39 +01:00
Ondrej Zajicek (work)
97b1b04d93 C99 loop declarations not allowed in 1.6.x 2018-03-19 19:51:11 +01:00
Jan Maria Matejka
e8bc64e308 Filter: make bgpmask literals real constructors
The bgpmask literals can include expressions. This is OK but they have
to be interpreted as soon as the code is run, not in the time the code
is used as value.

This led to strange behavior like rewriting bgpmasks when they shan't
be rewritten:

	function mask_generator(int as)
	{
		return [= * as * =];
	}

	function another()
	bgpmask m1;
	bgpmask m2;
	{
		m1 = mask_generator(10);
		m2 = mask_generator(20);
		if (m1 == m2) {
			print("strange"); # this would happen
		}
	}

Moreover, sending this to CLI would cause stack overflow and knock down the
whole BIRD, as soon as there is at least one route to execute the given
filter on.

	show route filter bgpmask mmm; bgppath ppp; { ppp = +empty+; mmm = [= (ppp ~ mmm) =]; print(mmm); accept; }

The magic match operator (~) inside the bgpmask literal would try to
resolve mmm, which points to the same bgpmask so it would resolve
itself, call the magic match operator and vice versa.

After this patch, the bgpmask literal will get resolved as soon as it's
assigned to mmm and it also will return a type error as bool is not
convertible to ASN in BIRD.
2018-03-14 11:34:29 +01:00