Nandita Dukkipati [off-list ref] writes:
+
+ if (tcp_packets_in_flight(tp) > tp->snd_ssthresh) {
+ if (WARN_ON(!tp->prr_cwnd))
+ tp->prr_cwnd = 1;
+ sndcnt = DIV_ROUND_UP(tp->prr_delivered * tp->snd_ssthresh,
+ tp->prr_cwnd) - tp->prr_out;
+ } else {
+ sndcnt = min_t(int, delta,
+ max_t(int, tp->prr_delivered -
tp->prr_out,
u32s here? This will likely do bad things with large enough windows.
The rest looks good to me as code, but I don't claim to fully understand the
algorithm. Perhaps a sysctl to turn it off and a linux mib counter when
it triggers would be useful in addition.
-Andi
--
ak@linux.intel.com -- Speaking for myself only