summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-05-30Merge commit '337c04c45e1472d6d9b531a3c55f1f2d30ebf308' into haugesundMaria Matejka
2022-05-30Merge commit 'd8661a4397e4576ac404661b192dd99d928e7890' into haugesundMaria Matejka
2022-05-30Merge commit '17f91f9e6e70f7e3f29502e854823c0d48571eaa' into haugesundMaria Matejka
2022-05-30Merge commit '165156beeb2926472bbceca3c103aacc3f81a8cc' into haugesundMaria Matejka
2022-05-30Merge commit 'cf07d8ad79273a3bbf0617c17e438602e4b64ece' into haugesundMaria Matejka
2022-05-30Merge commit '1d309c4ce6e95b68c64a8f007f6dd2f1830a5707' into haugesundMaria Matejka
2022-05-30Merge commit 'ef4313e1667a8745c8d8813ac78342ec7c035895' into haugesundMaria Matejka
2022-05-30Merge commit 'f2f3163f6c3fba7f9ef03640d7b2f6323873d2cc' into haugesundMaria Matejka
2022-05-30Merge commit 'de86040b2cf4ec9bfbb64f0e208a19d4d7e51adc' into haugesundMaria Matejka
2022-05-30Merge commit '3fb70b26faca6788aa0bdf1d558414f9f777c6cd' into haugesundMaria Matejka
2022-05-30Merge commit 'ef6a903e6f44b467f9606018446095521ad01ef1' into haugesundMaria Matejka
2022-05-30Merge commit '0e1e632f70b74cf111f08175ab3634db2f962579' into haugesundMaria Matejka
2022-05-30Merge commit '0d0f6554a5c233bf2bf830ae319191c4b1808d49' into haugesundMaria Matejka
2022-05-30Merge commit '80272d4b64a38ee6f04a1c4e8566cac3a2293176' into haugesundMaria Matejka
2022-05-30Merge commit 'cd9550b24487ac7327b0234fd825f4214fdf7b16' into haugesundMaria Matejka
2022-05-30Merge commit '652be92a21f5575e5f74f6abe98eb4200b86776c' into haugesundMaria Matejka
2022-05-30Merge commit '98fd158e28d89f10ee7a41b4f6a14fbd0021ef35' into haugesundMaria Matejka
2022-05-30Merge commit 'd39ef961d1dde230c55fcc931b53f44cb34a1e63' into haugesundMaria Matejka
2022-05-30Merge commit '4a23ede2b056a41456790cc20a0c3d92a7137693' into haugesundMaria Matejka
2022-05-30Merge commit 'ebd807c0b8eb0b7a3dc3371cd4c87ae886c00885' into haugesundMaria Matejka
2022-05-30Merge remote-tracking branch 'origin/master' into haugesund-to-2.0Maria Matejka
2022-05-30Merge commit '9eec503b251c3388579032b300d32640403d8612' into haugesund-to-2.0Maria Matejka
2022-05-30Merge commit '692055e3df6cc9f0d428d3b0dd8cdd8e825eb6f4' into haugesund-to-2.0Maria Matejka
2022-05-30Merge commit '3a6eda995ecfcebff3130d86ee3baeab12a41335' into haugesundMaria Matejka
2022-05-27CI: Remove broken FreeBSD buildsOndrej Zajicek
We currently do not have FreeBSD CI workers.
2022-05-21BGP: Display neighbor port on show protocolOndrej Zajicek
2022-05-21RPKI: Display cache server port on show protocolOndrej Zajicek
Thanks to Luiz Amaral for the idea.
2022-05-19RPKI: Implement VRF supportLuiz Amaral
2022-05-15BGP: Improve tx performance during feed/flushOndrej 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-04Moved route preference to eattrsMaria Matejka
2022-05-04Joined the RTA igp_metric and EA igp_metric attributesMaria Matejka
2022-05-04Explicit definition structures of route attributesMaria 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-04Conf: Symbols are properly scopedMaria 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-04Replaced boilerplate eattr allocation by ea_set_attr()Maria Matejka
2022-05-04Enforcing 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-04Local route attributes are always allocated from tmp_linpoolMaria Matejka
2022-05-04Filters always allocate from tmp_linpoolMaria Matejka
2022-05-04Attribute list normalization cleanupMaria Matejka
2022-05-04Complex route attributes are data structures, shall be in lib alsoMaria Matejka
2022-05-04Splitting route data structures out to libMaria Matejka
2022-05-04FIB is a data structure generic enough to be in libMaria Matejka
2022-05-04Unified attribute and filter typesMaria 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-04Opaque types are named opaque also in filtersMaria Matejka
2022-05-04Implicit ROA check converted to explicit filter instruction sequenceMaria Matejka
2022-05-04Protocols use EA_LITERAL_* to set attributesMaria Matejka
2022-05-04Moved filter value union to libMaria Matejka
2022-05-04Filters: removing adata_empty() duplicating lp_alloc_adata()Maria Matejka
2022-05-04Special attribute types for enumsMaria Matejka
2022-05-04Dropping EAF_VAR_LENGTH as the attribute data is either embedded or adataMaria Matejka
2022-05-04Filter: Bitfield eattrs reading / writing moved to filter codeMaria 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.