summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-08-01Doc: Update documentation about VRFs and BFDOndrej Zajicek (work)
2019-08-01Nest: VRF of protocol can be explicitly specified as 'default'Ondrej Zajicek (work)
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-07-30Log: Fixed race condition in reconfigure while BFD is runningMaria Matejka
2019-07-18Debug: growing message format bufferMaria Matejka
This led in corner cases to undefined buffer content and garbage output.
2019-07-18Lib: Fix print of 64-bit router idOndrej Zajicek (work)
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-18BFD: Support for VRFsOndrej Zajicek (work)
Allow multiple BFD instances in separate VRFs, dispatch BFD requests according to VRFs. Thanks to Alexander Zubkov for notice and patches.
2019-07-11BGP: Compliance with RFC8203bisAlexander Azimov
2019-07-11OSPF: Update DR when local priority changesOndrej Zajicek (work)
When priority is reconfigured locally, we need to trigger DR election.
2019-07-11Avoid fallthrough warningsOndrej Zajicek (work)
2019-07-11OSPF: N-bit should not be set for DBDES packetsOndrej Zajicek (work)
2019-06-11BGP: Prefix hash is too small, increase its max size.Maria Jan Matejka
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-11BGP: split tx explicitlyMaria Jan Matejka
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-04-24Small typo in doc.Ondrej Filip
2019-02-26NEWS and version updatev1.6.6Ondrej Zajicek (work)
2019-02-22Nest: Do not compare rte.flags during rte_update()Ondrej Zajicek (work)
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-19Doc: Detect SP/OpenSP automaticallyOndrej Zajicek (work)
2019-02-19Nest: Prevent withdraws from propagation back to source protocol (for ↵Ondrej Zajicek (work)
accepted mode) Update for one of previous patches, handles the the issue for first-accepted mode of route propagation.
2019-02-19Nest: Improve export counter handlingOndrej Zajicek (work)
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-01-30Nest: Prevent withdraws from propagation back to source protocolOndrej Zajicek (work)
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-26Doc: Add documentation for OSPF retransmit delay optionOndrej Zajicek (work)
Thanks to Igor Podlesny for notification.
2019-01-07Added documentation for 'disable after cease'v1.6.5Ondrej Filip
2019-01-05NEWS and version updateOndrej Zajicek (work)
2019-01-04Configure: Fix lost suffix in bird.ctlOndrej Zajicek (work)
One of previous commits bacported from 2.0 removed suffix from bird.ctl
2019-01-04BSD: Fix TCP-MD5 code on current FreeBSD kernelsOndrej Zajicek (work)
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-03Doc: README and INSTALL updateOndrej Zajicek (work)
Minor cleanups, updates and clarifications. Also removes (incomplete and well-known) build steps from README, as they are better described in INSTALL.
2019-01-03Doc: Fix documentation build with newer Linuxdoc-ToolsOndrej Zajicek (work)
2018-12-20Doc: Allow overriding $SGML_CATALOG_FILES using distribution specific pathsRobert Scheck
2018-12-20Doc: Add alternative path for SGML ISO entities 8879.1986 to $SGML_CATALOG_FILESRobert Scheck
The existing paths are valid for Debian, alternative paths are necessary for Fedora and RHEL/CentOS.
2018-12-20Autoconf: Minor cleanupOndrej Zajicek (work)
2018-12-20Configure: Use standard --runstatedir optionOndrej Zajicek (work)
Newer Autoconf defines --runstatedir option for setting directory for run-time variable data. Use it instead our old --with-runtimedir.
2018-12-20Nest: Fix crash in rta_show() for Babel routesOndrej Zajicek (work)
Some new route source values did not have associated string in rta_show(), which might caused crash in some cases.
2018-12-20Lib: Force output type in ip4_addr constructorOndrej Zajicek (work)
Fixes type issue when u64 is pushed into it.
2018-12-20Filter: Fix minor bug in accessing bgp_pathOndrej Zajicek (work)
Not relevant for regular BGP paths, just for BGP paths added by filters to e.g. static routes.
2018-12-20Nest: Fix 'show interfaces summary' commandOndrej Zajicek (work)
The command showed interfaces that were removed / in shutdown.
2018-12-20Doc: Fix description of 'description'Ondrej Zajicek (work)
Thanks to Clemens Schrimpe for the bugreport.
2018-12-19IO: Workaround for broken FreeBSD behaviorOndrej Zajicek (work)
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-19Doc: Generate MRT progdocOndrej Zajicek (work)
2018-12-19Doc: Rename code documentation files back to DocOndrej Zajicek (work)
2018-12-19Doc: Move root of code documentation to doc dirOndrej Zajicek (work)
It reduces clutter in root and also avoid collision with doc dir on case-insensitive filesystems when name back to Doc.
2018-12-19Unix: Fix variable declarationsOndrej Zajicek (work)
2018-12-17OSPF: Fix wrong LSA collisions detectionOndrej Zajicek (work)
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-10OSPF: Fix reconfiguration of vlinksOndrej Zajicek (work)
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-04Static: Fix reset neighbor entries for ECMP routesOndrej Zajicek (work)
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-11-21MRT documentationOndrej Zajicek (work)
2018-11-20MRT: Fix bug in MRT table dump requested from CLIOndrej Zajicek (work)
2018-11-08Nest: Improve keeping track of IPv6 link-local addressesOndrej Zajicek (work)
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-05Filter: Make ifname attribute modifiableOndrej Zajicek (work)
Allow to change an interface associated with a route by setting ifname attribute. It will also change the route to a direct one.
2018-10-25OSPF: Fix some trace messagesOndrej Zajicek (work)
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-09-18The MRT protocolOndrej Zajicek (work)
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-11Conf: Show the line:char position where the syntax error happensJan Maria Matejka