| Branch: | Revision:

iof-bird-daemon / filter / filter.c @ 094d2bdb

History | View | Annotate | Download (37.2 KB)

# Date Author Comment
094d2bdb 08/14/2012 02:46 PM Ondrej Zajicek

Implements ADD-PATH extension for BGP.

Allows to send and receive multiple routes for one network by one BGP
session. Also contains necessary core changes to support this (routing
tables accepting several routes for one network from one protocol).
It needs some more cleanup before merging to the master branch.

182a7895 04/28/2012 11:35 PM Ondrej Zajicek

Allows some modifications of dest attribute in filters.

af582c48 03/18/2012 04:32 PM Ondrej Zajicek

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.
0888a737 03/15/2012 08:07 PM Ondrej Zajicek

Extends set operations in filters.

Allows add/filter/delete clist on clist (set algebra on clists).

Allows number ~ bgppath match.

a03ede64 01/02/2012 11:42 PM Ondrej Zajicek

Fixes a tricky bug in route filtering.

Route attributes was used after rta was freed during copy-on-write in
filter code. This causes some random crashes, esp. with multipath

4271f2b7 09/18/2011 11:52 AM Ondrej Filip

Fixed problem during 'configure' with EC

42a0c054 08/14/2011 11:55 AM Ondrej Zajicek

BGP Extended communities.

fdf16eb6 07/03/2011 05:43 PM Ondrej Zajicek

Prints full community lists during 'show route all'.

e08d2ff0 06/26/2011 03:09 PM Ondrej Zajicek

Adds filter clist operation.

0aa88530 03/23/2011 12:40 PM Ondrej Zajicek

Convert && and || to shortcut boolean operators.

938b191b 10/08/2010 11:00 PM Ondrej Zajicek

Fixes error handling in ASN expressions.

0d1b3c4c 09/20/2010 11:01 AM Ondrej Zajicek

Changes print-like filter commands to use a log instead of a stderr.

And extends the log subsystem to better handle that.

2dec1e34 09/15/2010 12:01 AM Ondrej Zajicek

Fixes a bug in pair sets.

a58022a6 09/11/2010 06:14 PM Ondrej Zajicek

Fixes a bug in community set delete.

7f0d245a 07/27/2010 03:17 PM Ondrej Zajicek

Minor changes in prefix trie.

ba5c0057 05/22/2010 08:47 PM Ondrej Zajicek

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)).

0277cc0b 04/08/2010 03:47 PM Ondrej Zajicek

Revert "Fixes behavior of defined() on bgp_community attribute."

This reverts commit 74e9331fe0892c4c96b4c4d7db3f14bb7e9d928e.

126683fe 03/29/2010 05:29 PM Ondrej Zajicek

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....
aa461248 03/19/2010 08:41 AM Ondrej Zajicek

Clear local variables in filters and functions.

Fixes crash when used uninitialized variables.
This problem was surprisingly tricky to fix.

74e9331f 03/17/2010 11:10 PM Ondrej Zajicek

Fixes behavior of defined() on bgp_community attribute.

e8da1bd0 03/14/2010 11:34 PM Ondrej Zajicek

Fixes missing cases in filters.

dfd48621 02/17/2010 09:11 PM Ondrej Zajicek

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 also
makes the code significantly simpler.

2eece54a 11/15/2009 01:24 PM Ondrej Zajicek

Fixes bug related to reconfiguration with bgp_path first/last operators.

52b9b2a1 10/12/2009 06:44 PM Ondrej Zajicek

Rename as_path_get_last/as_path_get_first to be consistent.

7ea5b00f 10/08/2009 02:23 PM Ondrej Zajicek

First and last accessors to as_paths.

54fe0d92 09/18/2009 11:59 AM Ondrej Zajicek

Fixes setting of IP addresses to route attributes (NEXT_HOP).

db96fccb 09/17/2009 11:11 PM Ondrej Zajicek

Fixes bug in filter rta copy-on-write.

Filters should try to copy-on-write just cached rtas.

f4c6ca8c 09/17/2009 11:35 AM Ondrej Zajicek

Fixes preference bounds.

5004d02c 06/25/2009 11:06 PM Ondrej Zajicek

