On Wed, 27 Oct 2004 23:15:48 -0700
"Meda, Prasanna" <pmeda@xxxxxxxxxx> wrote:
> Thanks, still it is unclear to me why are we
> downsizing the advertised window(rcv_wnd) to cwnd?
> To defeat disobeying sender, or something like below?
There is never any reason to advertise a receive window
larger than the initial congestion window of the sender
could ever be.
Setting it properly like this also makes sure that we do
receive window update events at just the right place as
the sender starts sending us the initial data frames.
> And also in the following line,
> if (*rcv_wscale && sysctl_tcp_app_win && space>=mss &&
> space - max((space>>sysctl_tcp_app_win),
> mss>>*rcv_wscale) <
> space is actual_space>>rcv_wscale, mss is actual value.
> Why are we checking space>=mss, which are in different
> scales? The second line is doing max on space and mss
> on same scales, and looks right.
Yep, that space>=mss test looks super buggy for the *rcv_wscale
not zero case.
Good thing we don't have this buggy code in 2.6.x any more.
It's only present in 2.4.x