I'm currently porting a software in C from Tru64 to Linux Suse 11.
On Tru64 they are setting the value of SO_SNDLOWAT socket option to 1024 * 64. On Linux this option is not changeable and its value is 1.
I want to figure out, what will be the impact of not setting SO_SNDLOWAT to 1024 * 64 on the software execution on Linux.
The problem is that I found two definitions (interpretations) of the purpose of SO_SNDLOWAT:
Found on the man page of socket on Linux :
SO_SNDLOWAT
Specify the minimum number of bytes in the buffer until the socket layer will pass the data to the protocolI understood that it specifies the minimum number of bytes in the buffer to proceed (in this case for sending the message). The buffer needs to be filled at least for
SO_SNDLOWATbytes to proceedFound in the book "UNIX Network Programming: The sockets networking API of W. Richard Stevens, Bill Fenner, Andrew M. Rudoff"
The send low-water mark is the amount of available space that must exist in the socket send buffer for select to return "writable".
I understood that, if I want to write in the socket buffer (no matter of the size of what I'm writing) the buffer needs to have at least
SO_SNDLOWATbytes free.
I don't know what to make of SO_SNDLOWAT.