diff options
Diffstat (limited to 'sysdep/unix/krt.Y')
-rw-r--r-- | sysdep/unix/krt.Y | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/sysdep/unix/krt.Y b/sysdep/unix/krt.Y index 5af6a4c8..90297d3f 100644 --- a/sysdep/unix/krt.Y +++ b/sysdep/unix/krt.Y @@ -32,6 +32,7 @@ CF_DECLS CF_KEYWORDS(KERNEL, PERSIST, SCAN, TIME, LEARN, DEVICE, ROUTES, GRACEFUL, RESTART, KRT_SOURCE, KRT_METRIC, MERGE, PATHS) CF_KEYWORDS(INTERFACE, PREFERRED) +%type <i> kern_learn %type <i> kern_mp_limit %type <cc> kern_channel @@ -49,6 +50,11 @@ kern_proto_start: proto_start KERNEL { kern_proto: kern_proto_start proto_name '{' ; kern_proto: kern_proto kern_item ';' ; +kern_learn: + bool { $$ = $1 ? KRT_LEARN_ALIEN : KRT_LEARN_NONE; } + | ALL { $$ = KRT_LEARN_ALL; } + ; + kern_mp_limit: /* empty */ { $$ = KRT_DEFAULT_ECMP_LIMIT; } | LIMIT expr { $$ = $2; if (($2 <= 0) || ($2 > 255)) cf_error("Merge paths limit must be in range 1-255"); } @@ -68,7 +74,7 @@ kern_item: /* Scan time of 0 means scan on startup only */ THIS_KRT->scan_time = $3 S_; } - | LEARN bool { + | LEARN kern_learn { THIS_KRT->learn = $2; #ifndef KRT_ALLOW_LEARN if ($2) |