summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bird.conf5
-rw-r--r--nest/config.Y6
-rw-r--r--nest/protocol.h1
3 files changed, 9 insertions, 3 deletions
diff --git a/bird.conf b/bird.conf
index ea7edf8d..314e2426 100644
--- a/bird.conf
+++ b/bird.conf
@@ -6,8 +6,9 @@
router id 62.168.0.1
-define xyzzy = 120+10;
+define xyzzy = 120+10
protocol rip MyRIP_test {
- preference xyzzy;
+ preference xyzzy
+ debug all
}
diff --git a/nest/config.Y b/nest/config.Y
index f467a1a4..9efebbe6 100644
--- a/nest/config.Y
+++ b/nest/config.Y
@@ -12,7 +12,7 @@ static struct proto *this_proto;
CF_DECLS
-CF_KEYWORDS(ROUTER, ID, PROTOCOL, PREFERENCE)
+CF_KEYWORDS(ROUTER, ID, PROTOCOL, PREFERENCE, DISABLED, DEBUG, ALL, OFF)
%type <i> idval
@@ -58,6 +58,10 @@ proto_item:
if ($2 < 0 || $2 > 255) cf_error("Invalid preference");
this_proto->preference = $2;
}
+ | DISABLED { this_proto->disabled = 1; }
+ | DEBUG expr { this_proto->debug = $2; }
+ | DEBUG ALL { this_proto->debug = ~0; }
+ | DEBUG OFF { this_proto->debug = 0; }
;
CF_CODE
diff --git a/nest/protocol.h b/nest/protocol.h
index d94e02d3..34624e95 100644
--- a/nest/protocol.h
+++ b/nest/protocol.h
@@ -60,6 +60,7 @@ struct proto {
pool *pool; /* Local objects */
unsigned preference; /* Default route preference */
unsigned state; /* PRS_... */
+ unsigned disabled; /* Manually disabled */
void (*if_notify)(struct proto *, unsigned flags, struct iface *new, struct iface *old);
void (*rt_notify)(struct proto *, struct network *net, struct rte *new, struct rte *old);