Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F107325399
D32668.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
1 KB
Referenced Files
None
Subscribers
None
D32668.diff
View Options
diff --git a/sys/netinet/tcp_stacks/rack.c b/sys/netinet/tcp_stacks/rack.c
--- a/sys/netinet/tcp_stacks/rack.c
+++ b/sys/netinet/tcp_stacks/rack.c
@@ -14909,6 +14909,7 @@
static int32_t
rack_get_pacing_delay(struct tcp_rack *rack, struct tcpcb *tp, uint32_t len, struct rack_sendmap *rsm, uint32_t segsiz)
{
+ uint64_t srtt;
int32_t slot = 0;
int can_start_hw_pacing = 1;
int err;
@@ -14921,7 +14922,7 @@
* quicker then possible. But thats ok we don't want
* the peer to have a gap in data sending.
*/
- uint32_t srtt, cwnd, tr_perms = 0;
+ uint64_t cwnd, tr_perms = 0;
int32_t reduce = 0;
old_method:
@@ -14971,7 +14972,7 @@
rack_log_pacing_delay_calc(rack, len, slot, tr_perms, reduce, 0, 7, __LINE__, NULL, 0);
} else {
uint64_t bw_est, res, lentim, rate_wanted;
- uint32_t orig_val, srtt, segs, oh;
+ uint32_t orig_val, segs, oh;
int capped = 0;
int prev_fill;
@@ -15196,7 +15197,7 @@
srtt = rack->rc_tp->t_srtt;
else
srtt = RACK_INITIAL_RTO * HPTS_USEC_IN_MSEC; /* its in ms convert */
- if (srtt < slot) {
+ if (srtt < (uint64_t)slot) {
rack_log_pacing_delay_calc(rack, srtt, slot, rate_wanted, bw_est, lentim, 99, __LINE__, NULL, 0);
slot = srtt;
}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Mon, Jan 13, 12:48 PM (21 h, 7 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
15782152
Default Alt Text
D32668.diff (1 KB)
Attached To
Mode
D32668: tcp: The rack stack can incorrectly have an overflow when calculating a burst delay.
Attached
Detach File
Event Timeline
Log In to Comment