OSPF: DD seqnum should be initialized only for first attempts
After SeqNumberMismatch/BadLSReq, we should continue with the old seqnum++. The old code tries to do that by n->adj, but it was set nowhere.
This commit is contained in:
parent
267da8138d
commit
9c94583a3d
2 changed files with 2 additions and 3 deletions
|
@ -176,8 +176,8 @@ ospf_neigh_chstate(struct ospf_neighbor *n, u8 state)
|
||||||
|
|
||||||
if (state == NEIGHBOR_EXSTART)
|
if (state == NEIGHBOR_EXSTART)
|
||||||
{
|
{
|
||||||
/* First time adjacency */
|
/* First time adjacency attempt */
|
||||||
if (n->adj == 0)
|
if (old_state < NEIGHBOR_EXSTART)
|
||||||
n->dds = random_u32();
|
n->dds = random_u32();
|
||||||
|
|
||||||
n->dds++;
|
n->dds++;
|
||||||
|
|
|
@ -353,7 +353,6 @@ struct ospf_neighbor
|
||||||
u32 rid; /* Router ID */
|
u32 rid; /* Router ID */
|
||||||
ip_addr ip; /* IP of it's interface */
|
ip_addr ip; /* IP of it's interface */
|
||||||
u8 priority; /* Priority */
|
u8 priority; /* Priority */
|
||||||
u8 adj; /* built adjacency? */
|
|
||||||
u32 options; /* Options received */
|
u32 options; /* Options received */
|
||||||
|
|
||||||
/* Entries dr and bdr store IP addresses in OSPFv2 and router IDs in
|
/* Entries dr and bdr store IP addresses in OSPFv2 and router IDs in
|
||||||
|
|
Loading…
Reference in a new issue