summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
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.
2022-09-05Next hop update triggered at the very end of hostcache updateMaria Matejka
2022-09-05Exporter routine refactoring to allow for nicer table lockingMaria Matejka
2022-09-01Added an indirection to the export announcement routineMaria Matejka
There are performance reasons for this, mostly that we don't want to ping the table service routine with every import.
2022-09-01ROA subscriptions are also converted to export requests.Maria Matejka
By this, the requesting channels do the timers in their own loops, avoiding unnecessary synchronization when the central timer went off. This is of course less effective for now, yet it allows to easily implement selective reloads in future.
2022-09-01Flowspec revalidate notification converted to an export hookMaria Matejka
Instead of synchronous notifications, we use the asynchronous export framework to notify flowspec src route updates. This allows us to invoke flowspec revalidation without locking collisions.
2022-09-01Hostcache update notification converted to an export hookMaria Matejka
Instead of synchronous notifications, we use the asynchronous export framework to notify also hostcache updates. This allows us to do the hostcache update and the subsequent next hop update notification without locking collisions.
2022-09-01Miscellaneous refactoringMaria Matejka
2022-09-01Table debug is now a per-table setting and has categories.Maria Matejka
2022-09-01Default tables are not created unless actually used.Maria Matejka
This allows for setting default table values at the beginning of config file before "master4" and "master6" tables are initialized.
2022-08-30Tables: Requesting prune only after export cleanupMaria Matejka
We can't free the network structures before the export has been cleaned up, therefore it makes more sense to request prune only after export cleanup. This change also reduces prune calls on table shutdown.
2022-08-18Merge branch 'mq-fix-eattr-setting' into backportMaria Matejka
2022-08-18Simplified the protocol hookup code in MakefilesMaria Matejka
2022-08-18Fixed initialization of Linux kernel route attributesMaria Matejka
2022-08-05Merge branch 'backport' into thread-nextMaria Matejka
2022-08-05Merge commit '082905a8' into thread-nextMaria Matejka
2022-08-05Merge commit '534d0a4b' into thread-nextMaria Matejka
2022-08-05Merge commit '2e484f8d' into thread-nextMaria Matejka
2022-08-05Merge commit '971721c9' into thread-nextMaria Matejka
2022-08-05Merge commit '4d48ede5' into thread-nextMaria Matejka
2022-08-03Merge commit 'c7d0c5b2' into thread-nextMaria Matejka
2022-08-03Merge commit '18f66055' into thread-nextMaria Matejka
2022-08-03Merge commit '038fcf1c' into thread-nextMaria Matejka
It was necessary to update the code to match removal of rta, as well as existence of cached nested attribute lists.
2022-08-03Merge commit '082905a8' into HEADMaria Matejka
2022-08-03rip_rte_better() uses the IGP_METRIC_UNKNOWN instead of protocol-specific ↵Maria Matejka
infinity
2022-08-03Merge commit '97476e00' into thread-nextMaria Matejka
Had to fix route source locking inside BGP export table as we need to keep the route sources properly allocated until even last BGP pending update is sent out, therefore the export table printout is accurate.
2022-08-03BGP: The bucket/prefix hashes are now a resource to allow for proper cleanupMaria Matejka
2022-08-02Merge commit 'f0507f05ce57398e135651896dace4cb68eeed54' into thread-nextMaria Matejka
2022-08-02Merge branch 'ballygarvan' into HEADMaria Matejka
Replacing the old 3.0-alpha0 cork mechanism with another one inside the routing table. This version should be simpler and also quite clear what it does, why and when.
2022-08-02Revert "Split route table event into separate events"Maria Matejka
This reverts commit 445eeaf3df126af2c7b61e71c4f08a583eb4fa60.
2022-08-02Revert "Table cork: Stop creating updates when there are too many pending."Maria Matejka
This reverts commit 3b20722a1fc777c27ab2e0451d0ea3fee7fa81a2.
2022-08-02Also next hop update routines are corking themselves when congestion is detectedMaria Matejka
2022-08-02BGP: respecting table corkMaria Matejka