Hello!
> if (decr && tp->snd_cwnd > tp->snd_ssthresh/2)
> tp->snd_cwnd -= decr;
>
> Unfortunately, snd_ssthresh has already been halved at this
> point, so the test actually does nothing.
It does the thing which it is supposed to do: prevents reducing cwnd below
1/4 of original one. This was proposed in one of rete-halving related drafts
with title sort of "...boundary checks...", I forgot exact title, can find
it if you are curious.
> if (decr && tp->snd_cwnd > tp->snd_ssthresh)
Maybe this is even correct, but I do not see why it can be essential.
cwnd falls too low not due to decrementing due to rate-halving,
but due to draining out in_flight when we are not able to keep pipe full.
Please, show.
Alexey
|