Age | Commit message (Collapse) | Author | |
---|---|---|---|
2022-09-21 | Caching eattrs in filters is not needed anymore. | Maria Matejka | |
After flattening the route attribute structure, the ea_list ** is derivable from rte * by arithmetics. Caching the derived value doesn't help performance and therefore is removed as unnecessary. | |||
2022-09-21 | Flushing tmp_linpool in tree test and in static protocol | Maria Matejka | |
2022-09-21 | Trie test uses direct tmp_allocz() instead of lp_allocz(tmp_linpool) | Maria Matejka | |
2022-09-19 | Switched off forking for filter test. | Maria Matejka | |
You don't want to fork with threads running. | |||
2022-09-08 | Table access is now locked. | Maria Matejka | |
2022-08-02 | Merge commit 'f0507f05ce57398e135651896dace4cb68eeed54' into thread-next | Maria Matejka | |
2022-07-18 | Merge commit '94eb0858' into thread-next | Maria Matejka | |
2022-07-13 | Merge commit '2e5bfeb73ac25e236a24b6c1a88d0f2221ca303f' into thread-next | Maria Matejka | |
2022-07-11 | Merge remote-tracking branch 'origin/master' into backport | Maria Matejka | |
2022-06-27 | Filter: Implement for loops | Ondrej Zajicek (work) | |
For loops allow to iterate over elements in compound data like BGP paths or community lists. The syntax is: for [ <type> ] <variable> in <expr> do <command-body> | |||
2022-06-27 | Filter: Implement mixed declarations of local variables | Ondrej Zajicek (work) | |
Allow variable declarations mixed with code, also in nested blocks with proper scoping, and with variable initializers. E.g: function fn(int a) { int b; int c = 10; if a > 20 then { b = 30; int d = c * 2; print a, b, c, d; } string s = "Hello"; } | |||
2022-06-27 | Filter: Improve handling of stack frames in filter bytecode | Ondrej Zajicek (work) | |
When f_line is done, we have to pop the stack frame. The old code just removed nominal number of args/vars. Change it to use stored ventry value modified by number of returned values. This allows to allocate variables on a stack frame during execution of f_lines instead of just at start. But we need to know the number of returned values for a f_line. It is 1 for term, 0 for cmd. Store that to f_line during linearization. | |||
2022-06-27 | Filter: Simplify handling of command sequences | Ondrej Zajicek (work) | |
Command sequences in curly braces used a separate nonterminal in grammar. Handle them as a regular command. | |||
2022-06-27 | Filter: Fix bug in variable shadowing | Ondrej Zajicek (work) | |
When a new variable used the same name as an existing symbol in an outer scope, then offset number was defined based on a scope of the existing symbol ($3) instead of a scope of the new symbol (sym_). That can lead to two variables sharing the same memory slot. | |||
2022-06-27 | Filter: Implement direct recursion | Ondrej Zajicek (work) | |
Direct recursion almost worked, just crashed on function signature check. Split function parsing such that function signature is saved before function body is processed. Recursive calls are marked so they can be avoided during f_same() and similar code walking. Also, include tower of hanoi solver as a test case. | |||
2022-06-27 | Filter: Apply constant promotion for FI_EQ / FI_NEQ | Ondrej Zajicek (work) | |
Equality comparison is defined on all values, even of different types, but we still want to do constant promotion if possible. | |||
2022-06-27 | Filter: Add literal for empty set | Alexander Zubkov | |
Add literal for empty set [], which works both for tree-based sets and prefix sets by using existing constant promotion mechanism. Minor changes by committer. | |||
2022-06-27 | Nest: Cleanups in as_path_filter() | Ondrej Zajicek (work) | |
Use struct f_val as a common argument for as_path_filter(), as suggested by Alexander Zubkov. That allows to use NULL sets as valid arguments. | |||
2022-06-27 | Filter: Ensure that all expressions declared return type | Ondrej Zajicek (work) | |
All instructions with a return value (i.e. expressions, ones with non-zero outval, third argument in INST()) should declare their return type. Check that automatically by M4 macros. Set outval of FI_RETURN to 0. The instruction adds one value to stack, but syntactically it is a statement, not an expression. Add fake return type declaration to FI_CALL, otherwise the automatic check would fail builds. | |||
2022-06-27 | Filter: Improve description of type system | Ondrej Zajicek (work) | |
2022-06-27 | Filter: Implement type checks for function calls | Ondrej Zajicek (work) | |
Keep list of function parameters in f_line and use it to verify types of arguments for function calls. Only static type checks are implemented. | |||
2022-06-27 | Filter: Clean up function call instruction | Ondrej Zajicek (work) | |
Pass instructions of function call arguments as vararg arguments to FI_CALL instruction constructor and move necessary magic from parser code to interpreter / instruction code. | |||
2022-06-27 | Fixed displaying BGP and RIP attributes after recent reworks | Maria Matejka | |
2022-06-27 | Fixed minor bugs in handling some route attributes | Maria Matejka | |
2022-06-26 | Fixed forgotten preference handling in filters | Maria Matejka | |
2022-06-08 | Merge commit '938742decc6e1d6d3a0375dd012b75172e747bbc' into haugesund | Maria Matejka | |
2022-06-08 | Merge commit '950775f6fa3d569a9d7cd05e33538d35e895d688' into haugesund | Maria Matejka | |
There were quite a lot of conflicts in flowspec validation code which ultimately led to some code being a bit rewritten, not only adapted from this or that branch, yet it is still in a limit of a merge. | |||
2022-05-30 | Merge commit 'f15f2fcee7eeb5a100bd204a0e67018e25953420' 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 '17f91f9e6e70f7e3f29502e854823c0d48571eaa' into haugesund | Maria Matejka | |
2022-05-30 | Merge commit 'cf07d8ad79273a3bbf0617c17e438602e4b64ece' 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 '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 '4a23ede2b056a41456790cc20a0c3d92a7137693' into haugesund | Maria Matejka | |
2022-05-30 | Squashing the route attribute structure into one level. | Maria Matejka | |
For now, all route attributes are stored as eattrs in ea_list. This should make route manipulation easier and it also allows for a layered approach of route attributes where updates from filters will be stored as an overlay over the previous version. | |||
2022-05-30 | Route destination field merged with nexthop attribute; splitting flowspec ↵ | Maria Matejka | |
validation result out. As there is either a nexthop or another destination specification (or othing in case of ROAs and Flowspec), it may be merged together. This code is somehow quirky and should be replaced in future by better implementation of nexthop. Also flowspec validation result has its own attribute now as it doesn't have anything to do with route nexthop. | |||
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-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 | |