Fixes for SCTP compile errors on CURRENT [was Re: svn commit: r189790 - head/sys/netinet]

Garrett Cooper yanefbsd at gmail.com
Sat Mar 14 13:22:54 PDT 2009


On Sat, Mar 14, 2009 at 12:54 PM, Garrett Cooper <yanefbsd at gmail.com> wrote:
> On Sat, Mar 14, 2009 at 9:06 AM, Kostik Belousov <kostikbel at gmail.com> wrote:
>> 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:
>>>   Fixes several PR-SCTP releated bugs.
>>>    - When sending large PR-SCTP messages over a
>>>      lossy link we would incorrectly calculate the fwd-tsn
>>>    - When receiving large multipart pr-sctp packets we would
>>>      incorrectly send back a SACK that would renege improperly
>>>      on already received packets thus causing unneeded retransmissions.
>>
>> With this commit, I get
>> /usr/home/kostik/work/build/bsd/DEV/src/sys/netinet/sctp_indata.c: In function '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
===================================================================
--- 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;
 };

 /*


More information about the freebsd-current mailing list