Age | Commit message (Collapse) | Author | |
---|---|---|---|
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 '80272d4b64a38ee6f04a1c4e8566cac3a2293176' into haugesund | Maria Matejka | |
2022-05-30 | Merge commit 'cd9550b24487ac7327b0234fd825f4214fdf7b16' into haugesund | Maria Matejka | |
2022-05-30 | Merge commit '652be92a21f5575e5f74f6abe98eb4200b86776c' into haugesund | Maria Matejka | |
2022-05-30 | Merge commit '98fd158e28d89f10ee7a41b4f6a14fbd0021ef35' into haugesund | Maria Matejka | |
2022-05-30 | Merge commit 'd39ef961d1dde230c55fcc931b53f44cb34a1e63' into haugesund | Maria Matejka | |
2022-05-30 | Merge commit '4a23ede2b056a41456790cc20a0c3d92a7137693' into haugesund | Maria Matejka | |
2022-05-30 | Merge commit 'ebd807c0b8eb0b7a3dc3371cd4c87ae886c00885' into haugesund | Maria Matejka | |
2022-05-30 | Merge remote-tracking branch 'origin/master' into haugesund-to-2.0 | Maria Matejka | |
2022-05-30 | Merge commit '9eec503b251c3388579032b300d32640403d8612' into haugesund-to-2.0 | Maria Matejka | |
2022-05-30 | Merge commit '692055e3df6cc9f0d428d3b0dd8cdd8e825eb6f4' into haugesund-to-2.0 | Maria Matejka | |
2022-05-30 | Merge commit '3a6eda995ecfcebff3130d86ee3baeab12a41335' into haugesund | Maria Matejka | |
2022-05-27 | CI: Remove broken FreeBSD builds | Ondrej Zajicek | |
We currently do not have FreeBSD CI workers. | |||
2022-05-21 | BGP: Display neighbor port on show protocol | Ondrej Zajicek | |
2022-05-21 | RPKI: Display cache server port on show protocol | Ondrej Zajicek | |
Thanks to Luiz Amaral for the idea. | |||
2022-05-19 | RPKI: Implement VRF support | Luiz Amaral | |
2022-05-15 | BGP: Improve tx performance during feed/flush | Ondrej Zajicek | |
The prefix hash table in BGP used the same hash function as the rtable. When a batch of routes are exported during feed/flush to the BGP, they all have similar hash values, so they are all crowded in a few slots in the BGP prefix table (which is much smaller - around the size of the batch - and uses higher bits from hash values), making it much slower due to excessive collisions. Use a different hash function to avoid this. Also, increase the batch size to fill 4k BGP packets and increase minimum BGP bucket and prefix hash sizes to avoid back and forth resizing during flushes. This leads to order of magnitude faster flushes (on my test data). | |||
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 | Opaque types are named opaque also in filters | Maria Matejka | |
2022-05-04 | Implicit ROA check converted to explicit filter instruction sequence | Maria Matejka | |
2022-05-04 | Filters: removing adata_empty() duplicating lp_alloc_adata() | Maria Matejka | |
2022-05-04 | Special attribute types for enums | Maria Matejka | |
2022-05-04 | Dropping EAF_VAR_LENGTH as the attribute data is either embedded or adata | Maria Matejka | |
2022-05-04 | Filter: Bitfield eattrs reading / writing moved to filter code | Maria Matejka | |
Before this change, fetch-update-write and bitmasking was hardcoded in attribute access code cased by the attribute type. Several filter instructions are used to do it instead. As this is certainly going to be a little bit slower than before, the switch block in attribute access code should be completely removed in near future, helping with both performance and code cleanliness. The user interface should have stayed intact. | |||
2022-05-04 | Filter operations: bitwise AND and OR | Maria Matejka | |
2022-05-04 | Fixed spurious undef of route attributes | Alexander Zubkov | |
2022-04-22 | Doc: fix mating -> matching in flowspec section | Vincent Bernat | |
2022-04-22 | Babel: Fix compilation when LOCAL_DEBUG is set in packets.c | Toke Høiland-Jørgensen | |
The debug output was not updated with the rest of the code, so packets.c fails to compile if LOCAL_DEBUG is set. | |||
2022-04-22 | Babel: Send out low-interval hello on shutdown | Toke Høiland-Jørgensen | |
When shutting down a Babel instance we send a wildcard retraction to make sure all peers can quickly switch to other route origins. Add another small optimisation borrowed from babeld: sending a Hello message (along with the retraction) with a very low interval. This will cause neighbours to modify their expiry timers for the node's state to quickly time it out, thus conserving resources in the network. | |||
2022-04-13 | RIP: fixed the EA_RIP_FROM attribute | Maria Matejka | |
The interface pointer was improperly converted to u32 and back. Fixing this by explicitly allocating an adata structure for it. It's not so memory efficient, we'll optimize this later. | |||
2022-04-13 | Fixed a munmap abort bug | Maria Matejka | |
When BIRD was munmapping too many pages, it sometimes aborted, saying that munmap failed with "Not enough memory" as the address space was getting more and more fragmented. There is a workaround in place, simply keeping that page for future use, yet it has never been compiled in because I somehow forgot to include errno.h. And because I also thought that somebody may have ENOMEM not defined (why?!), there was a check which quietly omitted that workaround. Anyway, ENOMEM is POSIX. It's an utter nonsense to check for its existence. If it doesn't exist, something is broken. | |||
2022-04-07 | BFD: Add 'strict bind' option | Ondrej Zajicek (work) | |
Add BFD protocol option 'strict bind' to use separate listening socket for each BFD interface bound to its address instead of using shared listening sockets. | |||
2022-04-06 | BGP uses lp_save / lp_restore instead of linpool flushing | Maria Matejka | |
It is too cryptic to flush tmp_linpool in these cases and we don't want anybody in the future to break this code by adding an allocation somewhere which should persist over that flush. Saving and restoring linpool state is safer. | |||
2022-04-06 | Protocols have their own explicit init routines | 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-04-06 | All linpools use pages to allocate regular blocks | Maria Matejka | |
2022-04-06 | Unsetting route attributes without messing with type system | Maria Matejka | |
2022-04-06 | BGP: Fixed LLGR depreferencing in bgp_rte_mergable | Maria Matejka | |
2022-04-06 | Eattr flags (originated and fresh) get their own struct fields | Maria Matejka | |
2022-04-06 | Minor fix: f_val literals should always have named struct fields | Maria Matejka | |
2022-04-06 | Converted Slab allocator to typed lists | Maria Matejka | |
2022-03-16 | Netlink: Remove superfluous sysdep/linux/netlink.c.orig | Ondrej Zajicek (work) | |
Thanks to Vincent Bernat for notice. | |||
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. |