Work on hello continues.
This commit is contained in:
parent
36bbfc704c
commit
93bde8dce2
1 changed files with 27 additions and 4 deletions
|
@ -118,15 +118,39 @@ ospf_iface_clasify(struct iface *ifa)
|
||||||
void
|
void
|
||||||
wait_timer_hook(timer *timer)
|
wait_timer_hook(timer *timer)
|
||||||
{
|
{
|
||||||
debug(" OSPF: Wait timer expired for interface %s.\n",
|
struct ospf_iface *ifa;
|
||||||
((struct ospf_iface *)(timer->data))->iface->name);
|
|
||||||
|
ifa=(struct ospf_iface *)timer->data;
|
||||||
|
debug(" OSPF: Wait timer fired on interface %s.\n",
|
||||||
|
ifa->iface->name);
|
||||||
|
if(ifa->state=OSPF_IS_WAITING)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* Wait time fired. Now we must change state
|
||||||
|
* to DR or DROTHER depending on priority
|
||||||
|
*/
|
||||||
|
if(ifa->priority!=0)
|
||||||
|
{
|
||||||
|
debug(" OSPF: Changing state into DR.\n");
|
||||||
|
ifa->state=OSPF_IS_DR;
|
||||||
|
ifa->drip=ifa->iface->ip;
|
||||||
|
/* FIXME: Set ifa->drid */
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
debug(" OSPF: Changing state into DROTHER.\n");
|
||||||
|
ifa->state=OSPF_IS_DROTHER;
|
||||||
|
}
|
||||||
|
/* FIXME: Add hello timer */
|
||||||
|
}
|
||||||
|
/* FIXME: Destroy timer */
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
add_wait_timer(struct ospf_iface *ifa,pool *pool, int wait)
|
add_wait_timer(struct ospf_iface *ifa,pool *pool, int wait)
|
||||||
{
|
{
|
||||||
DBG(" OSPF: add_wait_timer called.\n");
|
DBG(" OSPF: add_wait_timer called.\n");
|
||||||
if((ifa->type!=OSPF_IT_PTP) && (ifa->priority>0))
|
if((ifa->type!=OSPF_IT_PTP))
|
||||||
{
|
{
|
||||||
ifa->wait_timer=tm_new(pool);
|
ifa->wait_timer=tm_new(pool);
|
||||||
ifa->wait_timer->hook=wait_timer_hook;
|
ifa->wait_timer->hook=wait_timer_hook;
|
||||||
|
@ -183,7 +207,6 @@ ospf_if_notify(struct proto *p, unsigned flags, struct iface *new, struct iface
|
||||||
c=(struct ospf_config *)(p->cf);
|
c=(struct ospf_config *)(p->cf);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
DBG(" OSPF: If notify called\n");
|
DBG(" OSPF: If notify called\n");
|
||||||
|
|
||||||
if((flags & IF_CHANGE_UP) && is_good_iface(p, new))
|
if((flags & IF_CHANGE_UP) && is_good_iface(p, new))
|
||||||
|
|
Loading…
Reference in a new issue