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 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);