struct ospf_neigbor added. Neigbor state machine implementation can start.
This commit is contained in:
parent
65112dd270
commit
c76674f0e9
2 changed files with 24 additions and 11 deletions
|
@ -273,14 +273,6 @@ hello_timer_hook(timer *timer)
|
||||||
p->name, ifa->iface->name);
|
p->name, ifa->iface->name);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
|
||||||
add_hello_timer(struct ospf_iface *ifa)
|
|
||||||
{
|
|
||||||
struct proto *p;
|
|
||||||
p=(struct proto *)(ifa->proto);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
wait_timer_hook(timer *timer)
|
wait_timer_hook(timer *timer)
|
||||||
{
|
{
|
||||||
|
@ -296,6 +288,7 @@ wait_timer_hook(timer *timer)
|
||||||
/*
|
/*
|
||||||
* Wait time fired. Now we must change state
|
* Wait time fired. Now we must change state
|
||||||
* to DR or DROTHER depending on priority
|
* to DR or DROTHER depending on priority
|
||||||
|
* FIXME: I can be also BDR
|
||||||
*/
|
*/
|
||||||
if(ifa->priority!=0)
|
if(ifa->priority!=0)
|
||||||
{
|
{
|
||||||
|
@ -303,6 +296,7 @@ wait_timer_hook(timer *timer)
|
||||||
|
|
||||||
ifa->state=OSPF_IS_DR;
|
ifa->state=OSPF_IS_DR;
|
||||||
ifa->drip=ifa->iface->addr->ip;
|
ifa->drip=ifa->iface->addr->ip;
|
||||||
|
ifa->drid=p->cf->global->router_id;
|
||||||
/* FIXME: Set ifa->drid */
|
/* FIXME: Set ifa->drid */
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -343,7 +337,7 @@ ospf_add_timers(struct ospf_iface *ifa, pool *pool, int wait)
|
||||||
ifa->wait_timer->recurrent=0;
|
ifa->wait_timer->recurrent=0;
|
||||||
ifa->wait_timer->expires=0;
|
ifa->wait_timer->expires=0;
|
||||||
ifa->state=OSPF_IS_WAITING;
|
ifa->state=OSPF_IS_WAITING;
|
||||||
tm_start(ifa->wait_timer,(wait!=0 ? wait : WAIT_D));
|
tm_start(ifa->wait_timer,(wait!=0 ? wait : WAIT_DMH*ifa->helloint));
|
||||||
DBG(p->name);
|
DBG(p->name);
|
||||||
DBG(": Installing wait timer.\n");
|
DBG(": Installing wait timer.\n");
|
||||||
}
|
}
|
||||||
|
|
|
@ -70,8 +70,7 @@ struct ospf_iface {
|
||||||
#define PRIORITY_D 1
|
#define PRIORITY_D 1
|
||||||
#define HELLOINT_D 10
|
#define HELLOINT_D 10
|
||||||
#define DEADINT_D 4
|
#define DEADINT_D 4
|
||||||
#define WAIT_D 20 /* Value of Wait timer - I didn't found it in RFC */
|
#define WAIT_DMH 2 /* Value of Wait timer - not found it in RFC - using 2*HELLO */
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
struct ospf_sock {
|
struct ospf_sock {
|
||||||
|
@ -113,4 +112,24 @@ struct ospf_hello_packet {
|
||||||
u32 bdr;
|
u32 bdr;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* FIXME: int is not a good idea */
|
||||||
|
struct ospf_neighbor
|
||||||
|
{
|
||||||
|
int state;
|
||||||
|
#define NEIGHBOR_DOWN 0
|
||||||
|
#define NEIGHBOR_INIT 1
|
||||||
|
#define NEIGHBOR_2WAY 2
|
||||||
|
#define NEIGHBOR_ATTEMPT 3
|
||||||
|
#define NEIGHBOR_EXSTART 4
|
||||||
|
timer *inactim; /* Inactivity timer */
|
||||||
|
int ms; /* Master/slave */
|
||||||
|
int dds; /* DD Sequence number being sentg */
|
||||||
|
int ddr; /* last Dat Des packet */
|
||||||
|
u32 rid; /* Router ID */
|
||||||
|
int pri; /* Priority */
|
||||||
|
int options; /* Options */
|
||||||
|
u32 dr; /* Neigbour's idea of DR */
|
||||||
|
u32 bdr; /* Neigbour's idea of BDR */
|
||||||
|
};
|
||||||
|
|
||||||
#endif /* _BIRD_OSPF_H_ */
|
#endif /* _BIRD_OSPF_H_ */
|
||||||
|
|
Loading…
Reference in a new issue