FreeBSD APIs: Difference between revisions

No edit summary
No edit summary
Line 10: Line 10:
* TCP_NOPUSH: Normally, every write operation to a TCP socket will result in an attempt to set the [[TCP]] PSH bit and transmit the queued data. With TCP_NOPUSH set, packets will be coalesced until either the MSS is reached, or the socket is closed. Compare to [[Linux APIs#IPPROTO_TCP|Linux's]] TCP_CORK.
* TCP_NOPUSH: Normally, every write operation to a TCP socket will result in an attempt to set the [[TCP]] PSH bit and transmit the queued data. With TCP_NOPUSH set, packets will be coalesced until either the MSS is reached, or the socket is closed. Compare to [[Linux APIs#IPPROTO_TCP|Linux's]] TCP_CORK.
** It is my experience that clearing this flag will result in the transmission of queued data, but I cannot find documentation supporting this. Tony Finch's [http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/netinet/tcp_usrreq.c.diff?r1=1.52&r2=1.53 kernel patch] seems to have been applied to FreeBSD 4.5, providing this behavior.
** It is my experience that clearing this flag will result in the transmission of queued data, but I cannot find documentation supporting this. Tony Finch's [http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/netinet/tcp_usrreq.c.diff?r1=1.52&r2=1.53 kernel patch] seems to have been applied to FreeBSD 4.5, providing this behavior.
[[CATEGORY:FreeBSD]]