Commit graph

186 commits

Author SHA1 Message Date
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 Zajicek 23e563d86b Fixes buggy prefix ~ prefix matching. 2009-05-30 00:35:35 +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 Filip 43de796b8a Function pm_path_compare() checked just length of the bgpmasks 2009-05-29 23:04:54 +02:00
Ondrej Filip d59405ec66 Typo in warning fixed. 2009-05-29 23:02:36 +02:00
Ondrej Filip a6c9f0648d Missing boolean comparison added. 2009-05-28 13:37:04 +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 c60cdd8c39 Cleanup changes 2009-03-31 21:17:00 +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 cb53039271 Rate limit for most abundant log messages 2009-02-26 14:23:54 +01:00
Ondrej Zajicek 82ba9032be Fixes crash during some expressions
Bird crashed when 'bgp_path.len' was used for routes that does
not came from BGP.
2009-02-21 22:46:50 +01:00
Ondrej Zajicek cd17c651a6 Add format for BGP_AGGREGATOR attribute 2009-02-21 17:47:56 +01:00
Ondrej Zajicek f949163039 New syntax for bgp_path 2009-01-27 17:35:00 +01:00
Ondrej Zajicek 330aecead8 Bugfix in interpret
Missing cases in filter code interpret leads to crash
when  bgp_next_hop attr was queried.
2008-12-25 17:49:57 +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 44711e0ca2 Fix some bugs in filter interpret. 2008-11-16 22:16:04 +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 aebe06b40c Proper format functions for ORIGINATOR_ID, CLUSTER_LIST 2008-11-08 23:33:22 +01:00
Ondrej Zajicek 4847a894bf Implementation of route reflection for BGP 2008-10-26 22:45:09 +01:00
Ondrej Zajicek 11cb620266 Implementation of 4B ASN support for BGP 2008-10-26 22:36:08 +01:00
Martin Mares 9831e5916f Staticized lots of local functions. 2004-06-05 09:58:23 +00:00
Martin Mares 6ecd20605c ... and in the filter. 2004-06-05 09:26:55 +00:00
Martin Mares 6a57bb3110 Killed a couple of unused variables.
We really should compile with warnings enabled.
2004-05-31 20:57:38 +00: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 d85e1f0e2f Prefix comparison bug (hopefully) fixed. 2003-02-27 10:48:30 +00:00
Martin Mares de10a974f2 Added missing semicolons. 2002-11-13 08:46:12 +00:00
Pavel Machek 4bb18dd2da Fix i_same for 'c' instruction. 2000-06-08 16:57:41 +00:00
Martin Mares 725270cb1d Fixes for the programmer's manual. 2000-06-08 12:37:21 +00:00
Pavel Machek a5a947d4d8 Fixing error messages. 2000-06-08 10:26:19 +00:00
Pavel Machek b178d92a0b Better messages 2000-06-08 08:24:32 +00:00
Pavel Machek 3e82b32d36 Progdocs updates 2000-06-07 14:45:55 +00:00
Pavel Machek 8dcf254499 Even better documentation of filters. 2000-06-07 14:16:11 +00:00
Pavel Machek 907503adb6 Comment fix. 2000-06-07 14:00:17 +00:00
Pavel Machek 771ae456a5 Better progdocs for filters 2000-06-07 13:54:06 +00:00
Martin Mares 2e9b24211a Spelling fixes to progdoc. 2000-06-07 12:29:08 +00:00
Pavel Machek 4c5f93d76b Better documentation. There are functions whose description is good when
reading source but whose documentation does not belong to progdocs.
2000-06-05 17:13:36 +00:00
Pavel Machek 8798c81176 Docs updates:
make prog.dvi

do not overflow in .dvi

include filter documentation in the system
2000-06-05 16:36:16 +00:00
Pavel Machek 98da26a0a0 Better error messages 2000-06-05 15:41:29 +00:00
Ondrej Filip 49222defff Bug in comment. It didn't compile. 2000-06-05 15:06:26 +00:00
Pavel Machek b093c328f5 Updates to both programmers and users doc 2000-06-05 12:52:57 +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
Martin Mares f7667ba1c4 When cloning a rte and replacing its rta, remember to free the old one
so that we don't leak memory. Thanks go to the resource tracking system
for quickly discovering the source of leakages.
2000-06-04 18:46:30 +00:00
Pavel Machek 64ba9f7bcc Do not try to divide by zero. 2000-06-02 08:01:12 +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 0b1cad8162 Complain when filter does not end in accept nor reject. 2000-05-31 21:50:13 +00:00