diff options
author | rrs <rrs@FreeBSD.org> | 2009-02-20 14:33:45 +0000 |
---|---|---|
committer | rrs <rrs@FreeBSD.org> | 2009-02-20 14:33:45 +0000 |
commit | ced5185c011ce2399f410fba61a8eb76501d981c (patch) | |
tree | b5c83b5ad4963ccee3d700d83ca7f6dfda31a2ad | |
parent | 62c4509d7bd01aa6da0277cedda953846f77b0b1 (diff) | |
download | FreeBSD-src-ced5185c011ce2399f410fba61a8eb76501d981c.zip FreeBSD-src-ced5185c011ce2399f410fba61a8eb76501d981c.tar.gz |
Fix a bug. The sending was being restricted improperly by
the max_burst. It should only be gated by cwnd in the
lower level send.
Obtained from: Michael Tuexen
MFC after: 1 week.
-rw-r--r-- | sys/netinet/sctp_output.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/netinet/sctp_output.c b/sys/netinet/sctp_output.c index eac896c..8593ee6 100644 --- a/sys/netinet/sctp_output.c +++ b/sys/netinet/sctp_output.c @@ -15014,7 +15014,7 @@ skip_preblock: } else { un_sent = ((stcb->asoc.total_output_queue_size - stcb->asoc.total_flight) + (stcb->asoc.stream_queue_cnt * sizeof(struct sctp_data_chunk))); - if (net->flight_size > (net->mtu * stcb->asoc.max_burst)) { + if (net->flight_size > net->cwnd) { queue_only = 1; SCTP_STAT_INCR(sctps_send_burst_avoid); } else if (net->flight_size > net->cwnd) { @@ -15291,7 +15291,7 @@ skip_out_eof: } else { un_sent = ((stcb->asoc.total_output_queue_size - stcb->asoc.total_flight) + (stcb->asoc.stream_queue_cnt * sizeof(struct sctp_data_chunk))); - if (net->flight_size > (net->mtu * stcb->asoc.max_burst)) { + if (net->flight_size > net->cwnd) { queue_only = 1; SCTP_STAT_INCR(sctps_send_burst_avoid); } else if (net->flight_size > net->cwnd) { |