diff options
author | Ondrej Zajicek <santiago@crfreenet.org> | 2013-07-07 12:11:42 +0200 |
---|---|---|
committer | Ondrej Zajicek <santiago@crfreenet.org> | 2013-07-07 12:11:42 +0200 |
commit | c01a94663cc18f53fd741c5d44387eead9ca88af (patch) | |
tree | bf38a75ad20230257f79bb37d6703ede732ed5d7 /sysdep/bsd/krt-sock.Y | |
parent | c6964c305b425b98aaf0492806a28b578d799d83 (diff) |
Implements multiple routing table support for FreeBSD and OpenBSD.
Inspired by the patch from Alexander V. Chernikov.
Diffstat (limited to 'sysdep/bsd/krt-sock.Y')
-rw-r--r-- | sysdep/bsd/krt-sock.Y | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/sysdep/bsd/krt-sock.Y b/sysdep/bsd/krt-sock.Y new file mode 100644 index 00000000..0218f188 --- /dev/null +++ b/sysdep/bsd/krt-sock.Y @@ -0,0 +1,32 @@ +/* + * BIRD -- BSD Kernel Syncer Configuration + * + * (c) 1999--2000 Martin Mares <mj@ucw.cz> + * + * Can be freely distributed and used under the terms of the GNU GPL. + */ + +CF_HDR + +CF_DECLS + +CF_KEYWORDS(KERNEL, TABLE) + +CF_GRAMMAR + +CF_ADDTO(kern_proto, kern_proto kern_sys_item ';') + +kern_sys_item: + KERNEL TABLE expr { + if ($3 && (krt_max_tables == 1)) + cf_error("Multiple kernel routing tables not supported"); + if ($3 < 0 || $3 >= krt_max_tables) + cf_error("Kernel table id must be in range 0-%d", krt_max_tables - 1); + + THIS_KRT->sys.table_id = $3; + } + ; + +CF_CODE + +CF_END |