Age | Commit message (Collapse) | Author | |
---|---|---|---|
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 '165156beeb2926472bbceca3c103aacc3f81a8cc' into haugesund | Maria Matejka | |
2022-05-30 | Merge commit '1d309c4ce6e95b68c64a8f007f6dd2f1830a5707' 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 '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 '3a6eda995ecfcebff3130d86ee3baeab12a41335' into haugesund | Maria Matejka | |
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 | Moved route source attribute (RTS_*) to eattrs | Maria Matejka | |
2022-05-04 | Removing the route scope attribute. Use custom attributes instead. | Maria Matejka | |
The route scope attribute was used for simple user route marking. As there is a better tool for this (custom attributes), the old and limited way can be dropped. | |||
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 | Conf: Allowing keyword redefinition | Maria Matejka | |
Some tokens are both keywords and symbols. For now, we allow only specific keywords to be redefined; in future, more of the keywords may be added to this category. The redefinable keywords must be specified in any .Y file as follows: toksym: THE_KEYWORD ; See proto/bgp/config.Y for an example. Also dropped a lot of unused terminals. | |||
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 | Conf: Symbols are properly scoped | Maria Matejka | |
Now there is a persistent root symbol scope and all scopes have their symbol hashes to store local symbols and not leak any symbol out. | |||
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 | 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 | Implicit ROA check converted to explicit filter instruction sequence | 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-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-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 | 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 | 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-03-15 | Printf variant with a result allocated inside a pool / linpool | Maria Matejka | |