Merge branch 'master' into dev

92a72a4c 06/01/2009 05:32 PM Ondrej Zajicek

Adds support for dynamic pair and bgp mask expressions.

23e563d8 05/29/2009 10:35 PM Ondrej Zajicek

Fixes buggy prefix ~ prefix matching.

9be1086d 05/29/2009 09:08 PM Ondrej Filip

New type variable 'V' defined in filters. This type is checked
only for name, never for value in function filter_same()

43de796b 05/29/2009 09:04 PM Ondrej Filip

Function pm_path_compare() checked just length of the bgpmasks

d59405ec 05/29/2009 09:02 PM Ondrej Filip

Typo in warning fixed.

a6c9f064 05/28/2009 11:37 AM Ondrej Filip

Missing boolean comparison added.

c8a6b9a3 04/16/2009 11:48 PM Ondrej Zajicek

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...

b1a597e0 03/31/2009 10:55 AM Ondrej Zajicek

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...

cf186034 03/14/2009 11:43 AM Ondrej Zajicek

New syntax for bgp_path

cb530392 02/26/2009 01:23 PM Ondrej Zajicek

Rate limit for most abundant log messages

82ba9032 02/21/2009 09:46 PM Ondrej Zajicek

Fixes crash during some expressions

Bird crashed when 'bgp_path.len' was used for routes that does
not came from BGP.

cd17c651 02/21/2009 04:47 PM Ondrej Zajicek

Add format for BGP_AGGREGATOR attribute

330aecea 12/25/2008 04:49 PM Ondrej Zajicek

Bugfix in interpret

Missing cases in filter code interpret leads to crash
when bgp_next_hop attr was queried.

083c43e2 12/25/2008 10:55 AM Ondrej Zajicek

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.

44711e0c 11/16/2008 09:16 PM Ondrej Zajicek

Fix some bugs in filter interpret.

e29fa06e 11/14/2008 01:50 PM Ondrej Zajicek

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*"

aebe06b4 11/08/2008 10:33 PM Ondrej Zajicek

Proper format functions for ORIGINATOR_ID, CLUSTER_LIST

11cb6202 10/26/2008 09:36 PM Ondrej Zajicek

Implementation of 4B ASN support for BGP

9831e591 06/05/2004 09:58 AM Martin Mares

Staticized lots of local functions.

6a57bb31 05/31/2004 08:57 PM Martin Mares

Killed a couple of unused variables.

We really should compile with warnings enabled.

d85e1f0e 02/27/2003 10:48 AM Martin Mares

Prefix comparison bug (hopefully) fixed.

4bb18dd2 06/08/2000 04:57 PM Pavel Machek

Fix i_same for 'c' instruction.

725270cb 06/08/2000 12:37 PM Martin Mares

Fixes for the programmer's manual.

b178d92a 06/08/2000 08:24 AM Pavel Machek

Better messages

3e82b32d 06/07/2000 02:45 PM Pavel Machek

Progdocs updates

8dcf2544 06/07/2000 02:16 PM Pavel Machek

Even better documentation of filters.

771ae456 06/07/2000 01:54 PM Pavel Machek

Better progdocs for filters

2e9b2421 06/07/2000 12:29 PM Martin Mares

Spelling fixes to progdoc.

4c5f93d7 06/05/2000 05:13 PM Pavel Machek

Better documentation. There are functions whose description is good when
reading source but whose documentation does not belong to progdocs.

98da26a0 06/05/2000 03:41 PM Pavel Machek

Better error messages

49222def 06/05/2000 03:06 PM Ondrej Filip

Bug in comment. It didn't compile.

b093c328 06/05/2000 12:52 PM Pavel Machek

Updates to both programmers and users doc

f7667ba1 06/04/2000 06:46 PM Martin Mares

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.

64ba9f7b 06/02/2000 08:01 AM Pavel Machek

Do not try to divide by zero.

5f4aee76 06/01/2000 08:43 AM Pavel Machek

Added && and ||.

1877dab2 06/01/2000 08:34 AM Pavel Machek

