Fixed many bugs in rt calculation and interface adding. Now it seems to be
OK, I'm going to advertise 1.0.4.
This commit is contained in:
parent
b02e40111e
commit
52fa3e3869
4 changed files with 6 additions and 2 deletions
|
@ -173,7 +173,6 @@ ospf_int_sm(struct ospf_iface *ifa, int event)
|
||||||
restart_waittim(ifa);
|
restart_waittim(ifa);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
addifa_rtlsa(ifa);
|
|
||||||
}
|
}
|
||||||
schedule_rt_lsa(ifa->oa);
|
schedule_rt_lsa(ifa->oa);
|
||||||
break;
|
break;
|
||||||
|
@ -403,6 +402,7 @@ ospf_if_notify(struct proto *p, unsigned flags, struct iface *iface)
|
||||||
lock->iface = iface;
|
lock->iface = iface;
|
||||||
lock->data = ifa;
|
lock->data = ifa;
|
||||||
lock->hook = ospf_ifa_add;
|
lock->hook = ospf_ifa_add;
|
||||||
|
addifa_rtlsa(ifa);
|
||||||
olock_acquire(lock);
|
olock_acquire(lock);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,6 +22,8 @@ flood_lsa(struct ospf_neighbor *n, struct ospf_lsa_header *hn,
|
||||||
/* pg 148 */
|
/* pg 148 */
|
||||||
WALK_LIST(NODE ifa,po->iface_list)
|
WALK_LIST(NODE ifa,po->iface_list)
|
||||||
{
|
{
|
||||||
|
if(ifa->stub) continue;
|
||||||
|
|
||||||
if(hh->type==LSA_T_EXT)
|
if(hh->type==LSA_T_EXT)
|
||||||
{
|
{
|
||||||
if(ifa->type==OSPF_IT_VLINK) continue;
|
if(ifa->type==OSPF_IT_VLINK) continue;
|
||||||
|
|
|
@ -355,8 +355,10 @@ ospf_rt_notify(struct proto *p, net *n, rte *new, rte *old, ea_list *attrs)
|
||||||
{
|
{
|
||||||
struct proto_ospf *po=(struct proto_ospf *)p;
|
struct proto_ospf *po=(struct proto_ospf *)p;
|
||||||
|
|
||||||
|
/* Temporarily down write anythink
|
||||||
OSPF_TRACE(D_EVENTS, "Got route %I/%d %s", p->name, n->n.prefix,
|
OSPF_TRACE(D_EVENTS, "Got route %I/%d %s", p->name, n->n.prefix,
|
||||||
n->n.pxlen, new ? "up" : "down");
|
n->n.pxlen, new ? "up" : "down");
|
||||||
|
*/
|
||||||
|
|
||||||
if(new) /* Got some new route */
|
if(new) /* Got some new route */
|
||||||
{
|
{
|
||||||
|
|
|
@ -400,7 +400,7 @@ ospf_ext_spfa(struct proto_ospf *po) /* FIXME looking into inter-area */
|
||||||
|
|
||||||
if((nn=neigh_find(p,<->fwaddr,0))!=NULL)
|
if((nn=neigh_find(p,<->fwaddr,0))!=NULL)
|
||||||
{
|
{
|
||||||
nnh=IPA_NONE;
|
nnh=lt->fwaddr;
|
||||||
nnhi=nn->iface;
|
nnhi=nn->iface;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in a new issue