Re: TCP_NOPUSH on FreeBSD, TCP_CORK on Linux (was: Is sendfile all that

From: Linus Torvalds (
Date: Thu Feb 08 2001 - 14:52:01 EST

In article <>,
Tony Finch <> wrote:
>Dan Kegel <> wrote:
>>Tony, are people using the TCP_NOPUSH define as a way to detect
>>the presence of T/TCP support?
>No, MSG_EOF is the right way to do that.

However, I think ank is at least partially correct: TCP_NOPUSH has some
magic behaviour for sockets in listen state, and turns on at least some
T/TCP semantics, if I remember correctly. Tony?

If I remember correctly, may I suggest something: make a new BSD option
called (ehh, just random name ;) TCP_CORK, and make the old BSD
TCP_NOPUSH option be a superset of TCP_CORK that also turns on T/TCP on
listen sockets.

Linux TCP_CORK doesn't have anything to do with T/TCP (not surprisingly,
as T/TCP is considered a broken protocol in Linux and other circles).

And Linux TCP_CORK _is_ used on listen sockets: it makes sockets that
are accepted from the listen socket have the corking semantics. In
contrast, BSD TCP_NOPUSH, I think, has this overloading issue..

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
Please read the FAQ at

This archive was generated by hypermail 2b29 : Thu Feb 15 2001 - 21:00:12 EST