Age | Commit message (Collapse) | Author | |
---|---|---|---|
2022-05-31 | Merge commit '4fe9881d625f10e44109a649e369a413bd98de71' into haugesund | Maria Matejka | |
2022-05-30 | Merge commit 'f15f2fcee7eeb5a100bd204a0e67018e25953420' into haugesund | Maria Matejka | |
2022-05-30 | Merge commit 'f2e725a76882ba6b75c3ce4fb3c760bd83462410' into haugesund | Maria Matejka | |
2022-05-30 | Merge commit '1c30b689ddd032ef8000fb7836348a48ba3184ff' into haugesund | Maria Matejka | |
2022-05-30 | Merge commit '702c04fbef222e802ca4dfac645dc75ede522db6' into haugesund | Maria Matejka | |
2022-05-30 | Merge commit '337c04c45e1472d6d9b531a3c55f1f2d30ebf308' into haugesund | Maria Matejka | |
2022-05-30 | Merge commit 'd8661a4397e4576ac404661b192dd99d928e7890' into haugesund | Maria Matejka | |
2022-05-30 | Merge commit '17f91f9e6e70f7e3f29502e854823c0d48571eaa' into haugesund | Maria Matejka | |
2022-05-30 | Merge commit 'f2f3163f6c3fba7f9ef03640d7b2f6323873d2cc' into haugesund | Maria Matejka | |
2022-05-30 | Merge commit 'ef6a903e6f44b467f9606018446095521ad01ef1' into haugesund | Maria Matejka | |
2022-05-30 | Merge commit '652be92a21f5575e5f74f6abe98eb4200b86776c' into haugesund | Maria Matejka | |
2022-05-30 | Merge commit 'd39ef961d1dde230c55fcc931b53f44cb34a1e63' 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 '3a6eda995ecfcebff3130d86ee3baeab12a41335' into haugesund | Maria Matejka | |
2022-05-26 | Moved hostentry to eattr | Maria Matejka | |
2022-05-26 | Moved nexthop from struct rta to extended attribute. | Maria Matejka | |
This doesn't do anything more than to put the whole structure inside adata. The overall performance is certainly going downhill; we'll optimize this later. Anyway, this is one of the latest items inside rta and in several commits we may drop rta completely and move to eattrs-only routes. | |||
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-05 | All outstanding MPLS label stacks are stored as adata | Maria Matejka | |
2022-05-04 | Moved route source attribute (RTS_*) to eattrs | Maria Matejka | |
2022-05-04 | Moved route preference to eattrs | Maria Matejka | |
2022-05-04 | Joined the RTA igp_metric and EA igp_metric attributes | Maria Matejka | |
2022-05-04 | Moved advertising router info (FROM attribute) to eattrs | Maria Matejka | |
2022-05-04 | Explicit definition structures of route attributes | Maria Matejka | |
Changes in internal API: * Every route attribute must be defined as struct ea_class somewhere. * Registration of route attributes known at startup must be done by ea_register_init() from protocol build functions. * Every attribute has now its symbol registered in a global symbol table defined as SYM_ATTRIBUTE * All attribute ID's are dynamically allocated. * Attribute value custom formatting hook is defined in the ea_class. * Attribute names are the same for display and filters, always prefixed by protocol name. Also added some unit testing code for filters with route attributes. | |||
2022-05-04 | Filters always allocate from tmp_linpool | Maria Matejka | |
2022-05-04 | Splitting route data structures out to lib | Maria Matejka | |
2022-04-06 | Slab allocator can free the blocks without knowing the parent structure | Maria Matejka | |
2022-04-06 | All linpools use pages to allocate regular blocks | Maria Matejka | |
2022-03-15 | Printf variant with a result allocated inside a pool / linpool | Maria Matejka | |
2022-03-09 | Merge commit 'f81702b7' into haugesund | Maria Matejka | |
2022-03-09 | Merge commit '0767a0c2' into haugesund | Maria Matejka | |
Conflicts: nest/rt-table.c | |||
2022-03-09 | Merge commit '8f3942a9' into haugesund | Maria Matejka | |
Conflicts: nest/rt-table.c | |||
2022-03-09 | Merge commit '56c8f2f0' into haugesund | Maria Matejka | |
Conflicts: nest/route.h nest/rt-table.c | |||
2022-03-09 | Merge commit '575da88f' into haugesund | Maria Matejka | |
Conflicts: nest/rt-table.c | |||
2022-03-09 | Merge commit '1b9189d5' into haugesund | Maria Matejka | |
2022-03-09 | Route validity check converted to generic macro dispatch | Maria Matejka | |
2022-03-09 | Merge commit '60880b539b8886f76961125d89a265c6e1112b7a' into haugesund | Maria Matejka | |
2022-03-09 | BGP Flowspec validation: Removed in-route optimization for multithreading ↵ | Maria Matejka | |
compatibility | |||
2022-03-09 | Merge commit 'e42eedb9' into haugesund | Maria Matejka | |
2022-03-09 | Merge commit '5cff1d5f' into haugesund | Maria Matejka | |
Conflicts: proto/bgp/attrs.c proto/pipe/pipe.c | |||
2022-03-09 | Merge commit 'd5a32563' into haugesund | Maria Matejka | |
2022-02-06 | Nest: Implement locking of prefix tries during walks | Ondrej Zajicek (work) | |
The prune loop may may rebuild the prefix trie and therefore invalidate walk state for asynchronous walks (used in 'show route in' cmd). Fix it by adding locking that keeps the old trie in memory until current walks are done. In future this could be improved by rebuilding trie walk states (by lookup for last found prefix) after the prefix trie rebuild. | |||
2022-02-06 | Nest: Implement prefix trie pruning | Ondrej Zajicek (work) | |
When rtable is pruned and network fib nodes are removed, we also need to prune prefix trie. Unfortunately, rebuilding prefix trie takes long time (got about 400 ms for 1M networks), so must not be atomic, we have to rebuild a new trie while current one is still active. That may require some considerable amount of temporary memory, so we do that only if we expect significant trie size reduction. | |||
2022-02-06 | BGP: Implement flowspec validation procedure | Ondrej Zajicek (work) | |
Implement flowspec validation procedure as described in RFC 8955 sec. 6 and RFC 9117. The Validation procedure enforces that only routers in the forwarding path for a network can originate flowspec rules for that network. The patch adds new mechanism for tracking inter-table dependencies, which is necessary as the flowspec validation depends on IP routes, and flowspec rules must be revalidated when best IP routes change. The validation procedure is disabled by default and requires that relevant IP table uses trie, as it uses interval queries for subnets. | |||
2022-02-06 | Nest: Add routing table configuration blocks | Ondrej Zajicek (work) | |
Allow to specify sorted flag, trie fla, and min/max settle time. Also do not enable trie by default, it must be explicitly enabled. | |||
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 (?) | |||
2021-11-22 | Table import and export are now explicit hooks. | Maria Matejka | |
Channels have now included rt_import_req and rt_export_req to hook into the table instead of just one list node. This will (in future) allow for: * channel import and export bound to different tables * more efficient pipe code (dropping most of the channel code) * conversion of 'show route' to a special kind of export * temporary static routes from CLI The import / export states are also updated to the new algorithms. | |||
2021-11-09 | Secondary and merged exports get a whole feed instead of traversing the ↵ | Maria Matejka | |
table structures directly | |||
2021-11-09 | Route export: rejected by filter bitmap | Maria Matejka | |
If a route has been rejected by filter, store that information to avoid repeated export filter runs on rejected routes. | |||
2021-11-09 | Nest: Route generations and explicit tracking route propagion through pipes | Maria Matejka | |