summaryrefslogtreecommitdiffstats
path: root/nest
diff options
context:
space:
mode:
Diffstat (limited to 'nest')
-rw-r--r--nest/config.Y6
-rw-r--r--nest/protocol.h1
2 files changed, 6 insertions, 1 deletions
diff --git a/nest/config.Y b/nest/config.Y
index f467a1a..9efebbe 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 d94e02d..34624e9 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);