net: tcp: Fix up the receive window
authorBarret Rhoden <brho@cs.berkeley.edu>
Tue, 18 Jul 2017 13:36:53 +0000 (09:36 -0400)
committerBarret Rhoden <brho@cs.berkeley.edu>
Fri, 21 Jul 2017 15:56:27 +0000 (11:56 -0400)
commit34b57464c3109f77f5f9dd4257dda089c7a5b3d3
treec25f5c4f33cd078d4a4062f4f4c105ba3a5aee3a
parent2028c3140cf5398d2d790b44faef6855504b1665
net: tcp: Fix up the receive window

There are a few things involved:

1) Plan 9 had a bug setting tcb->window.  We need to use rcv.scale, not
snd.scale.

2) QIO limits do nothing for the TCP receive queue.  All that qsetlimit and
qopen business is just tricking us into thinking it does something.

3) Our window scale was based on the bandwidth.  You actually want the BDP,
but you can't know that early on, and it's all heuristics.  Just going with
'7' is fine.  '3' is way too low; it leads to at most 512 KB in flight,
which is practically nothing.  Maybe we'll revisit this.

We're still doing no real management of the maximum receive window.  Plan 9
never really did that either.  The downside to this is that we promise to
receive and buffer that much data in RAM until the application drains it.
If this becomes an issue, we can change or tune it.

Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
kern/src/net/tcp.c