Age | Commit message (Collapse) | Author | |
---|---|---|---|
2023-01-21 | Merge commit '3859e4efc1597368df647323c5a3cc1771cb64ca' into thread-next | Maria Matejka | |
2023-01-21 | Merge commit 'e80156d9363a594ff23524f56d59f0eee160859d' into thread-next | Maria Matejka | |
2023-01-21 | Adding forgotten pthread.h #include in io-loop.h (breaks at openbsd 7.1) | Maria Matejka | |
2023-01-21 | Merge commit 'a50d2fa65f3350ee55f5106b87a884d1b98e7761' into thread-next | Maria Matejka | |
2023-01-21 | Merge commit '543c8ba0971e91da3fe507dbfc1e1f9b556642b1' into thread-next | Maria Matejka | |
2023-01-20 | Fixed various build problems on FreeBSD and/or CLang | Maria Matejka | |
2023-01-19 | Merge commit '140c534fb81d0e165b7d674e869c646455ed19d1' into thread-next | Maria Matejka | |
2023-01-19 | Decoupling loops from threads to allow fixed thread count | Maria Matejka | |
On large configurations, too many threads would spawn with one thread per loop. Therefore, threads may now run multiple loops at once. The thread count is configurable and may be changed during run. All threads are spawned on startup. This change helps with memory bloating. BIRD filters need large temporary memory blocks to store their stack and also memory management keeps its hot page storage per-thread. Known bugs: * Thread autobalancing is not yet implemented. * Low latency loops are executed together with standard loops. | |||
2023-01-19 | Table prune routine doesn't walk over lists unless needed. | Maria Matejka | |
If no channel is flushing, table prune doesn't walk over routes in nets and also doesn't walk over importing channel lists. This helps to alleviate the memory caching burdens a lot. | |||
2023-01-19 | CLI closing fix when its action is run asynchronously. | Maria Matejka | |
Some CLI actions, notably "show route", are run by queuing an event somewhere else. If the user closes the socket, in case such an action is being executed, the CLI must free the socket immediately from the error hook but the pool must remain until the asynchronous event finishes and cleans everything up. | |||
2023-01-19 | Removed config reparsing from unrelated tests | Maria Matejka | |
2022-12-09 | BGP: Improve handling of hold and keepalive timers | Ondrej 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-06 | Nest: Avoid spurious announcements triggered by filtered routes | Ondrej 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-30 | CI: Remove docker rebuild phase | Ondrej Zajicek | |
It is unnnecessary and takes too much time | |||
2022-11-30 | CI: Try new workers | Ondrej Zajicek | |
2022-11-30 | BSD: Fix krt socket code w.r.t. rte/rta changes | Ondrej Zajicek | |
2022-11-29 | Fix build variables for OpenBSD | Ondrej Zajicek | |
2022-11-09 | Conf: Make 'configure check' command restricted | Ondrej Zajicek | |
While it does not directly change BIRD state, it can trigger reading arbitrary files and eating significant memory. | |||
2022-11-09 | Conf: Free stored old config before parsing new one | Ondrej 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-08 | Added more netlab tests for automatic run. | Maria Matejka | |
This commit uses bird-tools in version f35e8bce829f4bff61ec7eb07ec9c67aa867bc9a | |||
2022-11-07 | Merge remote-tracking branch 'origin/master' into thread-next | Maria Matejka | |
2022-11-07 | Merge commit '37b64441' into thread-next | Maria Matejka | |
2022-11-07 | Merge commit '32425297' into thread-next | Maria Matejka | |
2022-11-07 | Merge commit '8f79e6b9' into thread-next | Maria Matejka | |
2022-11-07 | Merge commit '8478de88' into thread-next | Maria Matejka | |
2022-11-07 | Merge commit '54430df9' into thread-next | Maria Matejka | |
2022-11-07 | Merge commit '0f2be469' into thread-next | Maria Matejka | |
2022-11-03 | Page allocator: Fixed minor bugs and added commentary | Maria Matejka | |
2022-11-02 | Memory 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-01 | Moved config-related allocations to config_pool and showing its size in ↵ | Maria Matejka | |
memory usage | |||
2022-10-18 | Doc: Add documentation for "show route (import|export) table" | Alexander Zubkov | |
2022-10-18 | Filter: Fix handling of variables in anonymous filters | Ondrej 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-12 | Attribute blocks are now allocated from slabs instead of malloc() | Maria Matejka | |
2022-10-12 | Removed an accidentally merged debug call introduced in ↵ | Maria Matejka | |
5395880908fdb264b5b78ccc455dced49eb29915 | |||
2022-10-12 | Netlink: Parse onlink flag even on direct routes | Ondrej 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-12 | GDB connection: resource pools don't keep free pages | Maria Matejka | |
2022-10-12 | Merge commit 'ab0994a1' into thread-next | Maria Matejka | |
2022-10-12 | Merge commit '57d0ecb9' into thread-next | Maria Matejka | |
2022-10-12 | Merge commit '53958809' into thread-next | Maria Matejka | |
2022-10-12 | Merge commit '821344c7' into thread-next | Maria Matejka | |
2022-10-12 | Merge commit '4ba991f1' into thread-next | Maria Matejka | |
2022-10-12 | Merge commit '44dbedbe' into thread-next | Maria Matejka | |
2022-10-12 | Fixed SSH known hosts checking with older versions of libssh | Maria Matejka | |
2022-10-12 | Tamed slab signedness warning on 32-bit architectures | Maria Matejka | |
2022-10-12 | BGP refeed and reload with Adj-RIB-In/Out is done without route refresh | Maria Matejka | |
2022-10-12 | TES_HUNGRY doesn't inhibit export cleanup any more | Maria Matejka | |
2022-10-12 | More thorough logging of route update corner cases | Maria Matejka | |
2022-10-12 | Fixed BGP reload limits | Maria Matejka | |
2022-10-12 | Limited value must never go under zero | Maria Matejka | |
2022-10-12 | CLI fix to break busy-loop waiting for corked show-route exports | Maria Matejka | |