Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 14 Mar 2009 13:22:52 -0700
From:      Garrett Cooper <yanefbsd@gmail.com>
To:        Kostik Belousov <kostikbel@gmail.com>
Cc:        svn-src-head@freebsd.org, Randall Stewart <rrs@freebsd.org>, svn-src-all@freebsd.org, src-committers@freebsd.org, FreeBSD Current <freebsd-current@freebsd.org>
Subject:   Fixes for SCTP compile errors on CURRENT [was Re: svn commit: r189790 - head/sys/netinet]
Message-ID:  <7d6fde3d0903141322m2171e0d9h84788db92d5eaa14@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
On Sat, Mar 14, 2009 at 12:54 PM, Garrett Cooper <yanefbsd@gmail.com> wrote=
:
> On Sat, Mar 14, 2009 at 9:06 AM, Kostik Belousov <kostikbel@gmail.com> wr=
ote:
>> On Sat, Mar 14, 2009 at 01:42:14PM +0000, Randall Stewart wrote:
>>> Author: rrs
>>> Date: Sat Mar 14 13:42:13 2009
>>> New Revision: 189790
>>> URL: http://svn.freebsd.org/changeset/base/189790
>>>
>>> Log:
>>> =A0 Fixes several PR-SCTP releated bugs.
>>> =A0 =A0- When sending large PR-SCTP messages over a
>>> =A0 =A0 =A0lossy link we would incorrectly calculate the fwd-tsn
>>> =A0 =A0- When receiving large multipart pr-sctp packets we would
>>> =A0 =A0 =A0incorrectly send back a SACK that would renege improperly
>>> =A0 =A0 =A0on already received packets thus causing unneeded retransmis=
sions.
>>
>> With this commit, I get
>> /usr/home/kostik/work/build/bsd/DEV/src/sys/netinet/sctp_indata.c: In fu=
nction 'sctp_express_handle_sack':
>> /usr/home/kostik/work/build/bsd/DEV/src/sys/netinet/sctp_indata.c:4772: =
error: 'struct sctp_data_chunkrec' has no member named 'fwd_tsn_cnt'
>> /usr/home/kostik/work/build/bsd/DEV/src/sys/netinet/sctp_indata.c:4773: =
error: 'struct sctp_data_chunkrec' has no member named 'fwd_tsn_cnt'
>> /usr/home/kostik/work/build/bsd/DEV/src/sys/netinet/sctp_indata.c:4775: =
error: 'struct sctp_data_chunkrec' has no member named 'fwd_tsn_cnt'
>
> As do I.
> -Garrett

The attached patch fixes all SCTP related compile errors, but I'm a
bit worried about whether or not discard_rest is set anywhere in the
code, or the entire data struct is properly zero'ed out (haven't
inspected it yet):

Thanks,
-Garrett

Index: sys/netinet/sctp_structs.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- sys/netinet/sctp_structs.h	(revision 189829)
+++ sys/netinet/sctp_structs.h	(working copy)
@@ -31,7 +31,7 @@
 /* $KAME: sctp_structs.h,v 1.13 2005/03/06 16:04:18 itojun Exp $	 */

 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
+__FBSDID("$FreeBSD: src/sys/netinet/sctp_structs.h,v 1.30 2009/02/20
15:03:54 rrs Exp $");

 #ifndef __sctp_structs_h__
 #define __sctp_structs_h__
@@ -310,6 +310,8 @@
 	/* ECN Nonce: Nonce Value for this chunk */
 	uint8_t ect_nonce;

+        uint8_t fwd_tsn_cnt;
+
 	/*
 	 * part of the Highest sacked algorithm to be able to stroke counts
 	 * on ones that are FR'd.
@@ -445,6 +447,7 @@
 	uint8_t pr_sctp_on;
 	uint8_t sender_all_done;
 	uint8_t put_last_out;
+	uint8_t discard_rest;
 };

 /*



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