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 <yanef...@gmail.com> wrote:
On Sat, Mar 14, 2009 at 9:06 AM, Kostik Belousov <kostik...@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)

_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to