case net {
else: reject;

1895e81e 06/01/2000 08:32 AM Pavel Machek

Allow matching on enums:

if !(scope ~ [ SCOPE_HOST, SCOPE_SITE ]) then {
print "Failed in test";
0b1cad81 05/31/2000 09:50 PM Pavel Machek

Complain when filter does not end in accept nor reject.

0dc4431c 05/30/2000 11:07 AM Pavel Machek

Access to all attributes we should be able to access seems to work.

26c09e1d 05/30/2000 10:42 AM Pavel Machek

Added read-only access to all required fields in rta.

fe613ecd 05/30/2000 10:13 AM Pavel Machek

Access to few more attributes is needed.

ad9074e9 05/25/2000 03:20 PM Pavel Machek

Cleaned up warnings.

e66e6c21 05/19/2000 04:57 PM Pavel Machek

If community list is not defined, act as it is empty.

9f0d45d6 05/17/2000 12:14 PM Pavel Machek

Finished cleanng up mess: multiplication reinstalled.

b1c9d871 05/16/2000 10:37 PM Martin Mares

Fixed the horrible mess Pavel has created with his last commit.

a96a979d 05/16/2000 06:50 PM Pavel Machek

Line numbers for runtime errors (what's wrong with cvs? I could not
commit this from home)

c5a06f65 05/15/2000 12:27 PM Pavel Machek

Allow other operations than +.

6be662d9 05/15/2000 12:07 PM Pavel Machek

Use new eval mechanism for testing filters.

3b1c523d 05/15/2000 10:53 AM Martin Mares

Got rid of startup functions and filters_postconfig().

By the way, how do you expect pointers to fit in an int?

1c20608e 05/15/2000 10:49 AM Martin Mares

Added f_eval_int() and EVAL configuration command.

9a220cab 05/04/2000 08:52 PM Martin Mares

#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'

2337ade7 04/30/2000 06:47 PM Pavel Machek

Moved documentation to top of file, where it belongs.

8c62d6e3 04/29/2000 05:48 PM Pavel Machek

Minor documentation update.

ff95080f 04/28/2000 09:48 AM Pavel Machek

Cleanup of dead code + example documentation for two functions.

b0c9c21c 04/26/2000 09:38 AM Pavel Machek

Small cleanup.

2e5a8735 04/26/2000 09:36 AM Pavel Machek

filter_same should now work with path masks.

f71bded6 04/26/2000 09:30 AM Pavel Machek

Bugfix in i_same (comparing of paths still does not work).

7a86a8b0 04/26/2000 08:03 AM Pavel Machek

Added code for testing filters.

0150e521 04/17/2000 02:12 PM Pavel Machek

Cleaned up mess with types in e,a and e,S. Dynamic attributes should
now work.

74a7da48 04/17/2000 01:41 PM Martin Mares

Adding of dynamic attributes is hopefully correct now.

708711c3 04/17/2000 12:38 PM Pavel Machek

Community lists can be now accessed as dynamical attributes. Mj:
please create such dynamic atribute for bgp.

913ce95b 04/17/2000 11:52 AM Pavel Machek

EAF_ORIGINATED done right.

2bd2de01 04/17/2000 11:49 AM Pavel Machek

pair ~ community list matching works.

991c36b5 04/17/2000 11:37 AM Pavel Machek

Use EAF_ORIGINATED as mj wanted. mj: check this!

9c400ec9 04/17/2000 11:34 AM Pavel Machek

Int sets moved to core. It is now possible to have variable of type clist.

159fa4ce 04/17/2000 11:20 AM Pavel Machek

Finish moving of path matching. Use int_set_print from core for
printing community lists.

2a40efa5 04/17/2000 11:11 AM Pavel Machek

as_path_match moved to a-path.c

684c6f5a 04/17/2000 11:06 AM Pavel Machek

Path_getlen moved to nest and length was made callable from filters.

ecd25633 04/17/2000 10:54 AM Pavel Machek

Use printing routine from nest/ instead of our own.

4b641bab 04/17/2000 10:50 AM Pavel Machek

Path matching now actually works, including / * 1 2 3 * /.

e399b6f6 04/17/2000 10:42 AM Pavel Machek

Path and path matching seem to work, now.