On Mon, Aug 13, 2001 at 11:55:31PM -0700, Nivedita Singhvi wrote:
> If the client has disabled TCP_QUICKACKS via setsockopt()
> on this socket (i.e. tp->ack.pingpong = 1), we'll fall
> through to this code when completing the 3 way handshake
> from TCP_SYN_SENT state. However, tcp_enter_quickack_mode(tp)
> unconditionally resets tp->ack.pingpong to 0, of course.
> Subsequent acks will be quick acks, rather than delayed
> acks, as hoped. Or what am I missing here?
The quickack should be only send on the next incoming packet, which
is effectively the delayed ack needed.
> Is tp->ack.pingpong not intended to store the user choice
> of "dont/do quick ack" as set by TCP_QUICKACKS? We reset
> it (pingpong) when we receive data that fills our
> out of order queue, or receive out of order/window or retransmitted
> data, so it doesnt seem to be the case..
I think TCP_QUICKACKS was an afterthought which never completely worked.
The real purpose of pingpong is to safe the state of the pingping heuristic.
Best would be probably to either remove TCP_QUICKACKS or make it a separate
> Any clarification here would be appreciated!
> On an unconnected note, why are there 2 mailing lists, linux-net
> and netdev? Is one deprecated, or preferred?
linux-net has been historically been more user support oriented and included
non kernel things, while netdev is strictly aimed at kernel development
These days linux-net traffic is so low (it used to have much more
"support" traffic) that it doesn't make much difference anymore; but
it is probably still a good idea to e.g. send patches to netdev
instead of linux-net.