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

Randall Stewart rrs at lakerest.net
Sat Mar 14 16:17:52 PDT 2009


Garret:

That was my bad..

I missed a file on the commit (sctp_structs.h).. Its now committed :-)

As far as it being set.. of course it is.. basically the flag
is used for large messages when doing PR-SCTP (something that is  
probably
not wise.. but I had someone in Chile doing this).. and it highlighted
a few problems in the way PR-SCTP with large messages worked...

Still an issue that will cause a print out if you do mixed mode
sending PR-SCTP and reliable SCTP.. I need to hunt that down.. its a
flight size accounting problem that the audit code catches and fixes..  
but
I need to figure out what's going on with that :-D

R
On Mar 14, 2009, at 4:22 PM, Garrett Cooper wrote:

> 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;
> };
>
> /*
>

------------------------------
Randall Stewart
803-317-4952 (cell)
803-345-0391(direct)



More information about the freebsd-current mailing list