summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-09-29Merge branch 'tmp-bad-learn' into thread-nextMaria Matejka
2022-09-29Merge commit '9efaf6ba' into tmp-bad-learnMaria Matejka
Also fixed forgotten best route selection among alien routes.
2022-09-27Merge commit '4364ee' into tmp-bad-learnMaria Matejka
2022-09-27Merge commit 'cae5979871ee7aa341334f8b1af6bafc60ee9692' into tmp-bad-learnMaria Matejka
2022-09-27KRT: Fix route learningMaria Matejka
This is a reimplementation of commit 0f2be469f897b6d9f925563bbf522438c83522ea by Alexander Zubkov. In the master branch, changes in commit eb937358 broke setting of channel preference for alien routes learned during scan. The preference was set only for async routes. The original solution is extended here to accomodate for v3 specifics.
2022-09-26Merge commit '3fd1f461' into thread-nextMaria Matejka
closes #16 closes #17 closes #18
2022-09-26Merge commit 'aadf690b' into thread-nextMaria Matejka
Merging the old version of route refresh export settle times with -s ours as the new version is more contained.
2022-09-26Higher export settle times when route refresh is running.Maria Matejka
This helps the route refresh procedures to finish or at least do more work before the exporters jump in and steal all the CPU time for themselves.
2022-09-23More verbose logging of table auxiliary export statesMaria Matejka
2022-09-23Fixed possible race condition in hostcache trie matching code not triggering HCUMaria Matejka
2022-09-21Fixed the export settle timer to be actually a settle timerMaria Matejka
2022-09-21Caching eattrs in filters is not needed anymore.Maria Matejka
After flattening the route attribute structure, the ea_list ** is derivable from rte * by arithmetics. Caching the derived value doesn't help performance and therefore is removed as unnecessary.
2022-09-21Flushing tmp_linpool in tree test and in static protocolMaria Matejka
2022-09-21Trie test uses direct tmp_allocz() instead of lp_allocz(tmp_linpool)Maria Matejka
2022-09-21Local page allocationMaria Matejka
2022-09-20Pipe kick-and-drain packed into a neat structure and functions.Maria Matejka
2022-09-20BFD: The old pipe notification mechanism replaced by eventsMaria Matejka
2022-09-20Fixed display of standby memoryMaria Matejka
2022-09-20Merge commit 'df476c2e' into thread-nextMaria Matejka
Implemented the corking by our own commit, merging with "ours" strategy.
2022-09-20Route export may get corked on refeed startupMaria Matejka
2022-09-20Merge commit '0fd1c1d0' into thread-nextMaria Matejka
Using the "ours" strategy as the changes introduced in merged commits are already implemented in thread-next in a different way.
2022-09-20Merge commit 'adf37d8e' into thread-nextMaria Matejka
2022-09-20Merge commit 'dc160e11' into thread-nextMaria Matejka
2022-09-19Merge remote-tracking branch 'origin/master' into thread-nextMaria Matejka
Ignoring that revert as the thread stack needs a completely different allocation strategy. Not the current one either, yet it has to be done yet.
2022-09-19Switched off forking for filter test.Maria Matejka
You don't want to fork with threads running.
2022-09-18Merge commit '4f3fa162' into HEADMaria Matejka
2022-09-18Fix for table hostcache corking and shutdown race conditionsMaria Matejka
2022-09-18Merge commit '1518970c' into HEADMaria Matejka
2022-09-18Fixing several race-conditions in event code.Maria Matejka
After a suggestion by Santiago, I added the direct list pointer into events and the events are now using this value to check whether the route is active or not. Also the whole trick with sentinel node unioned with event list is now gone. For debugging, there is also an internal circular buffer to store what has been recently happening in event code before e.g. a crash happened. By default, this debug is off and must be manually enabled in lib/event.c as it eats quite some time and space.
2022-09-18Longer unit test default timeout to prevent spurious build failures on slow ↵Maria Matejka
virtuals
2022-09-18Table: Re-scheduling prune event when another prune loop is pendingMaria Matejka
2022-09-18Export event doesn't have to be postponed before requeuing as an export-stop ↵Maria Matejka
event
2022-09-18Converted simple table events to loop flagsMaria Matejka
2022-09-18Loop flags: a simple idempotent event announcement mechanismMaria Matejka
2022-09-18Cancelling all timers when loop stopsMaria Matejka
2022-09-18Routing tables have their own service loops.Maria Matejka
2022-09-18Memory pages allocator is now a global simple lockless structureMaria Matejka
2022-09-16Revert "Reducing filter stack size to allow for lesser thread stack size"Maria Matejka
This reverts commit 2c13759136951ef0e70a3e3c2b2d3c9a387f7ed9.
2022-09-14Revert "Routing tables now have their own loops."Maria Matejka
This reverts commit 878eeec12bf020c9e7460040d225a929bbbd2bd2. These changes have been done in a different way in the other branch of the future merge.
2022-09-09Table export announcer needs both an event and a timer to do export bundling ↵Maria Matejka
the right way
2022-09-09Created a dedicated settle timer structureMaria Matejka
2022-09-09Merge remote-tracking branch 'origin/master' into thread-nextMaria Matejka
2022-09-09Merge commit 'd2c1036a42881d413ec97203ede92a69f8cd218f' into thread-nextMaria Matejka
2022-09-09Merge branch 'mq-fix-eattr-setting' into thread-nextMaria Matejka
2022-09-08Table access is now locked.Maria Matejka
2022-09-08Table feed refactoring to allow for locking and unlockingMaria Matejka
2022-09-08Table long-locking debug codeMaria Matejka
2022-09-08Next hop updater has its own eventMaria Matejka
2022-09-07Next hop refactoring to allow for table lockingMaria Matejka
2022-09-06Better profylaction recursive route loopsMaria Matejka
In some specific configurations, it was possible to send BIRD into an infinite loop of recursive next hop resolution. This was caused by route priority inversion. To prevent priority inversions affecting other next hops, we simply refuse to resolve any next hop if the best route for the matching prefix is recursive or any other route with the same preference is recursive. Next hop resolution doesn't change route priority, therefore it is perfectly OK to resolve BGP next hops e.g. by an OSPF route, yet if the same (or covering) prefix is also announced by iBGP, by retraction of the OSPF route we would get a possible priority inversion.