Page MenuHomeFreeBSD

D28326.id82830.diff
No OneTemporary

D28326.id82830.diff

Index: sys/netinet/tcp_input.c
===================================================================
--- sys/netinet/tcp_input.c
+++ sys/netinet/tcp_input.c
@@ -3948,15 +3948,21 @@
/*
* Proportional Rate Reduction
*/
- if (pipe > tp->snd_ssthresh)
- snd_cnt = (tp->sackhint.prr_delivered * tp->snd_ssthresh / tp->sackhint.recover_fs) -
- tp->sackhint.sack_bytes_rexmit;
- else {
+ if (pipe > tp->snd_ssthresh) {
+ if (tp->sackhint.recover_fs == 0)
+ tp->sackhint.recover_fs =
+ max(1, tp->snd_nxt - tp->snd_una);
+ snd_cnt = (tp->sackhint.prr_delivered * tp->snd_ssthresh /
+ tp->sackhint.recover_fs) - tp->sackhint.sack_bytes_rexmit;
+ } else {
if (V_tcp_do_prr_conservative)
- limit = tp->sackhint.prr_delivered - tp->sackhint.sack_bytes_rexmit;
+ limit = tp->sackhint.prr_delivered -
+ tp->sackhint.sack_bytes_rexmit;
else
- if ((tp->sackhint.prr_delivered - tp->sackhint.sack_bytes_rexmit) > del_data)
- limit = tp->sackhint.prr_delivered - tp->sackhint.sack_bytes_rexmit + maxseg;
+ if ((tp->sackhint.prr_delivered -
+ tp->sackhint.sack_bytes_rexmit) > del_data)
+ limit = tp->sackhint.prr_delivered -
+ tp->sackhint.sack_bytes_rexmit + maxseg;
else
limit = del_data + maxseg;
snd_cnt = min((tp->snd_ssthresh - pipe), limit);

File Metadata

Mime Type
text/plain
Expires
Sun, Mar 1, 3:11 AM (8 h, 33 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29094050
Default Alt Text
D28326.id82830.diff (1 KB)

Event Timeline