Age | Commit message (Collapse) | Author | |
---|---|---|---|
2023-04-24 | Merge branch 'mq-resource-locking' into thread-next | Maria Matejka | |
2023-04-24 | Removed duplicate version 3.0-alpha0 news | Maria Matejka | |
2023-04-24 | Resource pools are now bound with domains. | Maria Matejka | |
Memory allocation is a fragile part of BIRD and we need checking that everybody is using the resource pools in an appropriate way. To assure this, all the resource pools are associated with locking domains and every resource manipulation is thoroughly checked whether the appropriate locking domain is locked. With transitive resource manipulation like resource dumping or mass free operations, domains are locked and unlocked on the go, thus we require pool domains to have higher order than their parent to allow for this transitive operations. Adding pool locking revealed some cases of insecure memory manipulation and this commit fixes that as well. | |||
2023-04-22 | Protocols and tables now use the birdloop pools as primary | Maria Matejka | |
2023-04-22 | Resource pool closing has its dedicated function | Maria Matejka | |
2023-04-22 | Socket closing has its dedicated function | Maria Matejka | |
2023-04-22 | Global protocol list is typed to avoid typecast confusion | Maria Matejka | |
2023-04-22 | Typed lists: added add_after() and unit tests | Maria Matejka | |
2023-04-21 | Alpha0 news addedv3.0-alpha1 | Ondrej Filip | |
2023-04-19 | Typed lists keep an explicit pointer to the list head. | Maria Matejka | |
This change adds one pointer worth of memory to every list node. Keeping this information helps auditing the lists, checking that the node indeed is outside of list or inside the right one. The typed lists shouldn't be used anywhere with memory pressure anyway, thus the one added pointer isn't significant. | |||
2023-04-18 | Updated the version number to not include dash (breaks RPM) | Maria Matejka | |
2023-04-18 | NEWS and version update | Maria Matejka | |
2023-04-18 | Merge tag '3.0-alpha0' into HEAD | Maria Matejka | |
3.0-alpha0 | |||
2023-04-17 | IO: added a specific loop pickup group for BFD; to be done better in future | Maria Matejka | |
2023-04-14 | Merge commit '9e44ace3' into thread-next-iface | Maria Matejka | |
2023-04-14 | Merge commit 'f881b98d' into thread-next-iface | Maria Matejka | |
2023-04-14 | Merge commit '231c6385' into thread-next-iface | Maria Matejka | |
2023-04-14 | Merge commit '2f080b54' into thread-next-iface | Maria Matejka | |
2023-04-14 | Merge commit '6c058ae4' into thread-next-iface | Maria Matejka | |
2023-04-14 | Merge commit '913ec57f' into thread-next-iface | Maria Matejka | |
2023-04-14 | Merge commit 'ee919658' into thread-next-iface | Maria Matejka | |
2023-04-14 | Merge commit '0851fcde' into thread-next-iface | Maria Matejka | |
2023-04-14 | Merge commit 'dc4c5f51' into thread-next-iface | Maria Matejka | |
2023-04-14 | BGP: Add 'allow bgp_med' option for EBGP sessions | Trisha Biswas | |
This option allows to treat bgp_med as regular transitive attribute on EBGP sessions (without hacks in filters). Minor changes from committer. | |||
2023-04-13 | Increase tests timeout | Jakub Ružička | |
Tests may take longer than 5 s to complete on slow/virtual machines. | |||
2023-04-12 | Temporarily disable MRT as it still lacks proper locking; to be re-enabled ↵ | Maria Matejka | |
in 3.0-alpha2 | |||
2023-04-06 | Loop: keep running the same loop for some time if there is work to do | Maria Matejka | |
2023-04-06 | BFD: fixed a request pickup race condition | Maria Matejka | |
When several BGPs requested a BFD session in short time, chances were that the second BGP would file a request while the pickup routine was still running and it would get enqueued into the waiting list instead of being picked up. Fixed this by enforcing pickup loop restart when new requests got added, and also by atomically moving the unpicked requests to a temporary list to announce admin down before actually being added into the wait list. | |||
2023-04-04 | BGP: set free bind also for connect sockets if configured | Maria Matejka | |
2023-04-04 | BGP: sockets use sk_resume_rx and sk_pause_rx | Maria Matejka | |
2023-04-04 | BGP now has its own loop | Maria Matejka | |
2023-04-04 | Sockets: Unified API for main and other loops | Maria Matejka | |
Now sk_open() requires an explicit IO loop to open the socket in. Also specific functions for socket RX pause / resume are added to allow for BGP corking. And last but not least, socket reloop is now synchronous to resolve weird cases of the target loop stopping before actually picking up the relooped socket. Now the caller must ensure that both loops are locked while relooping, and this way all sockets always have their respective loop. | |||
2023-04-04 | More efficient IO loop event execution to avoid long loops | Maria Matejka | |
If there are lots of loops in a single thread and only some of the loops are actually active, the other loops are now kept aside and not checked until they actually get some timers, events or active sockets. This should help with extreme loads like 100k tables and protocols. Also ping and loop pickup mechanism was allowing subtle race conditions. Now properly handling collisions between loop ping and pickup. | |||
2023-04-04 | Resource dumps also write out block addresses | Maria Matejka | |
2023-04-04 | Linpool: State restoration works in initial linpool state | Maria Matejka | |
2023-04-04 | Misc allocator fixes | Maria Matejka | |
2023-04-04 | Allocator fix: thread local kept pages counter must be thread local | Maria Matejka | |
2023-04-04 | Route feed marks only the relevant pending exports as done | Maria Matejka | |
2023-04-04 | Propagated const through route feed routines | Maria Matejka | |
2023-04-04 | Moved channel export hooks to rt.h as the channel refactoring isn't going to ↵ | Maria Matejka | |
take place soon | |||
2023-04-04 | Allowing to restart a route refresh. | Maria Matejka | |
Repeated pipe refeed should not end route refresh as the prune routine may start pruning otherwise valid routes. The same applies for BGP repeated route refresh. | |||
2023-04-04 | Fixed default table configuration | Maria Matejka | |
When changing default table behavior, I missed that it enabled to configure multiple master4 and master6 tables. Now BIRD recognizes it and fails properly. | |||
2023-04-04 | Fixed use-after-free of old protocol name pointer copied into rte_owner ↵ | Maria Matejka | |
structure | |||
2023-04-04 | Fixed unwanted reloads while reconfiguring protocols with import table on | Maria Matejka | |
2023-04-04 | Fixed bad filter re-evaluation with import table if filtered->accepted | Maria Matejka | |
The import table feed wasn't resetting the table-specific route values like REF_FILTERED and thus made the route look like filtered even though it should have been re-evaluated as accepted. | |||
2023-04-04 | Fixed channel stopping when reload is active | Maria Matejka | |
2023-04-04 | Fix obvious mistake in protocol debug dump | Maria Matejka | |
2023-04-04 | Fixed stopping of import request with no imports in idle table | Maria Matejka | |
2023-04-04 | Moved table hostcache updater to table service routines to not bother the ↵ | Maria Matejka | |
mainloop | |||
2023-04-04 | Reducing initial channel bitmap sizes to help extreme cases | Maria Matejka | |