From: Dinesh Dutt Date: Sun, 25 Aug 2013 03:03:15 +0000 (+0000) Subject: ospf6d: increment dbdesc seqnum on SeqNumberMismatch/BadLsReq event X-Git-Tag: frr-2.0-rc1~1628^2~13 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=931b1b8c9a612665391ed43653c970fcb38bbbf0;p=mirror%2Ffrr.git 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 Signed-off-by: David Lamparter --- diff --git a/ospf6d/ospf6_neighbor.c b/ospf6d/ospf6_neighbor.c index 84f0b002c4..b7d2e40dbd 100644 --- a/ospf6d/ospf6_neighbor.c +++ b/ospf6d/ospf6_neighbor.c @@ -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);