summaryrefslogtreecommitdiff
path: root/nest
diff options
context:
space:
mode:
authorOndrej Zajicek <santiago@crfreenet.org>2012-01-24 11:31:00 +0100
committerOndrej Zajicek <santiago@crfreenet.org>2012-01-24 11:31:00 +0100
commit39c028e9e9e3acf840051f4271fadd4939fde2af (patch)
treed6ca0ff9816965b31cb2ee4794c1a1c65a427f7d /nest
parent09686693d35bd71187847c95c0967d4125215b97 (diff)
Assign default protocol preference via proto_config_new().
The patch from Alexander V. Chernikov.
Diffstat (limited to 'nest')
-rw-r--r--nest/config.Y1
-rw-r--r--nest/proto.c1
-rw-r--r--nest/protocol.h1
-rw-r--r--nest/rt-dev.c1
4 files changed, 3 insertions, 1 deletions
diff --git a/nest/config.Y b/nest/config.Y
index a6baf4ea..3fcfa528 100644
--- a/nest/config.Y
+++ b/nest/config.Y
@@ -219,7 +219,6 @@ CF_ADDTO(proto, dev_proto '}')
dev_proto_start: proto_start DIRECT {
this_proto = proto_config_new(&proto_device, sizeof(struct rt_dev_config), $1);
- this_proto->preference = DEF_PREF_DIRECT;
init_list(&DIRECT_CFG->iface_list);
}
;
diff --git a/nest/proto.c b/nest/proto.c
index d55c348d..0fc72ce1 100644
--- a/nest/proto.c
+++ b/nest/proto.c
@@ -200,6 +200,7 @@ proto_config_new(struct protocol *pr, unsigned size, int class)
c->global = new_config;
c->protocol = pr;
c->name = pr->name;
+ c->preference = pr->preference;
c->class = class;
c->out_filter = FILTER_REJECT;
c->table = c->global->master_rtc;
diff --git a/nest/protocol.h b/nest/protocol.h
index 3766e15e..a83c4ffc 100644
--- a/nest/protocol.h
+++ b/nest/protocol.h
@@ -39,6 +39,7 @@ struct protocol {
char *template; /* Template for automatic generation of names */
int name_counter; /* Counter for automatic name generation */
int attr_class; /* Attribute class known to this protocol */
+ unsigned preference; /* Default protocol preference */
void (*preconfig)(struct protocol *, struct config *); /* Just before configuring */
void (*postconfig)(struct proto_config *); /* After configuring each instance */
diff --git a/nest/rt-dev.c b/nest/rt-dev.c
index 497ee808..54cb14ba 100644
--- a/nest/rt-dev.c
+++ b/nest/rt-dev.c
@@ -109,6 +109,7 @@ dev_copy_config(struct proto_config *dest, struct proto_config *src)
struct protocol proto_device = {
name: "Direct",
template: "direct%d",
+ preference: DEF_PREF_DIRECT,
init: dev_init,
reconfigure: dev_reconfigure,
copy_config: dev_copy_config