summaryrefslogtreecommitdiff
path: root/sysdep/bsd/krt-sock.Y
blob: a03d6df5f884b02a3bc348a61a6f1caf44c67660 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
/*
 *	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, METRIC)

CF_GRAMMAR

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 >= krt_max_tables)
	  cf_error("Kernel table id must be in range 0-%u", krt_max_tables - 1);

	THIS_KRT->sys.table_id = $3;
   }
 | METRIC expr {
     if ($2 && !krt_max_metric)
       cf_error("Kernel route metric not supported");
     if ($2 > krt_max_metric)
       cf_error("Kernel table id must be in range 0-%u", krt_max_metric);

     THIS_KRT->sys.metric = $2;
   }
 ;

CF_CODE

CF_END