Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 27 Jul 2009 13:41:46 +0000 (UTC)
From:      Michael Tuexen <tuexen@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r195906 - head/sys/netinet
Message-ID:  <200907271341.n6RDfk8H001968@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: tuexen
Date: Mon Jul 27 13:41:45 2009
New Revision: 195906
URL: http://svn.freebsd.org/changeset/base/195906

Log:
  Fix the handling of unordered messages when using
  PR-SCTP.
  
  Approved by: re, rrs (mentor)
  MFC after: 3 weeks.

Modified:
  head/sys/netinet/sctp_indata.c

Modified: head/sys/netinet/sctp_indata.c
==============================================================================
--- head/sys/netinet/sctp_indata.c	Mon Jul 27 13:36:35 2009	(r195905)
+++ head/sys/netinet/sctp_indata.c	Mon Jul 27 13:41:45 2009	(r195906)
@@ -5923,7 +5923,13 @@ sctp_flush_reassm_for_str_seq(struct sct
 		chk = TAILQ_FIRST(&asoc->reasmqueue);
 		while (chk) {
 			at = TAILQ_NEXT(chk, sctp_next);
-			if (chk->rec.data.stream_number != stream) {
+			/*
+			 * Do not toss it if on a different stream or marked
+			 * for unordered delivery in which case the stream
+			 * sequence number has no meaning.
+			 */
+			if ((chk->rec.data.stream_number != stream) ||
+			    ((chk->rec.data.rcv_flags & SCTP_DATA_UNORDERED) == SCTP_DATA_UNORDERED)) {
 				chk = at;
 				continue;
 			}



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200907271341.n6RDfk8H001968>