[Date Prev][Date Next]
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, email@example.com 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) (126.96.36.199)
> >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: firstname.lastname@example.org Bellows Falls, Vermont 05101