Route Origin Authorization basics.
- ROA tables, which are used as a basic part for RPKI. - Commands for examining and modifying ROA tables. - Filter operators based on ROA tables consistent with RFC 6483.
Extends set operations in filters.
Allows add/filter/delete clist on clist (set algebra on clists).
Allows number ~ bgppath match.
Configuration can include other files.
BGP Extended communities.
Adds filter clist operation.
Fixes several problems in filter syntax.
- Fixes several conflicts in the grammar. - Fixes a bug in (a..b, c) pair patterns. - Makes pair patterns orthogonal. - Allows term expressions in pair patterns without additional ( ). - Allows several comma separated values in switch cases.
This adds (*,x) functionality.
Convert && and || to shortcut boolean operators.
A hack to distinguish if..else from else: in case.
The old BIRD grammar needs two lookaheads to distinguish if..else fromelse: in case, which caused the parser to fail on some combinations ofboth expressions.
This patch replaces two tokens 'else' ':' by one token 'else:' to fix...
Changes print-like filter commands to use a log instead of a stderr.
And extends the log subsystem to better handle that.
Documentation update and improvement of tests related to expressions in sets.
Syntax of sets improved.
Extends pair set syntax, matching and deleting against clist.
Expressions like (123,*) can be used in pair set literals, clists can bematched against pair sets (community ~ pairset) and pair sets can beused to specify items to delete from clists (community.delete(pairset)).
NEWS and version update.
Filter language updates; new route attributes and datatype.
- Adds bgp_originator_id and bgp_cluster_list route attributes. - Adds dotted quad filter datatype (for router IDs, used by bgp_originator_id and ospf_router_id route attributes). - Fixes pair ~ pair set matching....
Clear local variables in filters and functions.
Fixes crash when used uninitialized variables.This problem was surprisingly tricky to fix.
Replaces the algorithm for building balanced trees.
Changes the time complexity of the algorithm from O(n^2) to O(n*log(n)).This speeds up loading of huge DEC-IX config from 128 s to 15 s. It alsomakes the code significantly simpler.
Define symbols as text between ''.
Priority for '||' and '&&' fixed.
Allow multiple || and && statements.
Implements protocol-specific router id and updates documentation.
Merge branch 'master' into dev
Adds support for dynamic pair and bgp mask expressions.
Missing boolean comparison added.
Reimplementation of prefix sets.
Prefix sets were broken beyond any repair and have to be reimplemented.They are reimplemented using a trie with bitmasks in nodes.There is also change in the interpretation of minus prefix pattern,but the old interpretation was already inconsistent with...
New syntax for bgp_path
Fix i_same for 'c' instruction.
Do not try to divide by zero.
Added && and ||.
Use ? in path matching to avoid /* trap.
Resolved shift/reduce conflict
Allow other operations than +.
Allow accessing defined symbols.
Use new eval mechanism for testing filters.
Bugfix in i_same (comparing of paths still does not work).
Added code for testing filters.
Startup renamed to __startup: it is internal function and mj alreadyuses word startup in other context.
pair ~ community list matching works.
It is good idea to separate entries in list somehow. Adding/deletingto community lists from filters now works.
Int sets moved to core. It is now possible to have variable of type clist.
Path_getlen moved to nest and length was made callable from filters.
Path matching now actually works, including / * 1 2 3 * /.
Path and path matching seem to work, now.
Filters now know type path. It is possible to declare variable of typepath, but it is not possible to write constant of type path.
It should be possible to print paths and match them.
BGP_PATH masks now actually work as data type.
1 less shift/reduce conflict
print now takes arguments separated by ,
[ 18.104.22.168/24 .. 22.214.171.124/8 ] is now forbidden
[ 126.96.36.199/8 ] now actually works
Avoid being exponential, do not allow ! =
Get rid of 'ab'-s, added return to functions.
filter_same() implemented. Don't bet on it, yet.
Disallow rta.net syntax.
Check that prefixes are really prefixes + fix config file tocomply. (:-( 188.8.131.52/8 looks nicer than 184.108.40.206/8).
Filters: write access to dynamic attributes should actually work. Itwould be nice to find method of testing such beasts.
Split inst->code into inst->code and inst->aux. Both are only 16 bit,so aux is suitable for storing type but not much more.
You can now print enum.
Fixed order of arguments for function call.
Enumeration types should work once CF_ENUM() is ready.
Created test.conf for testing of filters. (I'm currently thinkingabout ./tests in root directory which will just fire all availabletests...)