ospf6d: increment dbdesc seqnum on SeqNumberMismatch/BadLsReq event

As per RFC 2328, section 10.3, if the neighbor state machine reaches
SeqNumberMismatch state when the NSM is in state Exchange or greater,
"router increments the DD sequence number in the neighbor data structure,
declares itself master (sets the master/slave bit to master), and starts
sending Database Description Packets, with the initialize (I), more (M)
and master (MS) bits set.".

The existing code doesn't increment the DD SeqNum. This patch fixes that.

Signed-off-by: Dinesh G Dutt <ddutt at cumulusnetworks.com>
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
This commit is contained in:
Dinesh Dutt 2013-08-25 03:03:15 +00:00 committed by David Lamparter
parent 7a10a359e9
commit 931b1b8c9a

View File

@ -484,6 +484,8 @@ seqnumber_mismatch (struct thread *thread)
}
THREAD_OFF (on->thread_send_dbdesc);
on->dbdesc_seqnum++; /* Incr seqnum as per RFC2328, sec 10.3 */
on->thread_send_dbdesc =
thread_add_event (master, ospf6_dbdesc_send, on, 0);
@ -520,6 +522,8 @@ bad_lsreq (struct thread *thread)
}
THREAD_OFF (on->thread_send_dbdesc);
on->dbdesc_seqnum++; /* Incr seqnum as per RFC2328, sec 10.3 */
on->thread_send_dbdesc =
thread_add_event (master, ospf6_dbdesc_send, on, 0);