summaryrefslogtreecommitdiff
path: root/nest
AgeCommit message (Collapse)Author
2022-09-21Fixed the export settle timer to be actually a settle timerMaria Matejka
2022-09-21Local page allocationMaria Matejka
2022-09-20Fixed display of standby memoryMaria Matejka
2022-09-20Route export may get corked on refeed startupMaria Matejka
2022-09-20Merge commit 'adf37d8e' into thread-nextMaria Matejka
2022-09-18Merge commit '4f3fa162' into HEADMaria Matejka
2022-09-18Fix for table hostcache corking and shutdown race conditionsMaria Matejka
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-18Routing tables have their own service loops.Maria Matejka
2022-09-18Memory pages allocator is now a global simple lockless structureMaria Matejka
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 commit 'd2c1036a42881d413ec97203ede92a69f8cd218f' 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-18Simplified the protocol hookup code in MakefilesMaria 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-02Merge commit 'f0507f05ce57398e135651896dace4cb68eeed54' into thread-nextMaria Matejka
2022-08-02Also next hop update routines are corking themselves when congestion is detectedMaria Matejka
2022-08-02Route table cork: Indicate whether the export queues are congested.Maria Matejka
These routines detect the export congestion (as defined by configurable thresholds) and propagate the state to readers. There are no readers for now, they will be added in following commits.
2022-07-28Moved the thread starting code to IO loop codeMaria Matejka
2022-07-22Revert "Export table: Delay freeing of old stored route."Maria Matejka
This reverts commit cee0cd148c9b71bf47d007c850193b5fbf9486c1. This change is not needed in version 2 and the surrounding code has disappeared mostly in version 3.
2022-07-18Event lists rewritten to a single linked listMaria Matejka
In multithreaded environment, we need to pass messages between workers. This is done by queuing events to their respective queues. The double-linked list is not really useful for that as it needs locking everywhere. This commit rewrites the event subsystem to use a single-linked list where events are enqueued by a single atomic instruction and the queue is processed after atomically moving the whole queue aside.
2022-07-18Merge commit '94eb0858' into thread-nextMaria Matejka
2022-07-18Fixing build issues caused by a nonportable Makefile ruleMaria Matejka
2022-07-15Merge commit 'c70b3198' into thread-next [lots of conflicts]Maria Matejka
There were more conflicts that I'd like to see, most notably in route export. If a bisect identifies this commit with something related, it may be simply true that this commit introduces that bug. Let's hope it doesn't happen.
2022-07-14Fixed invalid routes handlingMaria Matejka
The invalid routes were filtered out before they could ever get exported, yet some of the routines need them available, e.g. for display or import reload. Now the invalid routes are properly exported and dropped in channel export routines instead.
2022-07-13Merge commit '2e5bfeb73ac25e236a24b6c1a88d0f2221ca303f' into thread-nextMaria Matejka
2022-07-13Merge commit '7e9cede1fd1878fb4c00e793bccd0ca6c18ad452' into thread-nextMaria Matejka
2022-07-13Fixed bug in repeated show route commandMaria Matejka
Introduced by 13ef5e53dd4a98c80261139b4c9ce4b1074cac40, the CLI was not properly cleaned up when the command finished, causing BIRD to not parse any other command after "show route".
2022-07-12Merge commit 'f18968f5' into thread-nextMaria Matejka
2022-07-12Removing the rte_modify APIMaria Matejka
For BGP LLGR purposes, there was an API allowing a protocol to directly modify their stale routes in table before flushing them. This API was called by the table prune routine which violates the future locking requirements. Instead of this, BGP now requests a special route export and reimports these routes into the table, allowing for asynchronous execution without locking the table on export.