Do not stop lsrr_timer in FULL state. Use it for retransmition.
This commit is contained in:
parent
ed4a53c6a5
commit
43e75f38e7
3 changed files with 7 additions and 3 deletions
|
@ -69,7 +69,11 @@ lsrr_timer_hook(timer *timer)
|
|||
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
|
||||
|
|
|
@ -45,7 +45,6 @@ neigh_chstate(struct ospf_neighbor *n, u8 state)
|
|||
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)
|
||||
{
|
||||
|
@ -65,6 +64,7 @@ neigh_chstate(struct ospf_neighbor *n, u8 state)
|
|||
n->myimms.bit.i=1;
|
||||
tm_start(n->rxmt_timer,1); /* Or some other number ? */
|
||||
}
|
||||
if(state<NEIGHBOR_EXCHANGE) tm_stop(n->lsrr_timer);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -294,7 +294,7 @@ struct ospf_neighbor
|
|||
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 */
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue