p=(struct proto *)(ifa->proto);
debug("%s: LSRR timer fired on interface %s for neigh: %I.\n",
p->name, ifa->iface->name, n->rid);
- ospf_lsreq_tx(n);
+ if(n->state<NEIGHBOR_FULL) ospf_lsreq_tx(n);
+ else
+ {
+ int i; /* FIXME Retransmit lsupd again */
+ }
}
void
ifa->fadj++;
originate_rt_lsa(n->ifa->oa,n->ifa->oa->po);
originate_net_lsa(ifa,ifa->oa->po);
- tm_stop(n->lsrr_timer);
}
if(oldstate>=NEIGHBOR_EXSTART && state<NEIGHBOR_EXSTART)
{
n->myimms.bit.i=1;
tm_start(n->rxmt_timer,1); /* Or some other number ? */
}
+ if(state<NEIGHBOR_EXCHANGE) tm_stop(n->lsrr_timer);
}
}
struct top_graph *lsrth;
void *ldbdes; /* Last database description packet */
timer *rxmt_timer; /* RXMT timer */
- timer *lsrr_timer; /* Link state requiest retransmition timer */
+ timer *lsrr_timer; /* Link state request retransmition timer */
list ackl;
timer *ackd_timer; /* Delayed ack timer */
};