summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Mares <mj@ucw.cz>2000-01-18 11:01:03 +0000
committerMartin Mares <mj@ucw.cz>2000-01-18 11:01:03 +0000
commit3ea1ba632b3cdb5005a9339fd5e74d5f93631a48 (patch)
treea14df52aecd4a2fad742f47eed0682fb1044c8a2
parent54aaa89ada2d048c64a5afd58844bc395b1a3cfe (diff)
Killed protocol->priority. Protocol startup should be clean and hack-free now.
It seems everything still works (except for disable/enable/restart which hangs sometimes, but it's another story).
-rw-r--r--TODO3
-rw-r--r--nest/proto.c21
-rw-r--r--nest/protocol.h1
-rw-r--r--nest/rt-dev.c1
-rw-r--r--sysdep/unix/krt.c2
5 files changed, 3 insertions, 25 deletions
diff --git a/TODO b/TODO
index ff549a56..2b752ac3 100644
--- a/TODO
+++ b/TODO
@@ -27,10 +27,9 @@ Core
- config: when parsing prefix, check zero bits
- config: useless rules when protocols disabled
- config: better datetime format
+- config: long disable/enable/restart sequences hang
- krt: rescan interfaces when route addition fails?
-- krt: does PERSIST mode have any sense if kernel syncer is shut down as last?
-- krt: check behaviour wrt. reconfiguration of routing tables
- tagging of external routes?
diff --git a/nest/proto.c b/nest/proto.c
index 81f3bd77..da758665 100644
--- a/nest/proto.c
+++ b/nest/proto.c
@@ -49,17 +49,7 @@ static void proto_rethink_goal(struct proto *p);
static void
proto_enqueue(list *l, struct proto *p)
{
- int pri = p->proto->priority;
-
- if (!pri)
- add_tail(l, &p->n);
- else
- {
- struct proto *q = HEAD(*l);
- while (q->n.next && q->proto->priority >= pri)
- q = (struct proto *) q->n.next;
- insert_node(&p->n, q->n.prev);
- }
+ add_tail(l, &p->n);
p->last_state_change = now;
}
@@ -324,7 +314,7 @@ protos_dump_all(void)
WALK_LIST(p, active_proto_list)
{
- debug(" protocol %s (pri=%d): state %s/%s\n", p->name, p->proto->priority,
+ debug(" protocol %s state %s/%s\n", p->name,
p_states[p->proto_state], c_states[p->core_state]);
if (p->in_filter)
debug("\tInput filter: %s\n", filter_name(p->in_filter));
@@ -424,13 +414,6 @@ proto_notify_state(struct proto *p, unsigned ps)
ASSERT(ops == PS_DOWN || ops == PS_START);
ASSERT(cs == FS_HUNGRY);
DBG("%s: Scheduling meal\n", p->name);
- if (p->proto->priority) /* FIXME: Terrible hack to get synchronous device/kernel startup! */
- {
- p->proto_state = ps;
- p->core_state = FS_FEEDING;
- proto_feed(p);
- return;
- }
cs = FS_FEEDING;
p->attn->hook = proto_feed;
ev_schedule(p->attn);
diff --git a/nest/protocol.h b/nest/protocol.h
index 5564cdb8..f1afb532 100644
--- a/nest/protocol.h
+++ b/nest/protocol.h
@@ -35,7 +35,6 @@ struct protocol {
char *name;
char *template; /* Template for automatic generation of names */
unsigned debug; /* Default debugging flags */
- int priority; /* Protocol priority (usually 0) */
int name_counter; /* Counter for automatic name generation */
void (*preconfig)(struct protocol *, struct config *); /* Just before configuring */
diff --git a/nest/rt-dev.c b/nest/rt-dev.c
index 89b22502..b9253ccb 100644
--- a/nest/rt-dev.c
+++ b/nest/rt-dev.c
@@ -89,7 +89,6 @@ dev_reconfigure(struct proto *p, struct proto_config *new)
struct protocol proto_device = {
name: "Direct",
template: "direct%d",
- priority: 90,
init: dev_init,
reconfigure: dev_reconfigure
};
diff --git a/sysdep/unix/krt.c b/sysdep/unix/krt.c
index 110ded08..55986f0e 100644
--- a/sysdep/unix/krt.c
+++ b/sysdep/unix/krt.c
@@ -161,7 +161,6 @@ kif_reconfigure(struct proto *p, struct proto_config *new)
struct protocol proto_unix_iface = {
name: "Device",
template: "device%d",
- priority: 100,
preconfig: kif_preconfig,
init: kif_init,
start: kif_start,
@@ -801,7 +800,6 @@ krt_reconfigure(struct proto *p, struct proto_config *new)
struct protocol proto_unix_kernel = {
name: "Kernel",
template: "kernel%d",
- priority: 80,
preconfig: krt_preconfig,
postconfig: krt_postconfig,
init: krt_init,