Commit graph

217 commits

Author SHA1 Message Date
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
Pavel Machek 24e1e2005b Another testbed for filters. 2000-05-30 11:09:09 +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 e66e6c2119 If community list is not defined, act as it is empty. 2000-05-19 16:57:40 +00:00
Pavel Machek 9f0d45d634 Finished cleanng up mess: multiplication reinstalled. 2000-05-17 12:14:05 +00:00
Martin Mares b1c9d87161 Fixed the horrible mess Pavel has created with his last commit. 2000-05-16 22:37:53 +00:00
Pavel Machek a96a979d5b Line numbers for runtime errors (what's wrong with cvs? I could not
commit this from home)
2000-05-16 18:50:51 +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
Pavel Machek 6be662d917 Use new eval mechanism for testing filters. 2000-05-15 12:07:09 +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 ab1129c1bd Added skeleton Doc files for the whole developer's documentation. 2000-05-05 17:17:42 +00:00
Martin Mares 9a220cabbc #ifdef out lots of debugging information.
The long resource/routing table dump printed upon startup is gone now
and if you wish to see it, just send bird SIGUSR1 or use the `debug'
commands.
2000-05-04 20:52:28 +00:00
Pavel Machek 2337ade754 Moved documentation to top of file, where it belongs. 2000-04-30 18:47:48 +00:00
Pavel Machek 8c62d6e3b6 Minor documentation update. 2000-04-29 17:48:38 +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 ff95080f92 Cleanup of dead code + example documentation for two functions. 2000-04-28 09:48:28 +00:00
Pavel Machek b0c9c21c29 Small cleanup. 2000-04-26 09:38:07 +00:00
Pavel Machek 2e5a8735f4 filter_same should now work with path masks. 2000-04-26 09:36:47 +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 471bd6c30b Marked place where new enums belong. 2000-04-26 07:47:47 +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 0150e5211a Cleaned up mess with types in e,a and e,S. Dynamic attributes should
now work.
2000-04-17 14:12:02 +00:00
Martin Mares 74a7da482b Adding of dynamic attributes is hopefully correct now. 2000-04-17 13:41:50 +00:00
Pavel Machek 3bbc4ad6ad Special hack for atomic_aggr. 2000-04-17 12:40:38 +00:00
Pavel Machek 708711c373 Community lists can be now accessed as dynamical attributes. Mj:
please create such dynamic atribute for bgp.
2000-04-17 12:38:24 +00:00
Pavel Machek 913ce95b08 EAF_ORIGINATED done right. 2000-04-17 11:52:32 +00:00
Pavel Machek 2bd2de0188 pair ~ community list matching works. 2000-04-17 11:49:21 +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
Pavel Machek 991c36b509 Use EAF_ORIGINATED as mj wanted. mj: check this! 2000-04-17 11:37:05 +00:00
Pavel Machek 9c400ec9dd Int sets moved to core. It is now possible to have variable of type clist. 2000-04-17 11:34:38 +00:00
Pavel Machek 159fa4cea9 Finish moving of path matching. Use int_set_print from core for
printing community lists.
2000-04-17 11:20:00 +00:00
Pavel Machek 2a40efa5e6 as_path_match moved to a-path.c 2000-04-17 11:11:33 +00:00
Pavel Machek 684c6f5a0e Path_getlen moved to nest and length was made callable from filters. 2000-04-17 11:06:39 +00:00
Pavel Machek ecd25633bd Use printing routine from nest/ instead of our own. 2000-04-17 10:54:01 +00:00
Pavel Machek 4b641bab52 Path matching now actually works, including / * 1 2 3 * /. 2000-04-17 10:50:03 +00:00
Pavel Machek e399b6f6ad Path and path matching seem to work, now. 2000-04-17 10:42:28 +00:00
Pavel Machek afc54517db Prepend and creation of empty path should work, but it has strange
syntax for now.
2000-04-17 10:16:47 +00:00
Pavel Machek 0a40e97328 as_path_prepend is usable outside bgp. 2000-04-12 14:12:37 +00:00
Pavel Machek a2d157463a One less shift/reduce conflict. 2000-04-12 14:05:37 +00:00
Pavel Machek ac7a2145cc f_new_dynamic_attr gets third argument, type as filters know it. 2000-04-12 14:02:04 +00:00
Martin Mares 2803c9ddbe Minor updates by Pavel. 2000-04-12 13:55:53 +00:00
Martin Mares 66d573d490 Attribute type hack. 2000-04-12 13:55:30 +00:00
Pavel Machek 10a5360886 Filters now know type path. It is possible to declare variable of type
path, but it is not possible to write constant of type path.

It should be possible to print paths and match them.
2000-04-12 13:31:39 +00:00
Pavel Machek dcab789047 Renamed f_path to f_path_mask -- which is what it really is. Use
linklist instead of array of signed integers for path mask.
2000-04-12 13:07:53 +00:00
Pavel Machek 77de68825c BGP_PATH masks now actually work as data type. 2000-04-12 12:10:37 +00:00
Pavel Machek 78c6217c1e Path printing is now much nicer: not having to put it backward
simplifies it. (Sorry for previous commit, cvs is naughty).
2000-04-12 10:34:45 +00:00
Pavel Machek 9196e9f8f9 Commit fixes. 2000-04-10 16:36:40 +00:00
Pavel Machek 7f77e25002 Functions for matching paths added, tested lightly.
Functions for working with community lists added, they compile.

This should not be definitive place for this stuff.
2000-04-10 15:07:43 +00:00
Martin Mares 798df5b1ab When processing ACCEPT/REJECT carrying no message, don't print
trailing newline.

I hope the fix is correct, but please check.
2000-04-01 09:15:55 +00:00
Martin Mares b157361533 SOURCE should really refer to rta->source, not rta->gw.
Please check that all rta attributes are available, I guess that at
least rta->dest is missing.
2000-04-01 09:15:10 +00:00
Martin Mares 3cf4a2e2b0 Removed lots of superfluous includes.
Use debug() instead of printf().
2000-03-31 23:35:59 +00:00
Martin Mares 221135d6bf Include "lib/string.h" instead of <string.h>. It should give us bzero()
and other non-portable functions on all systems.
2000-03-31 23:30:21 +00:00
Martin Mares 3076b5aedc Renamed FF_OUTGOING to FF_FORCE_TMPATTR which much better fits the semantics.
Call rte_cow() instead of rte_do_cow(), so that COW works properly.

Stripped "\n" off several (de)bug messages.
2000-03-30 08:50:30 +00:00
Pavel Machek 0a06a9b8b3 f_run gets one more parameter to distinguish between in and out modes. 2000-03-29 09:02:00 +00:00
Martin Mares 81ce667b7b Don't crash when filter_same() gets called on FILTER_ACCEPT or FILTER_REJECT. 2000-03-12 22:40:07 +00:00
Martin Mares 6b9fa32080 Great cleanup of debug messages. LOCAL_DEBUG turned off in most modules,
several debug() calls converted to DBG().
2000-03-12 21:01:38 +00:00
Pavel Machek 995e5894cd 1 less shift/reduce conflict
print now takes arguments separated by ,

[ 1.2.3.0/24 .. 3.4.5.0/8 ] is now forbidden

[ 1.2.3.0/8 ] now actually works
2000-03-09 14:47:43 +00:00