summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-01-19Decoupling loops from threads to allow fixed thread countMaria Matejka
On large configurations, too many threads would spawn with one thread per loop. Therefore, threads may now run multiple loops at once. The thread count is configurable and may be changed during run. All threads are spawned on startup. This change helps with memory bloating. BIRD filters need large temporary memory blocks to store their stack and also memory management keeps its hot page storage per-thread. Known bugs: * Thread autobalancing is not yet implemented. * Low latency loops are executed together with standard loops.
2023-01-19Table prune routine doesn't walk over lists unless needed.Maria Matejka
If no channel is flushing, table prune doesn't walk over routes in nets and also doesn't walk over importing channel lists. This helps to alleviate the memory caching burdens a lot.
2023-01-19CLI closing fix when its action is run asynchronously.Maria Matejka
Some CLI actions, notably "show route", are run by queuing an event somewhere else. If the user closes the socket, in case such an action is being executed, the CLI must free the socket immediately from the error hook but the pool must remain until the asynchronous event finishes and cleans everything up.
2023-01-19Removed config reparsing from unrelated testsMaria Matejka
2022-11-07Merge remote-tracking branch 'origin/master' into thread-nextMaria Matejka
2022-11-07Merge commit '37b64441' into thread-nextMaria Matejka
2022-11-07Merge commit '32425297' into thread-nextMaria Matejka
2022-11-07Merge commit '8f79e6b9' into thread-nextMaria Matejka
2022-11-07Merge commit '8478de88' into thread-nextMaria Matejka
2022-11-07Merge commit '54430df9' into thread-nextMaria Matejka
2022-11-07Merge commit '0f2be469' into thread-nextMaria Matejka
2022-11-03Page allocator: Fixed minor bugs and added commentaryMaria Matejka
2022-11-02Memory pages are not munmapped, instead we just madvise()Maria Matejka
Memory unmapping causes slow address space fragmentation, leading in extreme cases to failing to allocate pages at all. Removing this problem by keeping all the pages allocated to us, yet calling madvise() to let kernel dispose of them. This adds a little complexity and overhead as we have to keep the pointers to the free pages, therefore to hold e.g. 1 GB of 4K pages with 8B pointers, we have to store 2 MB of data.
2022-11-01Moved config-related allocations to config_pool and showing its size in ↵Maria Matejka
memory usage
2022-10-18Doc: Add documentation for "show route (import|export) table"Alexander Zubkov
2022-10-18Filter: Fix handling of variables in anonymous filtersOndrej Zajicek
Define scope for anonymous filters, and also explicitly distinguish block scopes and function/filter scopes instead of using anonymous / named distinction. Anonymous filters forgot to push scope, so variables for them were in fact defined in the top scope and therefore they shared a frame. This got broken after rework of variables, which assumed that there is a named scope for every function/filter.
2022-10-12Attribute blocks are now allocated from slabs instead of malloc()Maria Matejka
2022-10-12Removed an accidentally merged debug call introduced in ↵Maria Matejka
5395880908fdb264b5b78ccc455dced49eb29915
2022-10-12Netlink: Parse onlink flag even on direct routesOndrej Zajicek
While onlink flag is meaningful only with explicit next hops, it can be defined also on direct routes. Parse it also in this case to avoid periodic updates of the same route. Thanks to Marcin Saklak for the bugreport.
2022-10-12GDB connection: resource pools don't keep free pagesMaria Matejka
2022-10-12Merge commit 'ab0994a1' into thread-nextMaria Matejka
2022-10-12Merge commit '57d0ecb9' into thread-nextMaria Matejka
2022-10-12Merge commit '53958809' into thread-nextMaria Matejka
2022-10-12Merge commit '821344c7' into thread-nextMaria Matejka
2022-10-12Merge commit '4ba991f1' into thread-nextMaria Matejka
2022-10-12Merge commit '44dbedbe' into thread-nextMaria Matejka
2022-10-12Fixed SSH known hosts checking with older versions of libsshMaria Matejka
2022-10-12Tamed slab signedness warning on 32-bit architecturesMaria Matejka
2022-10-12BGP refeed and reload with Adj-RIB-In/Out is done without route refreshMaria Matejka
2022-10-12TES_HUNGRY doesn't inhibit export cleanup any moreMaria Matejka
2022-10-12More thorough logging of route update corner casesMaria Matejka
2022-10-12Fixed BGP reload limitsMaria Matejka
2022-10-12Limited value must never go under zeroMaria Matejka
2022-10-12CLI fix to break busy-loop waiting for corked show-route exportsMaria Matejka
2022-10-12Fixed export hook stopping in some corner cases.Maria Matejka
Notably, it's in a corked state and also when refeed is pending.
2022-10-12BGP: End route refresh before another startsMaria Matejka
2022-10-10BGP: Add option 'next hop prefer global'Ondrej Zajicek
Add BGP channel option 'next hop prefer global' that modifies BGP recursive next hop resolution to use global next hop IPv6 address instead of link-local next hop IPv6 address for immediate next hop of received routes.
2022-10-05Poll errors must also drop a corefile. And we shouldn't run sockets when ↵Maria Matejka
sockets have changed
2022-10-05Fixed previously untested paths in RPKIMaria Matejka
2022-10-05Merge commit 'dc9351d3' into HEADMaria Matejka
2022-10-05Fixed pipe reload/refeed to properly propagate as route refresh to the other ↵Maria Matejka
table
2022-10-04Merge commit '67256d50' into HEADMaria Matejka
2022-10-04Merge commit '3ace3a42' into HEADMaria Matejka
2022-10-04Merge commit 'fb7fb674' into HEADMaria Matejka
2022-10-04Merge commit 'e9e6baae' into HEADMaria Matejka
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-10-03Nest: Add channel config flag to distinguish new or copyOndrej 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-03BGP: Do not assume that all channels are struct bgp_channelOndrej 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.