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

From: Garrett Cooper <yanefbsd_at_gmail.com>
Date: Sat, 14 Mar 2009 13:22:52 -0700
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)
_at__at_ -31,7 +31,7 _at__at_
 /* $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__
_at__at_ -310,6 +310,8 _at__at_
 	/* 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.
_at__at_ -445,6 +447,7 _at__at_
 	uint8_t pr_sctp_on;
 	uint8_t sender_all_done;
 	uint8_t put_last_out;
+	uint8_t discard_rest;
 };

 /*
Received on Sat Mar 14 2009 - 19:22:53 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:44 UTC