Annotation of embedaddon/bird/proto/mrt/config.Y, revision 1.1
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
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>