Age | Commit message (Collapse) | Author | |
---|---|---|---|
2022-09-09 | Merge commit 'd2c1036a42881d413ec97203ede92a69f8cd218f' into thread-next | Maria Matejka | |
2022-09-09 | Merge branch 'mq-fix-eattr-setting' into thread-next | Maria Matejka | |
2022-09-08 | Table access is now locked. | Maria Matejka | |
2022-09-08 | Table feed refactoring to allow for locking and unlocking | Maria Matejka | |
2022-09-08 | Table long-locking debug code | Maria Matejka | |
2022-09-08 | Next hop updater has its own event | Maria Matejka | |
2022-09-07 | Next hop refactoring to allow for table locking | Maria Matejka | |
2022-09-05 | Next hop update triggered at the very end of hostcache update | Maria Matejka | |
2022-09-05 | Exporter routine refactoring to allow for nicer table locking | Maria Matejka | |
2022-09-01 | Added an indirection to the export announcement routine | Maria Matejka | |
There are performance reasons for this, mostly that we don't want to ping the table service routine with every import. | |||
2022-09-01 | ROA 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-01 | Flowspec revalidate notification converted to an export hook | Maria 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-01 | Hostcache update notification converted to an export hook | Maria 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-01 | Miscellaneous refactoring | Maria Matejka | |
2022-09-01 | Table debug is now a per-table setting and has categories. | Maria Matejka | |
2022-09-01 | Default 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-30 | Tables: Requesting prune only after export cleanup | Maria 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-18 | Merge branch 'mq-fix-eattr-setting' into backport | Maria Matejka | |
2022-08-18 | Simplified the protocol hookup code in Makefiles | Maria Matejka | |
2022-08-18 | Fixed initialization of Linux kernel route attributes | Maria Matejka | |
2022-08-05 | Merge branch 'backport' into thread-next | Maria Matejka | |
2022-08-05 | Merge commit '082905a8' into thread-next | Maria Matejka | |
2022-08-05 | Merge commit '534d0a4b' into thread-next | Maria Matejka | |
2022-08-05 | Merge commit '2e484f8d' into thread-next | Maria Matejka | |
2022-08-05 | Merge commit '971721c9' into thread-next | Maria Matejka | |
2022-08-05 | Merge commit '4d48ede5' into thread-next | Maria Matejka | |
2022-08-03 | Merge commit 'c7d0c5b2' into thread-next | Maria Matejka | |
2022-08-03 | Merge commit '18f66055' into thread-next | Maria Matejka | |
2022-08-03 | Merge commit '038fcf1c' into thread-next | Maria Matejka | |
It was necessary to update the code to match removal of rta, as well as existence of cached nested attribute lists. | |||
2022-08-03 | Merge commit '082905a8' into HEAD | Maria Matejka | |
2022-08-03 | rip_rte_better() uses the IGP_METRIC_UNKNOWN instead of protocol-specific ↵ | Maria Matejka | |
infinity | |||
2022-08-03 | Merge commit '97476e00' into thread-next | Maria 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-03 | BGP: The bucket/prefix hashes are now a resource to allow for proper cleanup | Maria Matejka | |
2022-08-02 | Merge commit 'f0507f05ce57398e135651896dace4cb68eeed54' into thread-next | Maria Matejka | |
2022-08-02 | Merge branch 'ballygarvan' into HEAD | Maria 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-02 | Revert "Split route table event into separate events" | Maria Matejka | |
This reverts commit 445eeaf3df126af2c7b61e71c4f08a583eb4fa60. | |||
2022-08-02 | Revert "Table cork: Stop creating updates when there are too many pending." | Maria Matejka | |
This reverts commit 3b20722a1fc777c27ab2e0451d0ea3fee7fa81a2. | |||
2022-08-02 | Also next hop update routines are corking themselves when congestion is detected | Maria Matejka | |
2022-08-02 | BGP: respecting table cork | Maria Matejka | |
2022-08-02 | Route 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-02 | Introducing basic RCU primitives for lock-less shared data structures | Maria Matejka | |
2022-08-01 | Fixed main birdloop init in unit tests | Maria 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-28 | Sending an event must also ping the target IO loop | Maria Matejka | |
2022-07-28 | Moved the thread starting code to IO loop code | Maria Matejka | |
2022-07-28 | Merge commit '03bf6b90' into thread-next | Maria Matejka | |
2022-07-28 | Revert "Adding a generic cork mechanism for events" | Maria Matejka | |
This reverts commit 6e841b3153565632b6753f6b1fe74850c37f2808. | |||
2022-07-27 | Merge branch 'master' into backport | Ondrej Zajicek | |
2022-07-26 | Netlink: Restrict route replace for IPv6 | Ondrej Zajicek | |
Seems like the previous patch was too optimistic, as route replace is still broken even in Linux 4.19 LTS (but fixed in Linux 5.10 LTS) for: ip route add 2001:db8::/32 via fe80::1 dev eth0 ip route replace 2001:db8::/32 dev eth0 It ends with two routes instead of just the second. The issue is limited to direct and special type (e.g. unreachable) routes, the patch restricts route replace for cases when the new route is a regular route (with a next hop address). | |||
2022-07-25 | Netlink: Simplify handling of IPv6 ECMP routes | Ondrej Zajicek | |
When IPv6 ECMP support first appeared in Linux kernel, it used different API than IPv4 ECMP. Individual next hops were updated and announced separately, instead of using RTA_MULTIPATH as in IPv4. This has several drawbacks and requires complex code to merge received notifications to one multipath route. When Linux came with IPv6 RTA_MULTIPATH support, the initial versions were somewhat buggy, so we kept using the old API for updates (splitting multipath routes to sequences of route updates), while accepting both old-style routes and RTA_MULTIPATH routes in scans / notifications. As IPv6 RTA_MULTIPATH support is here for a long time, this patch fully switches Netlink to the IPv6 RTA_MULTIPATH API and removes old complex code for handling individual next hop announces. The required Linux version is at least 4.11 for reliable operation. Thanks to Daniel Gröber for the original patch. | |||
2022-07-24 | Merge branch 'master' into backport | Ondrej Zajicek | |