svn commit: r195906 - head/sys/netinet

Michael Tuexen tuexen at FreeBSD.org
Mon Jul 27 13:41:46 UTC 2009


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;
 			}


More information about the svn-src-all mailing list