svn commit: r271672 - head/sys/netinet
Michael Tuexen
tuexen at FreeBSD.org
Tue Sep 16 13:48:46 UTC 2014
Author: tuexen
Date: Tue Sep 16 13:48:46 2014
New Revision: 271672
URL: http://svnweb.freebsd.org/changeset/base/271672
Log:
Small cleanup which addresses a warning regaring the truncation
of a 64-bit entity to a 32-bit entity. This issue was reported by
Peter Kasting from Google.
MFC after: 3 days
Modified:
head/sys/netinet/sctp_cc_functions.c
Modified: head/sys/netinet/sctp_cc_functions.c
==============================================================================
--- head/sys/netinet/sctp_cc_functions.c Tue Sep 16 11:07:25 2014 (r271671)
+++ head/sys/netinet/sctp_cc_functions.c Tue Sep 16 13:48:46 2014 (r271672)
@@ -1130,12 +1130,9 @@ sctp_cwnd_update_after_packet_dropped(st
uint32_t * bottle_bw, uint32_t * on_queue)
{
uint32_t bw_avail;
- int rtt;
unsigned int incr;
int old_cwnd = net->cwnd;
- /* need real RTT in msd for this calc */
- rtt = net->rtt / 1000;
/* get bottle neck bw */
*bottle_bw = ntohl(cp->bottle_bw);
/* and whats on queue */
@@ -1144,10 +1141,11 @@ sctp_cwnd_update_after_packet_dropped(st
* adjust the on-queue if our flight is more it could be that the
* router has not yet gotten data "in-flight" to it
*/
- if (*on_queue < net->flight_size)
+ if (*on_queue < net->flight_size) {
*on_queue = net->flight_size;
- /* calculate the available space */
- bw_avail = (*bottle_bw * rtt) / 1000;
+ }
+ /* rtt is measured in micro seconds, bottle_bw in bytes per second */
+ bw_avail = (uint32_t) (((uint64_t) (*bottle_bw) * net->rtt) / (uint64_t) 1000000);
if (bw_avail > *bottle_bw) {
/*
* Cap the growth to no more than the bottle neck. This can
@@ -1167,7 +1165,6 @@ sctp_cwnd_update_after_packet_dropped(st
int seg_inflight, seg_onqueue, my_portion;
net->partial_bytes_acked = 0;
-
/* how much are we over queue size? */
incr = *on_queue - bw_avail;
if (stcb->asoc.seen_a_sack_this_pkt) {
More information about the svn-src-head
mailing list