summaryrefslogtreecommitdiffstats
path: root/filter/config.Y
diff options
context:
space:
mode:
authorPavel Machek <pavel@ucw.cz>1999-04-19 20:41:56 +0200
committerPavel Machek <pavel@ucw.cz>1999-04-19 20:41:56 +0200
commit36bbfc704c7d2153537751e24413db9b9c97bc58 (patch)
tree6c0c0d3e94566f2c4518c0ee720014f5dee14891 /filter/config.Y
parentafbc41ab3d4f07f7dc4dbc6c769fe7fa1567f357 (diff)
downloadbird-36bbfc704c7d2153537751e24413db9b9c97bc58.tar
bird-36bbfc704c7d2153537751e24413db9b9c97bc58.zip
Updated filters: they now actually see IP/pxlen of net being filtered,
gateway, and who told us, so they can do usefull jobs from now on.
Diffstat (limited to 'filter/config.Y')
-rw-r--r--filter/config.Y10
1 files changed, 10 insertions, 0 deletions
diff --git a/filter/config.Y b/filter/config.Y
index 4f910c2..4fd1815 100644
--- a/filter/config.Y
+++ b/filter/config.Y
@@ -23,6 +23,9 @@ CF_KEYWORDS(FUNCTION, PRINT, CONST,
INT, BOOL, IP, PREFIX, PAIR, SET, STRING,
IF, THEN, ELSE,
TRUE, FALSE,
+ RTA, FROM, GW, NET,
+ LEN,
+ IMPOSSIBLE,
FILTER
)
@@ -179,6 +182,13 @@ term:
}
}
| constant { $$ = $1; }
+ | RTA '.' FROM { $$ = f_new_inst(); $$->code = 'a'; $$->a1.i = T_IP; $$->a2.i = OFFSETOF(struct rta, from); }
+
+ | RTA '.' GW { $$ = f_new_inst(); $$->code = 'a'; $$->a1.i = T_IP; $$->a2.i = OFFSETOF(struct rta, gw); }
+ | RTA '.' NET { $$ = f_new_inst(); $$->code = 'a'; $$->a1.i = T_PREFIX; $$->a2.i = 0x12345678; }
+
+ | term '.' IP { $$ = f_new_inst(); $$->code = 'cp'; $$->a1.p = $1; $$->a2.i = T_IP; }
+ | term '.' LEN { $$ = f_new_inst(); $$->code = 'cp'; $$->a1.p = $1; $$->a2.i = T_INT; }
;
break_command: