From owner-cvs-all@FreeBSD.ORG Sat Nov 11 15:59:03 2006 Return-Path: X-Original-To: cvs-all@FreeBSD.org Delivered-To: cvs-all@FreeBSD.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 3B66716A403; Sat, 11 Nov 2006 15:59:03 +0000 (UTC) (envelope-from rrs@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id F37C343D53; Sat, 11 Nov 2006 15:59:02 +0000 (GMT) (envelope-from rrs@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id kABFx20a080672; Sat, 11 Nov 2006 15:59:02 GMT (envelope-from rrs@repoman.freebsd.org) Received: (from rrs@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id kABFx2ZE080667; Sat, 11 Nov 2006 15:59:02 GMT (envelope-from rrs) Message-Id: <200611111559.kABFx2ZE080667@repoman.freebsd.org> From: Randall Stewart Date: Sat, 11 Nov 2006 15:59:02 +0000 (UTC) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Cc: Subject: cvs commit: src/sys/netinet sctp_constants.h sctp_indata.c sctp_input.c sctp_output.c sctp_uio.h sctputil.c sctputil.h X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the entire tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 11 Nov 2006 15:59:03 -0000 rrs 2006-11-11 15:59:02 UTC FreeBSD src repository Modified files: sys/netinet sctp_constants.h sctp_indata.c sctp_input.c sctp_output.c sctp_uio.h sctputil.c sctputil.h Log: Turns out we would reset the TSN seq counter during a colliding INIT. This if fine except when we have data outstanding... we basically reset it to the previous value it was.. so then we end up assigning the same TSN to two different data chunks. This patch: 1) Finds a missing lock for when we change the stream numbers during COOKIE and INIT-ACK processing.. we were NOT locking the send_buffer.. which COULD cause problems (found by inspection looking for <2>) 2) Fixes a case during a colliding INIT where we incorrectly reset the sending Sequence thus in some cases duplicately assigning a TSN. 3) Additional enhancments to logging so we can see strm/tsn in the receiver AND new tracking to watch what the sender is doing with TSN and STRM seq's. Approved by: gnn Revision Changes Path 1.2 +3 -1 src/sys/netinet/sctp_constants.h 1.4 +2 -2 src/sys/netinet/sctp_indata.c 1.7 +23 -7 src/sys/netinet/sctp_input.c 1.5 +14 -8 src/sys/netinet/sctp_output.c 1.4 +2 -0 src/sys/netinet/sctp_uio.h 1.6 +5 -1 src/sys/netinet/sctputil.c 1.3 +1 -1 src/sys/netinet/sctputil.h