Return to config.Y CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / bird / proto / mrt |
1.1 ! misho 1: /* ! 2: * BIRD -- Multi-Threaded Routing Toolkit (MRT) Protocol ! 3: * ! 4: * (c) 2017--2018 Ondrej Zajicek <santiago@crfreenet.org> ! 5: * (c) 2017--2018 CZ.NIC z.s.p.o. ! 6: * ! 7: * Can be freely distributed and used under the terms of the GNU GPL. ! 8: */ ! 9: ! 10: CF_HDR ! 11: ! 12: #include "proto/mrt/mrt.h" ! 13: ! 14: CF_DEFINES ! 15: ! 16: #define MRT_CFG ((struct mrt_config *) this_proto) ! 17: ! 18: CF_DECLS ! 19: ! 20: CF_KEYWORDS(MRT, TABLE, FILTER, FILENAME, PERIOD, ALWAYS, ADD, PATH, DUMP, TO) ! 21: ! 22: %type <md> mrt_dump_args ! 23: ! 24: CF_GRAMMAR ! 25: ! 26: CF_ADDTO(proto, mrt_proto) ! 27: ! 28: mrt_proto_start: proto_start MRT ! 29: { ! 30: this_proto = proto_config_new(&proto_mrt, $1); ! 31: }; ! 32: ! 33: mrt_proto_item: ! 34: proto_item ! 35: | TABLE TEXT { MRT_CFG->table_expr = $2; } ! 36: | FILTER filter { MRT_CFG->filter = $2; } ! 37: | where_filter { MRT_CFG->filter = $1; } ! 38: | FILENAME text { MRT_CFG->filename = $2; } ! 39: | PERIOD expr { MRT_CFG->period = $2; } ! 40: | ALWAYS ADD PATH bool { MRT_CFG->always_add_path = $4; } ! 41: ; ! 42: ! 43: mrt_proto_opts: ! 44: /* empty */ ! 45: | mrt_proto_opts mrt_proto_item ';' ! 46: ; ! 47: ! 48: mrt_proto: ! 49: mrt_proto_start proto_name '{' mrt_proto_opts '}' { mrt_check_config(this_proto); }; ! 50: ! 51: CF_CLI_HELP(MRT DUMP, [table <name>|\"<pattern>\"] [to \"<file>\"] [filter <filter>|where <where filter>] , [[Save MRT Table Dump into a file]]) ! 52: CF_CLI(MRT DUMP, mrt_dump_args, [table <name>|\"<pattern>\"] [to \"<file>\"] [filter <filter>|where <where filter>], [[Save mrt table dump v2 of table name <t> right now]]) ! 53: { mrt_dump_cmd($3); } ; ! 54: ! 55: mrt_dump_args: ! 56: /* empty */ { $$ = cfg_allocz(sizeof(struct mrt_dump_data)); } ! 57: | mrt_dump_args TABLE rtable { $$ = $1; $$->table_ptr = $3->table; } ! 58: | mrt_dump_args TABLE TEXT { $$ = $1; $$->table_expr = $3; } ! 59: | mrt_dump_args FILTER filter { $$ = $1; $$->filter = $3; } ! 60: | mrt_dump_args where_filter { $$ = $1; $$->filter = $2; } ! 61: | mrt_dump_args TO text { $$ = $1; $$->filename = $3; } ! 62: ; ! 63: ! 64: ! 65: CF_CODE ! 66: ! 67: CF_END