Age | Commit message (Collapse) | Author | |
---|---|---|---|
2022-09-09 | Merge remote-tracking branch 'origin/master' into thread-next | Maria Matejka | |
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-06 | Better profylaction recursive route loops | Maria 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-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). |