summaryrefslogtreecommitdiffstats
path: root/filter/config.Y
diff options
context:
space:
mode:
authorPavel Machek <pavel@ucw.cz>2000-05-30 12:42:39 +0200
committerPavel Machek <pavel@ucw.cz>2000-05-30 12:42:39 +0200
commit26c09e1d25abff7fb88959dc6fbaa7ae5eb295ad (patch)
tree2a309ee61845f91be7f9f4d58d88246fb64f1278 /filter/config.Y
parent2d6627a7a5e52f8314520f9aefd82040e24849cb (diff)
downloadbird-26c09e1d25abff7fb88959dc6fbaa7ae5eb295ad.tar
bird-26c09e1d25abff7fb88959dc6fbaa7ae5eb295ad.zip
Added read-only access to all required fields in rta.
Diffstat (limited to 'filter/config.Y')
-rw-r--r--filter/config.Y22
1 files changed, 8 insertions, 14 deletions
diff --git a/filter/config.Y b/filter/config.Y
index f72dc83..37c0f3f 100644
--- a/filter/config.Y
+++ b/filter/config.Y
@@ -20,7 +20,7 @@ CF_KEYWORDS(FUNCTION, PRINT, PRINTN, UNSET, RETURN,
INT, BOOL, IP, PREFIX, PAIR, SET, STRING, BGPMASK, BGPPATH, CLIST,
IF, THEN, ELSE, CASE,
TRUE, FALSE,
- FROM, GW, NET, MASK, SOURCE,
+ FROM, GW, NET, MASK, SOURCE, SCOPE, CAST, DEST,
LEN,
DEFINED,
ADD, DELETE, CONTAINS, RESET,
@@ -301,9 +301,6 @@ CF_ADDTO(dynamic_attr, INVALID_TOKEN { $$ = NULL; })
rtadot: /* EMPTY, we are not permitted RTA. prefix */
;
-
-
-
function_call:
SYM '(' var_list ')' {
struct symbol *sym;
@@ -329,19 +326,16 @@ function_call:
static_attr:
/* FIXME (maybe?) rta.from read/write */
- FROM { $$ = f_new_inst(); $$->aux = T_IP; $$->a2.i = OFFSETOF(struct rta, from); }
+ FROM { $$ = f_new_inst(); $$->aux = T_IP; $$->a2.i = OFFSETOF(struct rta, from); }
-/* FIXME Gw read/write */
- | GW { $$ = f_new_inst(); $$->aux = T_IP; $$->a2.i = OFFSETOF(struct rta, gw); }
- | NET { $$ = f_new_inst(); $$->aux = T_PREFIX; $$->a2.i = 0x12345678; /* This is actually ok - T_PREFIX is special-cased. */ }
- | SOURCE { $$ = f_new_inst(); $$->aux = T_ENUM_RTS; $$->a2.i = OFFSETOF(struct rta, source); }
+ | GW { $$ = f_new_inst(); $$->aux = T_IP; $$->a2.i = OFFSETOF(struct rta, gw); } /* FIXME: want it read/write */
+ | NET { $$ = f_new_inst(); $$->aux = T_PREFIX; $$->a2.i = 0x12345678; /* This is actually ok - T_PREFIX is special-cased. */ }
+ | SOURCE { $$ = f_new_inst(); $$->aux = T_ENUM_RTS; $$->a2.i = OFFSETOF(struct rta, source); }
+ | SCOPE { $$ = f_new_inst(); $$->aux = T_ENUM_SCOPE; $$->a2.i = OFFSETOF(struct rta, scope); } /* FIXME: want it read/write */
+ | CAST { $$ = f_new_inst(); $$->aux = T_ENUM_RTC; $$->a2.i = OFFSETOF(struct rta, cast); }
+ | DEST { $$ = f_new_inst(); $$->aux = T_ENUM_RTD; $$->a2.i = OFFSETOF(struct rta, dest); }
;
-/* FIXME rta.Scope - read/write */
-/* FIXME rta.Cast - read */
-/* FIXME rta.Dest - read */
-
-
term:
'(' term ')' { $$ = $2; }
| term '+' term { $$ = f_new_inst(); $$->code = '+'; $$->a1.p = $1; $$->a2.p = $3; }