diff options
author | Ondrej Filip <feela@network.cz> | 2004-06-11 11:36:50 +0200 |
---|---|---|
committer | Ondrej Filip <feela@network.cz> | 2004-06-11 11:36:50 +0200 |
commit | 1a61882d370e6aef99ebc11d6bbc4e9dc48c6b95 (patch) | |
tree | 13654b6d8ab69989e8b0787ec702511bb2025036 /proto/ospf/ospf.c | |
parent | b1f7229ad7d0b10fcc1fde6645c8b8ebbb3644a6 (diff) | |
download | bird-1a61882d370e6aef99ebc11d6bbc4e9dc48c6b95.tar bird-1a61882d370e6aef99ebc11d6bbc4e9dc48c6b95.zip |
Better routing table calculation. We are ready to work with
multiple OSPF areas.
Diffstat (limited to 'proto/ospf/ospf.c')
-rw-r--r-- | proto/ospf/ospf.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/proto/ospf/ospf.c b/proto/ospf/ospf.c index d3067e8..aca74cb 100644 --- a/proto/ospf/ospf.c +++ b/proto/ospf/ospf.c @@ -95,10 +95,10 @@ ospf_start(struct proto *p) po->disp_timer->hook = ospf_disp; po->disp_timer->recurrent = po->tick; tm_start(po->disp_timer, 1); - - fib_init(&po->efib, p->pool, sizeof(struct extfib), 16, init_efib); init_list(&(po->iface_list)); init_list(&(po->area_list)); + fib_init(&po->rtf[0], p->pool, sizeof(ort), 16, ospf_rt_initort); + fib_init(&po->rtf[1], p->pool, sizeof(ort), 16, ospf_rt_initort); po->areano = 0; if (EMPTY_LIST(c->area_list)) { @@ -133,8 +133,6 @@ ospf_start(struct proto *p) antmp->hidden = anet->hidden; add_tail(&oa->net_list, NODE antmp); } - fib_init(&oa->infib, po->proto.pool, sizeof(struct infib), 16, - init_infib); } return PS_UP; } @@ -191,6 +189,7 @@ ospf_init(struct proto_config *c) static int ospf_rte_better(struct rte *new, struct rte *old) { + /* FIXME this is wrong */ if (new->u.ospf.metric1 == LSINFINITY) return 0; |