Ondrej Zajicek
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
Ondrej Zajicek
b2b7bbfc69
Fixes scope of filter symbols.
2010-10-04 19:55:11 +02:00
Ondrej Filip
edaec901e1
Even set of number can be made by expressions.
2010-08-03 15:22:29 +02:00
Ondrej Filip
4733b49ed6
Syntax of sets improved.
2010-08-03 15:16:25 +02:00
Ondrej Zajicek
7f0d245a5e
Minor changes in prefix trie.
2010-07-27 17:17:11 +02:00
Ondrej Zajicek
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
Ondrej Zajicek
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
Ondrej Zajicek
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
Ondrej Zajicek
14f6aca480
Changes right recursion to left in the grammar of the case expression.
2010-02-17 11:29:48 +01:00
Ondrej Zajicek
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
Ondrej Zajicek
7ea5b00f42
First and last accessors to as_paths.
2009-10-08 15:23:24 +01:00
Ondrej Zajicek
5004d02cb9
Merge branch 'master' into dev
2009-06-26 01:06:12 +02:00
Ondrej Zajicek
92a72a4cbd
Adds support for dynamic pair and bgp mask expressions.
2009-06-01 19:32:41 +02:00
Ondrej Zajicek
f429d43482
Removes some remnant of '|' bgp path separator.
2009-06-01 16:20:48 +02:00
Ondrej Filip
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
Ondrej Zajicek
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
Ondrej Zajicek
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
Ondrej Zajicek
cf18603491
New syntax for bgp_path
2009-03-14 12:43:10 +01:00
Ondrej Zajicek
f949163039
New syntax for bgp_path
2009-01-27 17:35:00 +01:00
Ondrej Zajicek
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
Ondrej Zajicek
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
Ondrej Zajicek
11cb620266
Implementation of 4B ASN support for BGP
2008-10-26 22:36:08 +01:00
Martin Mares
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
Martin Mares
de10a974f2
Added missing semicolons.
2002-11-13 08:46:12 +00:00
Pavel Machek
a5a947d4d8
Fixing error messages.
2000-06-08 10:26:19 +00:00
Martin Mares
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
Pavel Machek
5f4aee76a2
Added && and ||.
2000-06-01 08:43:29 +00:00
Pavel Machek
1877dab217
Allow
...
case net {
62.0.0.0/8+:
10.0.0.0/8+:
else: reject;
}
2000-06-01 08:34:30 +00:00
Pavel Machek
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
Pavel Machek
0dc4431cde
Access to all attributes we should be able to access seems to work.
2000-05-30 11:07:22 +00:00
Pavel Machek
26c09e1d25
Added read-only access to all required fields in rta.
2000-05-30 10:42:39 +00:00
Pavel Machek
2bdb5e0083
Cleaning static attributes
2000-05-30 10:23:04 +00:00
Pavel Machek
fe613ecded
Access to few more attributes is needed.
2000-05-30 10:13:32 +00:00
Pavel Machek
ad9074e9ba
Cleaned up warnings.
2000-05-25 15:20:40 +00:00
Pavel Machek
9a09a64bb4
Use ? in path matching to avoid /* trap.
2000-05-25 14:58:38 +00:00
Pavel Machek
72282e2a1b
Fixed comment not to be misleading.
2000-05-25 12:33:15 +00:00
Pavel Machek
60de3356ab
Resolved shift/reduce conflict
2000-05-16 14:24:33 +00:00
Pavel Machek
c5a06f65ee
Allow other operations than +.
2000-05-15 12:27:45 +00:00
Pavel Machek
cbfd671f11
Allow accessing defined symbols.
2000-05-15 12:19:26 +00:00
Martin Mares
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
Martin Mares
3b1c523d79
Got rid of startup functions and filters_postconfig().
...
By the way, how do you expect pointers to fit in an int?
2000-05-15 10:53:56 +00:00
Martin Mares
1c20608e02
Added f_eval_int() and EVAL configuration command.
2000-05-15 10:49:38 +00:00
Martin Mares
758458be05
Unified parsing of prefixes.
...
Had to rename `prefix' in filters to `fprefix'.
2000-05-13 11:17:49 +00:00
Martin Mares
2edb31b097
Split CF_HDR section to CF_HDR (only includes) and CF_DEFINES (defines,
...
C declarations etc.).
2000-04-28 15:11:10 +00:00
Pavel Machek
b0c9c21c29
Small cleanup.
2000-04-26 09:38:07 +00:00
Pavel Machek
f71bded6e9
Bugfix in i_same (comparing of paths still does not work).
2000-04-26 09:30:12 +00:00
Pavel Machek
7a86a8b08d
Added code for testing filters.
2000-04-26 08:03:50 +00:00
Pavel Machek
94d9dfa47a
Startup renamed to __startup: it is internal function and mj already
...
uses word startup in other context.
2000-04-26 07:31:45 +00:00
Pavel Machek
7d6eebae3b
Create syntax sugar for add/delete/prepend, so xyzzy.prepend(123) is
...
possible. That means that milestone 3 was reached.
2000-04-20 10:25:51 +00:00
Pavel Machek
4444ed2b26
It is good idea to separate entries in list _somehow_. Adding/deleting
...
to community lists from filters now works.
2000-04-17 11:42:08 +00:00