Implements ADD-PATH extension for BGP.
Allows to send and receive multiple routes for one network by one BGPsession. Also contains necessary core changes to support this (routingtables accepting several routes for one network from one protocol).It needs some more cleanup before merging to the master branch.
Implements wildcard matching in config file include.
Also fixes some minor bugs in include.
Thanks Kelly Cochran for suggestion and draft patch.
Allows some modifications of dest attribute in filters.
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.
Fixes name for unnamed filters.
Thanks to Alexander V. Chernikov for the suggestion.
Fixes a bug in pair set intervals.
Pair intervals in form (a,b)..(c,d) were mishanded.
Thanks to Alexander Shikoff for the bugreport.
Fixes a tricky bug in route filtering.
Route attributes was used after rta was freed during copy-on-write infilter code. This causes some random crashes, esp. with multipathroutes.
Some minor fixes in parser.
Fixes a bug with multiple function arguments.
Fixed problem during 'configure' with EC
Configuration can include other files.
BGP Extended communities.
Prints full community lists during 'show route all'.
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.
Avoid using stack.
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...
Fixes error handling in ASN expressions.
Fixes scope of filter symbols.
Changes print-like filter commands to use a log instead of a stderr.
And extends the log subsystem to better handle that.
Fixes a bug in pair sets.
Fixes a bug in community set delete.
Documentation update and improvement of tests related to expressions in sets.
Even set of number can be made by expressions.
Syntax of sets improved.
Hostcache should use trie to filter relevant route changes.
Minor changes in prefix trie.
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.
Revert "Fixes behavior of defined() on bgp_community attribute."
This reverts commit 74e9331fe0892c4c96b4c4d7db3f14bb7e9d928e.
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.
Fixes behavior of defined() on bgp_community attribute.
Fixes missing cases in filters.
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.
Changes right recursion to left in the grammar of the case expression.
Define symbols as text between ''.
Changes right-recursion to left-recursion in a filter grammar.
Because we don't want to have a limit on a function/filter length.
Priority for '||' and '&&' fixed.
Allow multiple || and && statements.
Merge branch 'dev' into ospf3
proto/ospf/lsreq.c proto/ospf/lsupd.c proto/ospf/rt.c
Fixes bug related to reconfiguration with bgp_path first/last operators.
Implements protocol-specific router id and updates documentation.
Rename as_path_get_last/as_path_get_first to be consistent.
First and last accessors to as_paths.
Fixes setting of IP addresses to route attributes (NEXT_HOP).
Fixes bug in filter rta copy-on-write.
Filters should try to copy-on-write just cached rtas.
Fixes preference bounds.
Temporary OSPFv3 development commit
Merge branch 'master' into dev
Adds support for dynamic pair and bgp mask expressions.
Removes some remnant of '|' bgp path separator.
Fixes buggy prefix ~ prefix matching.
New type variable 'V' defined in filters. This type is checkedonly for name, never for value in function filter_same()
Function pm_path_compare() checked just length of the bgpmasks
Typo in warning fixed.
Missing boolean comparison added.
Rewrite of buggy AS path matching.
Old AS path maching supposes thath AS number appearsonly once in AS path, but that is not true. It alsocontains some bugs related to AS path sets.
New code does not use any assumptions about semanticstructure of AS path. It is asymptotically slower than...
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
Rate limit for most abundant log messages
Fixes crash during some expressions
Bird crashed when 'bgp_path.len' was used for routes that doesnot came from BGP.
Add format for BGP_AGGREGATOR attribute
Bugfix in interpret
Missing cases in filter code interpret leads to crashwhen bgp_next_hop attr was queried.
fixes some 64-bit related bugs.
Filter code used 'aux' integer field of 'symbol' struct to store ptrto next symbol and both 'aux2' and 'def' fields for value.Changed to just 'def' for value and 'aux2' for ptr to next symbol.Also another minor bugfix.
Fix some bugs in filter interpret.
New read-only route attribute 'proto' added. It returns a stringrepresenting a name of the protocol that originated the route.Strings can be compared using = or matched using ~. Routes canbe filtered, for example:
show route where proto ~ "bgp1*"
Proper format functions for ORIGINATOR_ID, CLUSTER_LIST
Implementation of route reflection for BGP
Implementation of 4B ASN support for BGP
Staticized lots of local functions.
... and in the filter.
Killed a couple of unused variables.
We really should compile with warnings enabled.
Fix bison input for current build tools, otherwise bison or the compilerwill abort the build.
Prefix comparison bug (hopefully) fixed.
Added missing semicolons.
Fix i_same for 'c' instruction.
Fixes for the programmer's manual.
Fixing error messages.
Even better documentation of filters.
Better progdocs for filters
Spelling fixes to progdoc.
Better documentation. There are functions whose description is good whenreading source but whose documentation does not belong to progdocs.
do not overflow in .dvi
include filter documentation in the system
Better error messages
Bug in comment. It didn't compile.
Updates to both programmers and users doc
Use nested scopes properly. Updated according to cf_define_symbol() changes.
The rest of code doesn't need changing since it doesn't use nesting.
When cloning a rte and replacing its rta, remember to free the old oneso that we don't leak memory. Thanks go to the resource tracking systemfor quickly discovering the source of leakages.
Do not try to divide by zero.