Age | Commit message (Collapse) | Author | |
---|---|---|---|
2022-05-30 | Merge commit '1d309c4ce6e95b68c64a8f007f6dd2f1830a5707' into haugesund | Maria Matejka | |
2022-05-30 | Merge commit 'ef4313e1667a8745c8d8813ac78342ec7c035895' into haugesund | Maria Matejka | |
2022-05-30 | Merge commit 'f2f3163f6c3fba7f9ef03640d7b2f6323873d2cc' into haugesund | Maria Matejka | |
2022-05-30 | Merge commit 'de86040b2cf4ec9bfbb64f0e208a19d4d7e51adc' into haugesund | Maria Matejka | |
2022-05-30 | Merge commit '3fb70b26faca6788aa0bdf1d558414f9f777c6cd' into haugesund | Maria Matejka | |
2022-05-30 | Merge commit 'ef6a903e6f44b467f9606018446095521ad01ef1' into haugesund | Maria Matejka | |
2022-05-30 | Merge commit '0e1e632f70b74cf111f08175ab3634db2f962579' into haugesund | Maria Matejka | |
2022-05-30 | Merge commit '0d0f6554a5c233bf2bf830ae319191c4b1808d49' into haugesund | Maria Matejka | |
2022-05-30 | Merge commit '692055e3df6cc9f0d428d3b0dd8cdd8e825eb6f4' into haugesund-to-2.0 | Maria Matejka | |
2022-05-04 | Enforcing certain data structure explicit paddings. | Maria Matejka | |
Implicit paddings have undefined values in C. We want the eattr blocks to be comparable by memcmp and eattrs settable directly by structrure literals. This check ensures that all paddings in eattr and bval are explicit and therefore zeroed in all literals. | |||
2022-05-04 | Local route attributes are always allocated from tmp_linpool | Maria Matejka | |
2022-05-04 | Filters always allocate from tmp_linpool | Maria Matejka | |
2022-05-04 | Attribute list normalization cleanup | Maria Matejka | |
2022-05-04 | Complex route attributes are data structures, shall be in lib also | Maria Matejka | |
2022-05-04 | Splitting route data structures out to lib | Maria Matejka | |
2022-05-04 | FIB is a data structure generic enough to be in lib | Maria Matejka | |
2022-05-04 | Unified attribute and filter types | Maria Matejka | |
This commit removes the EAF_TYPE_* namespace completely and also for route attributes, filter-based types T_* are used. This simplifies fetching and setting route attributes from filters. Also, there is now union bval which serves as an universal value holder instead of private unions held separately by eattr and filter code. | |||
2022-05-04 | Protocols use EA_LITERAL_* to set attributes | Maria Matejka | |
2022-05-04 | Moved filter value union to lib | Maria Matejka | |
2022-04-06 | All linpools use pages to allocate regular blocks | Maria Matejka | |
2022-04-06 | Converted Slab allocator to typed lists | Maria Matejka | |
2022-04-06 | Slab allocator can free the blocks without knowing the parent structure | Maria Matejka | |
2022-04-06 | Typed lists for easier walking and stronger type checking | Maria Matejka | |
2022-03-16 | Lib: Allow use of 240.0.0.0/4 as a private range | Ondrej Zajicek (work) | |
There were several requests to allow use of 240.0.0.0/4 as a private range, and Linux kernel already allows such routes, so perhaps we can allow that too. Thanks to Vincent Bernat and others for suggestion and patches. | |||
2022-03-15 | Printf variant with a result allocated inside a pool / linpool | Maria Matejka | |
2022-03-14 | Slab memory allocator unit test | Maria Matejka | |
2022-03-09 | Merge commit '5cff1d5f' into haugesund | Maria Matejka | |
Conflicts: proto/bgp/attrs.c proto/pipe/pipe.c | |||
2022-03-09 | Fixed resource initialization in unit tests | Maria Matejka | |
2022-03-09 | Linpools with pages fixed to the final page allocator version | Maria Matejka | |
2022-03-09 | Merge commit '0c59f7ff' into haugesund | Maria Matejka | |
2022-03-09 | Revert "Bound allocated pages to resource pools with page caches to avoid ↵ | Maria Matejka | |
unnecessary syscalls" This reverts commit 7f0e59820899c30a243c18556ce2e3fb72d6d221. | |||
2022-03-09 | Revert "fixup! Bound allocated pages to resource pools with page caches to ↵ | Maria Matejka | |
avoid unnecessary syscalls" This reverts commit bea582cbb53e30dd32a5b6829c7443e0e5558d11. | |||
2022-03-09 | Revert "Multipage allocation" | Maria Matejka | |
This reverts commit 6cd37713781a3092f8166b2178fae35cbfec1e28. | |||
2022-03-09 | Single-threaded version of sark-branch memory page management | Maria Matejka | |
2022-03-02 | Replaced custom linpools in tests for the common tmp_linpool | Maria Matejka | |
2022-03-02 | Introducing an universal temporary linpool flushed after every task | Maria Matejka | |
2022-03-02 | Static list initializer | Maria Matejka | |
2022-03-02 | Merge commit '2c13759136951ef0e70a3e3c2b2d3c9a387f7ed9' into haugesund | Maria Matejka | |
2022-02-07 | Lib: Update alignment of slabs | Ondrej Zajicek (work) | |
Alignment of slabs should be at least sizeof(ptr) to avoid unaligned pointers in slab structures. Fixme: Use proper way to choose alignment for internal allocators. | |||
2022-02-06 | Merge branch 'oz-trie-table' | Ondrej Zajicek (work) | |
2022-02-06 | Nest: Attach prefix trie to rtable for faster LPM and interval queries | Ondrej Zajicek (work) | |
Attach a prefix trie to IP/VPN/ROA tables. Use it for net_route() and net_roa_check(). This leads to 3-5x speedups for IPv4 and 5-10x speedup for IPv6 of these calls. TODO: - Rebuild the trie during rt_prune_table() - Better way to avoid trie_add_prefix() in net_get() for existing tables - Make it configurable (?) | |||
2022-01-08 | IO: Support nonlocal bind in socket interface | Alexander Zubkov | |
Add option to socket interface for nonlocal binding, i.e. binding to an IP address that is not present on interfaces. This behaviour is enabled when SKF_FREEBIND socket flag is set. For Linux systems, it is implemented by IP_FREEBIND socket flag. Minor changes done by commiter. | |||
2021-11-27 | Memory statistics split into Effective and Overhead | Maria Matejka | |
This feature is intended mostly for checking that BIRD's allocation strategies don't consume much memory space. There are some cases where withdrawing routes in a specific order lead to memory fragmentation and this output should give the user at least a notion of how much memory is actually used for data storage and how much memory is "just allocated" or used for overhead. Also raising the "system allocator overhead estimation" from 8 to 16 bytes; it is probably even more. I've found 16 as a local minimum in best scenarios among reachable machines. I couldn't find any reasonable method to estimate this value when BIRD starts up. This commit also fixes the inaccurate computation of memory overhead for slabs where the "system allocater overhead estimation" was improperly added to the size of mmap-ed memory. | |||
2021-11-24 | Directly mapped pages are kept for future use if temporarily not needed | Maria Matejka | |
2021-11-13 | Trie: Simplify network matching code | Ondrej Zajicek (work) | |
Introduce ipX_prefix_equal() and use it to simplify network matching code. | |||
2021-10-13 | Preference moved to RTA and set explicitly in protocols | Maria Matejka | |
2021-10-13 | Multipage allocation | Maria Matejka | |
We can also quite simply allocate bigger blocks. Anyway, we need these blocks to be aligned to their size which needs one mmap() two times bigger and then two munmap()s returning the unaligned parts. The user can specify -B <N> on startup when <N> is the exponent of 2, setting the block size to 2^N. On most systems, N is 12, anyway if you know that your configuration is going to eat gigabytes of RAM, you are almost forced to raise your block size as you may easily get into memory fragmentation issues or you have to raise your maximum mapping count, e.g. "sysctl vm.max_map_count=(number)". | |||
2021-10-13 | Linpools may use pages instead of xmalloc | Maria Matejka | |
2021-10-13 | fixup! Bound allocated pages to resource pools with page caches to avoid ↵ | Maria Matejka | |
unnecessary syscalls | |||
2021-09-25 | Filter: Faster prefix sets | Ondrej Zajicek (work) | |
Use 16-way (4bit) branching in prefix trie instead of basic binary branching. The change makes IPv4 prefix sets almost 3x faster, but with more memory consumption and much more complicated algorithm. Together with a previous filter change, it makes IPv4 prefix sets about ~4.3x faster and slightly smaller (on my test data). |