Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 26 Aug 2016 07:49:23 +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: r304837 - head/sys/netinet
Message-ID:  <201608260749.u7Q7nNPA096550@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: tuexen
Date: Fri Aug 26 07:49:23 2016
New Revision: 304837
URL: https://svnweb.freebsd.org/changeset/base/304837

Log:
  Fix a bug, where no SACK is sent when receiving a FORWARD-TSN or
  I-FORWARD-TSN chunk before any DATA or I-DATA chunk.
  
  Thanks to Julian Cordes for finding this problem and prividing
  packetdrill scripts to reporduce the issue.
  
  MFC after: 3 days

Modified:
  head/sys/netinet/sctp_input.c

Modified: head/sys/netinet/sctp_input.c
==============================================================================
--- head/sys/netinet/sctp_input.c	Fri Aug 26 06:19:12 2016	(r304836)
+++ head/sys/netinet/sctp_input.c	Fri Aug 26 07:49:23 2016	(r304837)
@@ -5515,6 +5515,11 @@ process_control_chunks:
 					*offset = length;
 					return (NULL);
 				}
+				/*
+				 * For sending a SACK this looks like DATA
+				 * chunks.
+				 */
+				stcb->asoc.last_data_chunk_from = stcb->asoc.last_control_chunk_from;
 				sctp_handle_forward_tsn(stcb,
 				    (struct sctp_forward_tsn_chunk *)ch, &abort_flag, m, *offset);
 				if (abort_flag) {



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