[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: BSD/OS and TCP_NODELAY in slapd (ITS#760)

On Thu, 21 Sep 2000, Kurt D. Zeilenga wrote:

> At 03:33 PM 9/21/00 +0000, erikl@sover.net wrote:
> >Full_Name: Erik R. Leo
> >Version: 1.2.11
> >OS: BSD/OS 4.1
> >URL: ftp://ftp.sover.net/pub/unix/openldap/servers-slapd-daemon.c.patch
> >Submission from: (NULL) (
> >
> >
> >When the LDAP server (slapd) and the LDAP client (ldapsearch, e.g.) are both 
> >run on BSD/OS, performance suffers because TCP_NODELAY is only set on the
> >"listen" socket and not on the socket that the transaction occurs on (the
> >socket returned by the "accept") in servers/slapd/daemon.c.
> Please note that this bug is in BSD/OS, not OpenLDAP, and should
> be reported to BSD/OS maintainers.  If at all possible, I rather
> have BSD/OS fix their bug then to have to implement a workaround
> in our code.

I passed your comments back to BSDI, and this is what I got back:

> This is the behavior of the original BSD code.  So, unless someone
> has explicitly done something different, all BSD based OS's will have
> the same behavior of TCP_NODELAY not being passed on to the newly
> accept()ed socket.  (I just looked at FreeBSD and didn't see any
> obvious changes there.)
> Socket level socket options are inherited.
> We can modify BSD/OS to inherit more TCP options (we do explictly
> inherit window scaling information).  But, for OpenLDAP, adding
> the code to set TCP_NODELAY after accepting the connection will
> not hurt anything on systems that do pass the TCP_NODELAY flag,
> and will help on systems that don't.  That would make their code
> more portable on BSD based systems, so it seems like a fine thing
> to add.
> So, this is not a BSD/OS specific issue, it is an issue with all
> BSD networking based operating systems.

Erik R. Leo, Net Worker       SoVerNet
Tel:    +1(802)463-2111       Vermont's Sovereign Internet Connection
Fax:    +1(802)463-2110       Post Office Box 495, 5 Rockingham Street
Email:  erikl@sover.net       Bellows Falls, Vermont 05101