Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 23 Nov 1998 14:50:42 -0800 (PST)
From:      Marc Slemko <marcs@znep.com>
To:        Dan Strick <dan@math.berkeley.edu>
Cc:        hackers@FreeBSD.ORG
Subject:   Re: AMD/NFS problems with 3.0
Message-ID:  <Pine.BSF.4.05.9811231445580.19474-100000@alive.znep.com>
In-Reply-To: <199811230032.QAA03103@math.berkeley.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 22 Nov 1998, Dan Strick wrote:

> (Please ignore my previous posting.  I somehow neglected to rewrite the
> temporary mail message file after editing it into this:)
> 
> > > At first I though this might be related to these messages that went
> > > to the log the first time I started amd:
> > > 
> > >   noconn option exists, and was turned OFF! (May cause NFS hangs
> > >   on some systems...)
> > 
> > These are always printed out.  I guess I should comment them out, or
> > determine if we really can use the optimization.  The comments in the
> > code by the Columbia people are often out of date with respect to
> > FreeBSD-CURRENT.
> 
> I have often wondered what this was really about.  Can someone explain?

I have no idea what this is really about, but...

> 
> At first I thought the issue was tcp versus udp, but this turns out to
> be wrong.  The issue seems to be if the BSD connect() system call is used
> to associate the local BSD datagram (i.e. UDP) "socket" with the remote nfs
> server datagram "socket".  The alternative would be to skip the connect()
> and specify the destination address every time a packet is sent and
> examine the source address every time a packet is received.
> 
> I don't really understand the issue here.  UDP is essentially a
> connectionless protocol.  I don't understand the function of the BSD
> connect() system call other than as a programming convenience.

The issue is that if you don't do a connect(), then there is a lot more
processing that that the kernel has to do.  It doesn't have a pcb with
info about the sender/recipient without a connect(), it has to figure out
stuff about the source and destination each time, etc.  See udp_output(),
especially the in_pcb{connect|disconnect} calls that are done if an
address is passed instead of being connect()ed.


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.05.9811231445580.19474-100000>