mirror of
https://gitlab.nic.cz/labs/bird.git
synced 2024-11-17 08:38:42 +00:00
Access to few more attributes is needed.
This commit is contained in:
parent
f7876c3660
commit
fe613ecded
@ -368,12 +368,19 @@ term:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* FIXME (maybe?) rta.from read/write */
|
||||||
| rtadot FROM { $$ = f_new_inst(); $$->code = 'a'; $$->aux = T_IP; $$->a2.i = OFFSETOF(struct rta, from); }
|
| rtadot FROM { $$ = f_new_inst(); $$->code = 'a'; $$->aux = T_IP; $$->a2.i = OFFSETOF(struct rta, from); }
|
||||||
|
|
||||||
|
/* FIXME Gw read/write */
|
||||||
| rtadot GW { $$ = f_new_inst(); $$->code = 'a'; $$->aux = T_IP; $$->a2.i = OFFSETOF(struct rta, gw); }
|
| rtadot GW { $$ = f_new_inst(); $$->code = 'a'; $$->aux = T_IP; $$->a2.i = OFFSETOF(struct rta, gw); }
|
||||||
| rtadot NET { $$ = f_new_inst(); $$->code = 'a'; $$->aux = T_PREFIX; $$->a2.i = 0x12345678; /* This is actually ok - T_PREFIX is special-cased. */ }
|
| rtadot NET { $$ = f_new_inst(); $$->code = 'a'; $$->aux = T_PREFIX; $$->a2.i = 0x12345678; /* This is actually ok - T_PREFIX is special-cased. */ }
|
||||||
| rtadot SOURCE { $$ = f_new_inst(); $$->code = 'a'; $$->aux = T_ENUM_RTS; $$->a2.i = OFFSETOF(struct rta, source); }
|
| rtadot SOURCE { $$ = f_new_inst(); $$->code = 'a'; $$->aux = T_ENUM_RTS; $$->a2.i = OFFSETOF(struct rta, source); }
|
||||||
|
|
||||||
|
/* FIXME rte.Preference - read/write */
|
||||||
|
/* FIXME rta.Scope - read/write */
|
||||||
|
/* FIXME rta.Cast - read */
|
||||||
|
/* FIXME rta.Dest - read */
|
||||||
|
|
||||||
| rtadot dynamic_attr { $$ = $2; $$->code = P('e','a'); }
|
| rtadot dynamic_attr { $$ = $2; $$->code = P('e','a'); }
|
||||||
|
|
||||||
| term '.' IP { $$ = f_new_inst(); $$->code = P('c','p'); $$->a1.p = $1; $$->aux = T_IP; }
|
| term '.' IP { $$ = f_new_inst(); $$->code = P('c','p'); $$->a1.p = $1; $$->aux = T_IP; }
|
||||||
|
@ -10,6 +10,13 @@
|
|||||||
/**
|
/**
|
||||||
* DOC: Filters
|
* DOC: Filters
|
||||||
*
|
*
|
||||||
|
* You can find sources of filters language in filter/
|
||||||
|
* directory. filter/config.Y filter grammar, and basically translates
|
||||||
|
* source from user into tree of &f_inst structures. These trees are
|
||||||
|
* later interpreted using code in filter/filter.c. Filters internally
|
||||||
|
* work with values/variables in struct f_val, which contains type of
|
||||||
|
* value and value.
|
||||||
|
*
|
||||||
* Filter consists of tree of &f_inst structures, one structure per
|
* Filter consists of tree of &f_inst structures, one structure per
|
||||||
* "instruction". Each &f_inst contains code, aux value which is
|
* "instruction". Each &f_inst contains code, aux value which is
|
||||||
* usually type of data this instruction operates on, and two generic
|
* usually type of data this instruction operates on, and two generic
|
||||||
@ -23,8 +30,7 @@
|
|||||||
* forced. Important thing about &f_val s is that they may be copied
|
* forced. Important thing about &f_val s is that they may be copied
|
||||||
* with simple =. That's fine for all currently defined types: strings
|
* with simple =. That's fine for all currently defined types: strings
|
||||||
* are read-only (and therefore okay), paths are copied for each
|
* are read-only (and therefore okay), paths are copied for each
|
||||||
* operation (okay too).
|
* operation (okay too). */
|
||||||
*/
|
|
||||||
|
|
||||||
#undef LOCAL_DEBUG
|
#undef LOCAL_DEBUG
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user