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