Age | Commit message (Collapse) | Author | |
---|---|---|---|
2023-05-11 | Channel: configurable feed block size | Maria Matejka | |
2023-05-09 | OLocks in BGP must be freed early | Maria Matejka | |
2023-04-25 | Refactoring of domains connected to pools | Maria Matejka | |
2023-04-24 | Resource pools are now bound with domains. | Maria Matejka | |
Memory allocation is a fragile part of BIRD and we need checking that everybody is using the resource pools in an appropriate way. To assure this, all the resource pools are associated with locking domains and every resource manipulation is thoroughly checked whether the appropriate locking domain is locked. With transitive resource manipulation like resource dumping or mass free operations, domains are locked and unlocked on the go, thus we require pool domains to have higher order than their parent to allow for this transitive operations. Adding pool locking revealed some cases of insecure memory manipulation and this commit fixes that as well. | |||
2023-04-22 | Protocols and tables now use the birdloop pools as primary | Maria Matejka | |
2023-04-22 | Resource pool closing has its dedicated function | Maria Matejka | |
2023-04-22 | Global protocol list is typed to avoid typecast confusion | Maria Matejka | |
2023-04-17 | IO: added a specific loop pickup group for BFD; to be done better in future | Maria Matejka | |
2023-04-04 | More efficient IO loop event execution to avoid long loops | Maria Matejka | |
If there are lots of loops in a single thread and only some of the loops are actually active, the other loops are now kept aside and not checked until they actually get some timers, events or active sockets. This should help with extreme loads like 100k tables and protocols. Also ping and loop pickup mechanism was allowing subtle race conditions. Now properly handling collisions between loop ping and pickup. | |||
2023-04-04 | Route feed marks only the relevant pending exports as done | Maria Matejka | |
2023-04-04 | Moved channel export hooks to rt.h as the channel refactoring isn't going to ↵ | Maria Matejka | |
take place soon | |||
2023-04-04 | Fixed use-after-free of old protocol name pointer copied into rte_owner ↵ | Maria Matejka | |
structure | |||
2023-04-04 | Fixed unwanted reloads while reconfiguring protocols with import table on | Maria Matejka | |
2023-04-04 | Fixed bad filter re-evaluation with import table if filtered->accepted | Maria Matejka | |
The import table feed wasn't resetting the table-specific route values like REF_FILTERED and thus made the route look like filtered even though it should have been re-evaluated as accepted. | |||
2023-04-04 | Fixed channel stopping when reload is active | Maria Matejka | |
2023-04-04 | Fix obvious mistake in protocol debug dump | Maria Matejka | |
2023-04-04 | Reducing initial channel bitmap sizes to help extreme cases | Maria Matejka | |
2023-04-04 | Interface subsystem locking | Maria Matejka | |
2023-04-04 | Proto: published protocol-loop connections | Maria Matejka | |
2023-02-07 | Protocol shutdown/restart from limits is respecting the loops | Maria Matejka | |
2023-02-07 | Merge commit '0bb04d5390f21b0c96fc4894ba5d5510c541f0ef' into HEAD | Maria Matejka | |
2023-02-02 | Interface updates are asynchronous | Maria Matejka | |
Instead of propagating interface updates as they are loaded from kernel, they are enqueued and all the notifications are called from a protocol-specific event. This change allows to break the locking loop between protocols and interfaces. Anyway, this change is based on v2 branch to keep the changes between v2 and v3 smaller. | |||
2023-02-02 | Proto: Adding a list of associated neighbors | Maria Matejka | |
This makes for safer and faster pruning and notifying as protocol now on its shutdown prunes only its neighbors and nothing else. | |||
2023-02-02 | Moved interface list flush to device protocol cleanup hook. | Maria Matejka | |
The interface list must be flushed when device protocol is stopped. This was done in a hardcoded specific hook inside generic protocol routines. The cleanup hook was originally used for table reference counting late cleanup, yet it can be also simply used for prettier interface list flush. | |||
2023-01-25 | VRF setting reduced to one argument, using default dummy iface for default vrf | Maria Matejka | |
2022-11-07 | Merge commit '8478de88' into thread-next | Maria Matejka | |
2022-11-07 | Merge commit '54430df9' into thread-next | Maria Matejka | |
2022-10-12 | Merge commit '53958809' into thread-next | Maria Matejka | |
2022-10-12 | Merge commit '4ba991f1' into thread-next | Maria Matejka | |
2022-10-12 | BGP refeed and reload with Adj-RIB-In/Out is done without route refresh | Maria Matejka | |
2022-10-12 | Fixed BGP reload limits | Maria Matejka | |
2022-10-12 | Fixed export hook stopping in some corner cases. | Maria Matejka | |
Notably, it's in a corked state and also when refeed is pending. | |||
2022-10-05 | Fixed previously untested paths in RPKI | Maria Matejka | |
2022-10-03 | Nest: Add channel config flag to distinguish new or copy | Ondrej Zajicek | |
It is useful to distinguish whehter channel config returned from channel_config_get() was allocated new, or existing from template. Caller may want to initialize new ones. | |||
2022-10-03 | BGP: Do not assume that all channels are struct bgp_channel | Ondrej Zajicek | |
In principle, the channel list is a list of parent struct proto and can contain general structures of type struct channel, That is useful e.g. for adding MPLS channels to BGP. | |||
2022-09-20 | Merge commit 'adf37d8e' into thread-next | Maria Matejka | |
2022-09-18 | Merge commit '4f3fa162' into HEAD | Maria Matejka | |
2022-09-09 | Created a dedicated settle timer structure | Maria Matejka | |
2022-09-08 | Table access is now locked. | 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 | Miscellaneous refactoring | 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-03 | Merge commit 'c7d0c5b2' into thread-next | Maria Matejka | |
2022-08-02 | Merge commit 'f0507f05ce57398e135651896dace4cb68eeed54' into thread-next | Maria Matejka | |
2022-07-28 | Moved the thread starting code to IO loop code | Maria Matejka | |
2022-07-18 | Event lists rewritten to a single linked list | Maria 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-18 | Merge commit '94eb0858' into thread-next | Maria Matejka | |
2022-07-15 | Merge 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. |