summaryrefslogtreecommitdiff
path: root/sysdep/bsd/krt-sock.Y
diff options
context:
space:
mode:
authorOndrej Zajicek <santiago@crfreenet.org>2013-07-07 12:11:42 +0200
committerOndrej Zajicek <santiago@crfreenet.org>2013-07-07 12:11:42 +0200
commitc01a94663cc18f53fd741c5d44387eead9ca88af (patch)
treebf38a75ad20230257f79bb37d6703ede732ed5d7 /sysdep/bsd/krt-sock.Y
parentc6964c305b425b98aaf0492806a28b578d799d83 (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.Y32
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