summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-12-16Netlink: move OS-specific headers and defines to sysdepAlexander Chernikov
Minor changes from committer.
2022-12-16BSD: Add missing makefile for bsd-netlink targetOndrej Zajicek
Use symlinks to linux/netlink* to avoid limitations of our buildsystem.
2022-12-11NEWS and version updatev2.0.11Ondrej Zajicek
2022-12-11BSD: Workaround for direct routes on FreeBSD 13.0Ondrej Zajicek
FreeBSD 13.0 added some safechecks for syscalls, rejecting sockaddrs that are too small, later versions loosen up the check.
2022-12-10BGP: Log unacceptable hold time as decimal numberOndrej Zajicek
Thanks Johannes Moos for the suggestion.
2022-12-10CLI: Fix for long-lived sessions during high loadsOndrej Zajicek
When there is a continuos stream of CLI commands, cli_get_command() always returns 1 (there is a new command). Anyway, the socket receive buffer was reset only when there was no command at all, leading to a strange behavior: after a while, the CLI receive buffer came to its end, then read() was called with zero size buffer, it returned 0 which was interpreted as EOF. The patch fixes that by resetting the buffer position after each command and moving remaining data at the beginning of buffer. Thanks to Maria Matejka for examining the bug and for the original bugfix.
2022-12-10Client: Unknown command should return nonzero errorcodeOndrej Zajicek
2022-12-09Doc: Document issue with import tablesOndrej Zajicek
The import table does not work reliably together with re-evaluation of routes due to recursive next hops or flowspec validation. We will at least document that here, as import tables are completely redesigned and this issue is fixed in BIRD 3.x branch.
2022-12-09Netlink on FreeBSD supportAlexander V. Chernikov
Netlink support was added to FreeBSD recently. It is not as full-featured as its Linux counterpart yet, however the added subset is enough to make a routing daemon work. Specifically, it supports multiple tables, multipath, nexthops and nexthops groups. No MPLS support yet. The attached change adds 'bsd-netlink’ sysconf target, allowing to build both netlink & rtsock versions on FreeBSD.
2022-12-09BGP: Improve handling of hold and keepalive timersOndrej Zajicek
The effective keepalive time now scales relative to the negotiated hold time, to maintain proportion between the keepalive time and the hold time. This avoids issues when both keepalive and hold times were configured, the hold time was negotiated to a smaller value, but the keepalive time stayed the same. Add new options 'min hold time' and 'min keepalive time', which reject session attempts with too small hold time. Improve validation of config options an their documentation. Thanks to Alexander Zubkov and Sergei Goriunov for suggestions.
2022-12-06Nest: Avoid spurious announcements triggered by filtered routesOndrej Zajicek
When filtered routes (enabled by 'import keep filtered' option) are updated, they trigger announcements by rte_announce(). For regular channels (e.g. type RA_OPTIMAL or RA_ANY) such announcement is just ignored, but in case of RA_ACCEPTED (BGP peer with 'secondary' option) it just reannounces the old (and still valid) best route. The patch ensures that such no-change is ignored even for these channels.
2022-11-30CI: Remove docker rebuild phaseOndrej Zajicek
It is unnnecessary and takes too much time
2022-11-30CI: Try new workersOndrej Zajicek
2022-11-30BSD: Fix krt socket code w.r.t. rte/rta changesOndrej Zajicek
2022-11-29Fix build variables for OpenBSDOndrej Zajicek
2022-11-09Conf: Make 'configure check' command restrictedOndrej Zajicek
While it does not directly change BIRD state, it can trigger reading arbitrary files and eating significant memory.
2022-11-09Conf: Free stored old config before parsing new oneOndrej Zajicek
BIRD keeps a previous (old) configuration for the purpose of undo. The existing code frees it after a new configuration is successfully parsed during reconfiguration. That causes memory usage spikes as there are temporarily three configurations (old, current, and new). The patch changes it to free the old one before parsing the new one (as user already requested a new config). The disadvantage is that undo is not available after failed reconfiguration.
2022-11-08Added more netlab tests for automatic run.Maria Matejka
This commit uses bird-tools in version f35e8bce829f4bff61ec7eb07ec9c67aa867bc9a
2022-11-07Merge remote-tracking branch 'origin/master' into thread-nextMaria Matejka
2022-11-07Merge commit '37b64441' into thread-nextMaria Matejka
2022-11-07Merge commit '32425297' into thread-nextMaria Matejka
2022-11-07Merge commit '8f79e6b9' into thread-nextMaria Matejka
2022-11-07Merge commit '8478de88' into thread-nextMaria Matejka
2022-11-07Merge commit '54430df9' into thread-nextMaria Matejka
2022-11-07Merge commit '0f2be469' into thread-nextMaria Matejka
2022-11-03Page allocator: Fixed minor bugs and added commentaryMaria Matejka
2022-11-02Memory pages are not munmapped, instead we just madvise()Maria Matejka
Memory unmapping causes slow address space fragmentation, leading in extreme cases to failing to allocate pages at all. Removing this problem by keeping all the pages allocated to us, yet calling madvise() to let kernel dispose of them. This adds a little complexity and overhead as we have to keep the pointers to the free pages, therefore to hold e.g. 1 GB of 4K pages with 8B pointers, we have to store 2 MB of data.
2022-11-01Moved config-related allocations to config_pool and showing its size in ↵Maria Matejka
memory usage
2022-10-18Doc: Add documentation for "show route (import|export) table"Alexander Zubkov
2022-10-18Filter: Fix handling of variables in anonymous filtersOndrej Zajicek
Define scope for anonymous filters, and also explicitly distinguish block scopes and function/filter scopes instead of using anonymous / named distinction. Anonymous filters forgot to push scope, so variables for them were in fact defined in the top scope and therefore they shared a frame. This got broken after rework of variables, which assumed that there is a named scope for every function/filter.
2022-10-12Attribute blocks are now allocated from slabs instead of malloc()Maria Matejka
2022-10-12Removed an accidentally merged debug call introduced in ↵Maria Matejka
5395880908fdb264b5b78ccc455dced49eb29915
2022-10-12Netlink: Parse onlink flag even on direct routesOndrej Zajicek
While onlink flag is meaningful only with explicit next hops, it can be defined also on direct routes. Parse it also in this case to avoid periodic updates of the same route. Thanks to Marcin Saklak for the bugreport.
2022-10-12GDB connection: resource pools don't keep free pagesMaria Matejka
2022-10-12Merge commit 'ab0994a1' into thread-nextMaria Matejka
2022-10-12Merge commit '57d0ecb9' into thread-nextMaria Matejka
2022-10-12Merge commit '53958809' into thread-nextMaria Matejka
2022-10-12Merge commit '821344c7' into thread-nextMaria Matejka
2022-10-12Merge commit '4ba991f1' into thread-nextMaria Matejka
2022-10-12Merge commit '44dbedbe' into thread-nextMaria Matejka
2022-10-12Fixed SSH known hosts checking with older versions of libsshMaria Matejka
2022-10-12Tamed slab signedness warning on 32-bit architecturesMaria Matejka
2022-10-12BGP refeed and reload with Adj-RIB-In/Out is done without route refreshMaria Matejka
2022-10-12TES_HUNGRY doesn't inhibit export cleanup any moreMaria Matejka
2022-10-12More thorough logging of route update corner casesMaria Matejka
2022-10-12Fixed BGP reload limitsMaria Matejka
2022-10-12Limited value must never go under zeroMaria Matejka
2022-10-12CLI fix to break busy-loop waiting for corked show-route exportsMaria Matejka
2022-10-12Fixed export hook stopping in some corner cases.Maria Matejka
Notably, it's in a corked state and also when refeed is pending.
2022-10-12BGP: End route refresh before another startsMaria Matejka