1
0
mirror of https://gitlab.labs.nic.cz/labs/bird.git synced 2024-05-11 16:54:54 +00:00

126 Commits

Author SHA1 Message Date
182a78957d Allows some modifications of dest attribute in filters. 2012-04-29 01:35:52 +02:00
af582c4811 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.
2012-03-18 17:32:30 +01:00
117e3c4bbf Fixes a bug in pair set intervals.
Pair intervals in form (a,b)..(c,d) were mishanded.

Thanks to Alexander Shikoff for the bugreport.
2012-03-15 12:18:26 +01:00
78e33c29bb Some minor fixes in parser. 2011-10-26 20:06:36 +02:00
736fd7303c Fixes a bug with multiple function arguments. 2011-09-27 13:49:32 +02:00
42a0c05408 BGP Extended communities. 2011-08-14 13:55:02 +02:00
e08d2ff08e Adds filter clist operation. 2011-06-26 17:09:24 +02:00
b8cc390e7e 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.
2011-05-06 22:00:54 +02:00
c454872f4e Avoid using stack. 2011-03-27 23:27:37 +02:00
4fc36f394e This adds (*,x) functionality. 2011-03-26 14:18:56 +01:00
26d92bb892 A hack to distinguish if..else from else: in case.
The old BIRD grammar needs two lookaheads to distinguish if..else from
else: in case, which caused the parser to fail on some combinations of
both expressions.

This patch replaces two tokens 'else' ':' by one token 'else:' to fix
that.
2011-03-23 12:49:53 +01:00
b2b7bbfc69 Fixes scope of filter symbols. 2010-10-04 19:55:11 +02:00
edaec901e1 Even set of number can be made by expressions. 2010-08-03 15:22:29 +02:00
4733b49ed6 Syntax of sets improved. 2010-08-03 15:16:25 +02:00
7f0d245a5e Minor changes in prefix trie. 2010-07-27 17:17:11 +02:00
ba5c0057ed Extends pair set syntax, matching and deleting against clist.
Expressions like (123,*) can be used in pair set literals, clists can be
matched against pair sets (community ~ pairset) and pair sets can be
used to specify items to delete from clists (community.delete(pairset)).
2010-05-22 22:47:24 +02:00
126683feed 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.
 - Documentation updates.
2010-03-29 19:29:03 +02:00
aa46124804 Clear local variables in filters and functions.
Fixes crash when used uninitialized variables.
This problem was surprisingly tricky to fix.
2010-03-19 09:41:18 +01:00
14f6aca480 Changes right recursion to left in the grammar of the case expression. 2010-02-17 11:29:48 +01:00
5f47c4c11e Changes right-recursion to left-recursion in a filter grammar.
Because we don't want to have a limit on a function/filter length.
2010-02-02 00:03:46 +01:00
7ea5b00f42 First and last accessors to as_paths. 2009-10-08 15:23:24 +01:00
5004d02cb9 Merge branch 'master' into dev 2009-06-26 01:06:12 +02:00
92a72a4cbd Adds support for dynamic pair and bgp mask expressions. 2009-06-01 19:32:41 +02:00
f429d43482 Removes some remnant of '|' bgp path separator. 2009-06-01 16:20:48 +02:00
9be1086d29 New type variable 'V' defined in filters. This type is checked
only for name, never for value in function filter_same()
2009-05-29 23:08:28 +02:00
c8a6b9a3d1 Rewrite of buggy AS path matching.
Old AS path maching supposes thath AS number appears
only once in AS path, but that is not true. It also
contains some bugs related to AS path sets.

New code does not use any assumptions about semantic
structure of AS path. It is asymptotically slower than
the old code, but on real paths it is not significant.

It also allows '?' for matching one arbitrary AS number.
2009-04-17 01:48:36 +02:00
b1a597e0c3 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
the documentation and broken.

There is also some bugfixes in filter code related to set variables.
2009-03-31 12:55:57 +02:00
cf18603491 New syntax for bgp_path 2009-03-14 12:43:10 +01:00
f949163039 New syntax for bgp_path 2009-01-27 17:35:00 +01:00
083c43e22e fixes some 64-bit related bugs.
Filter code used 'aux' integer field of 'symbol' struct to store ptr
to 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.
2008-12-25 11:55:27 +01:00
e29fa06ece New read-only route attribute 'proto' added. It returns a string
representing a name of the protocol that originated the route.
Strings can be compared using = or matched using ~. Routes can
be filtered, for example:

show route where proto ~ "bgp1*"
2008-11-14 14:50:37 +01:00
11cb620266 Implementation of 4B ASN support for BGP 2008-10-26 22:36:08 +01:00
03e3d184b2 Fix bison input for current build tools, otherwise bison or the compiler
will abort the build.

(by Andreas)
2004-05-31 17:44:39 +00:00
de10a974f2 Added missing semicolons. 2002-11-13 08:46:12 +00:00
a5a947d4d8 Fixing error messages. 2000-06-08 10:26:19 +00:00
bf3eb98eb8 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.
2000-06-04 19:30:55 +00:00
5f4aee76a2 Added && and ||. 2000-06-01 08:43:29 +00:00
1877dab217 Allow
case net {
                       62.0.0.0/8+:
                       10.0.0.0/8+:
                       else: reject;
               }
2000-06-01 08:34:30 +00:00
1895e81e05 Allow matching on enums:
if !(scope ~ [ SCOPE_HOST, SCOPE_SITE ]) then {
                print "Failed in test";
                quitbird;
        }
2000-06-01 08:32:49 +00:00
0dc4431cde Access to all attributes we should be able to access seems to work. 2000-05-30 11:07:22 +00:00
26c09e1d25 Added read-only access to all required fields in rta. 2000-05-30 10:42:39 +00:00
2bdb5e0083 Cleaning static attributes 2000-05-30 10:23:04 +00:00
fe613ecded Access to few more attributes is needed. 2000-05-30 10:13:32 +00:00
ad9074e9ba Cleaned up warnings. 2000-05-25 15:20:40 +00:00
9a09a64bb4 Use ? in path matching to avoid /* trap. 2000-05-25 14:58:38 +00:00
72282e2a1b Fixed comment not to be misleading. 2000-05-25 12:33:15 +00:00
60de3356ab Resolved shift/reduce conflict 2000-05-16 14:24:33 +00:00
c5a06f65ee Allow other operations than +. 2000-05-15 12:27:45 +00:00
cbfd671f11 Allow accessing defined symbols. 2000-05-15 12:19:26 +00:00
e3f2d5fce3 Cleanup of configuration.
o  Use `expr' instead of `NUM' and `ipa' instead of `IPA',
   so that defined symbols work everywhere.
o  `define' now accepts both numbers and IP addresses.
o  Renamed `ipa' in filters to `fipa'.

Pavel, please update filters to accept define'd symbols as well.
2000-05-15 11:48:23 +00:00