Age | Commit message (Collapse) | Author | |
---|---|---|---|
2022-11-07 | Merge commit '37b64441' into thread-next | Maria Matejka | |
2022-11-07 | Merge commit '8478de88' into thread-next | Maria Matejka | |
2022-11-01 | Moved config-related allocations to config_pool and showing its size in ↵ | Maria Matejka | |
memory usage | |||
2022-10-18 | Filter: Fix handling of variables in anonymous filters | Ondrej Zajicek | |
Define scope for anonymous filters, and also explicitly distinguish block scopes and function/filter scopes instead of using anonymous / named distinction. Anonymous filters forgot to push scope, so variables for them were in fact defined in the top scope and therefore they shared a frame. This got broken after rework of variables, which assumed that there is a named scope for every function/filter. | |||
2022-10-03 | Filter: Add some minor functions for f_tree and EC | Ondrej Zajicek | |
Add some supportive functions for f_tree and EC. These functions are used by L3VPN code. | |||
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-16 | Revert "Reducing filter stack size to allow for lesser thread stack size" | Maria Matejka | |
This reverts commit 2c13759136951ef0e70a3e3c2b2d3c9a387f7ed9. | |||
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 | |