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);
|
||||
}
|
||||
|
||||
void
|
||||
add_hello_timer(struct ospf_iface *ifa)
|
||||
{
|
||||
struct proto *p;
|
||||
p=(struct proto *)(ifa->proto);
|
||||
|
||||
}
|
||||
|
||||
void
|
||||
wait_timer_hook(timer *timer)
|
||||
{
|
||||
|
@ -296,6 +288,7 @@ wait_timer_hook(timer *timer)
|
|||
/*
|
||||
* Wait time fired. Now we must change state
|
||||
* to DR or DROTHER depending on priority
|
||||
* FIXME: I can be also BDR
|
||||
*/
|
||||
if(ifa->priority!=0)
|
||||
{
|
||||
|
@ -303,6 +296,7 @@ wait_timer_hook(timer *timer)
|
|||
|
||||
ifa->state=OSPF_IS_DR;
|
||||
ifa->drip=ifa->iface->addr->ip;
|
||||
ifa->drid=p->cf->global->router_id;
|
||||
/* FIXME: Set ifa->drid */
|
||||
}
|
||||
else
|
||||
|
@ -343,7 +337,7 @@ ospf_add_timers(struct ospf_iface *ifa, pool *pool, int wait)
|
|||
ifa->wait_timer->recurrent=0;
|
||||
ifa->wait_timer->expires=0;
|
||||
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(": Installing wait timer.\n");
|
||||
}
|
||||
|
|
|
@ -70,8 +70,7 @@ struct ospf_iface {
|
|||
#define PRIORITY_D 1
|
||||
#define HELLOINT_D 10
|
||||
#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 {
|
||||
|
@ -113,4 +112,24 @@ struct ospf_hello_packet {
|
|||
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_ */
|
||||
|
|
Loading…
Reference in a new issue