summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-10-04Merge commit 'a32cee78' into HEADMaria Matejka
2022-10-04Merge commit '71b434a9' into HEADMaria Matejka
2022-10-04Merge commit '0072d11f' into tmp-learnMaria 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-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 '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
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-08-02Introducing basic RCU primitives for lock-less shared data structuresMaria Matejka
2022-08-01Fixed main birdloop init in unit testsMaria Matejka
Some unit tests weren't initializing the birdloop, trying to write the birdloop ping into stdin. Fixed this and also forced stdin close on startup of every test just to be sure that CI and local build behave the same in this. (CI was failing on this while local build not.)
2022-07-28Sending an event must also ping the target IO loopMaria Matejka
2022-07-28Moved the thread starting code to IO loop codeMaria Matejka
2022-07-28Merge commit '03bf6b90' into thread-nextMaria Matejka
2022-07-28Revert "Adding a generic cork mechanism for events"Maria Matejka
This reverts commit 6e841b3153565632b6753f6b1fe74850c37f2808.
2022-07-24Merge branch 'master' into backportOndrej Zajicek
2022-07-24KRT: Scan routing tables separetely on linux to avoid congestionOndrej Zajicek
Remove compile-time sysdep option CONFIG_ALL_TABLES_AT_ONCE, replace it with runtime ability to run either separate table scans or shared scan. On Linux, use separate table scans by default when the netlink socket option NETLINK_GET_STRICT_CHK is available, but retreat to shared scan when it fails. Running separate table scans has advantages where some routing tables are managed independently, e.g. when multiple routing daemons are running on the same machine, as kernel routing table modification performance is significantly reduced when the table is modified while it is being scanned. Thanks Daniel Gröber for the original patch and Toke Høiland-Jørgensen for suggestions.
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-18Merge commit 'a4451535' into thread-nextMaria Matejka
2022-07-18Fixed an annoying warning in ea_get_storage()Maria Matejka
2022-07-18Fixing build issues caused by a nonportable Makefile ruleMaria Matejka
2022-07-18Merge commit 'a845651b' into thread-nextMaria 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 branch 'backport' into thread-nextMaria Matejka
2022-07-13Merge commit '2e5bfeb73ac25e236a24b6c1a88d0f2221ca303f' into thread-nextMaria Matejka
2022-07-13Merge commit 'd429bc5c841a8e9d4c81786973edfa56d20a407e' 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-12BGP: Minor improvements to BGP rolesOndrej Zajicek
Add support for bgp_otc in filters and warning for configuration inside confederations.
2022-07-12Merge commit '1df20989' into thread-nextMaria Matejka
2022-07-12Revert "Special table hooks rectified."Maria Matejka
This reverts commit 44f26c49f966ca842ff9af55468de0b98c44b73e.
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.