Subject: Re: erroneous ack packet, ideas please?
To: Andrew Brown <>
From: Stefan Grefen <>
List: tech-net
Date: 07/21/1997 09:09:36
In message <>  Andrew Brown wrote:
> > From: Stefan Grefen
> >> From: Duncan McEwan
> >> I think Stefan's point was not that the facility already existed, but that the
> >> interface existed (for iso sockets) and therefore the "right" solution would
> >> be
> >> to extend that interface to apply to ip sockets, rather than invent a new 
> >> ioctl
> >> to do the job.  If my interpretation was wrong, just ignore me :-)
> >
> >This is the correct interpretation. 
> >I think having more than interface for the same basic thing is bad.
> >The eager sockets are doing excatly what the ISO protocols are doing, just
> >dequeing the request without sneding an ack/nack to the other site.
> >BTW. I had a look at this before, and I think the code is already in the
> >generic socket-code. All that is needed is a change in tcp_usrreq, to establish
> >or reject the connection as needed.
> granted, i haven't looked at current code (but i will soon :), but i
> think it's a little more than just a "change in tcp_usrreq" since in
> the code i'm reading (1.2), tcp_input() does all the handling of
> sockets in the semi-opened state.  a lot of the hacery i'm doing is in
> there.  the rest (a little in kern/sys_socket.c to dispatch the
> ioctl(), two bits in netinet/tcp_usrreq.c to handle the setsockopt()
> and getsockopt(), and three #defines and a prototype in netinet/tcp.h,
> netinet/tcp_var.h, and sys/sockio.h) is miniscule.

I was talking only about replacing the ioctls to do the accept/reject 
(just to make that clear).
You would call the same functions the ioctl calls, when an implicit state-change 
is needed. (a read/write on not yet connected socket (do the accept) and the
right thing on recv/sendmsg calls without data pointers. 
I think this is of the same complexity than the ioctls, it just makes the calls
from a different place.

> >If don't want to change things there, I offer to do it.
> most of what i planned to do is now done.  all i have to do is "port"
> it to current in order to make it the least bit useful...

Again only the ioctl replacement ... 


> -- 
> |-----< "CODE WARRIOR" >-----|
> (TheMan)        * "ah!  i see you have the internet
>                               that goes *ping*!"
>      * "information is power -- share the wealth."

Stefan Grefen                                Tandem Computers Europe Inc.                       High Performance Research Center
If a group of N persons implements a COBOL compiler, there will be N-1
passes.  Someone in the group has to be the manager.
                -- T. Cheatham