[comp.protocols.tcp-ip.ibmpc] An attempt to rekindle interface discussions...

davidc@TERMINUS.UMD.EDU (01/28/88)

    It appears the pcipdriver mailing list died without resolving
anything other than we need to resolve stuff.  I guess the attempt to
standardize on a way to talk to an internet TSR was too late, since
several people had already invested lots of effort defining their own. 
I would like to resurrect the interface discussions in order to attempt
to standardize on an application to transport layer interface library. 
This would seem to me to be the easiest thing for us to agree on since
standardizing on a transport layer interface would be a relatively
painless operation.  No one would have to rewrite anything, they'd just
have to add a new library to their developer's toolkit or whatever. 

    The issues involved with a transport layer interface that I feel
need to be resolved are the following:

    o   Which interface?

        The two major contenders in previous discussions were BSD
        Sockets and SYSV TLI.  I personally would prefer to standardize
        on BSD sockets.  I readily admit they aren't the best things
        created, but I feel they have the largest following in the
        TCP/IP world.
        
    o   Which calls to support?

        Do you support read() and write() on BSD sockets?  How about
        ioctl() and send/recvmsg()?
        
    o   How in depth do you support the calls?

        Do you support the backlog in listen()?  Which options in
        get/setsockopt() will be supported?
        
    o   How to provide an asynchronous interface?
    
        Does TLI provide anyway to do this?
        
    I'm sure there are a lot of other things that need to be discussed
along with the above issues.  Anyone care to comment?

-drc
    

PAP4@AI.AI.MIT.EDU ("Philip A. Prindeville") (02/02/88)

Well, I'm still interested in the driver interface specification,
but I haven't seen anything on pcipdriver since the BOF.  Has there
been any mail?

It may be that we've all lost interest, and are waiting to see what
happens with OS/2.  I, for one, am breathless.

-Philip

jbvb@VAX.FTP.COM (James Van Bokkelen) (03/04/88)

Replying a month late, but things get that way when deadlines get near:

I don't mind the idea of sockets as an interface;  We did an emulation of
them for our 2.0 release, primarily to allow existing Berkeley code to be
ported to DOS.

Our sockets:
	Are an emulation:  You call subroutines, which do various things in
	your own address space, and then (maybe) do a native-mode syscall
	(via an interrupt instruction) to our TCP/IP kernel (a separate TSR).

	Support read/write, but via macros, which requres re-compilation.

	Support select(), but only on sockets (not on other C file handles).

	Support ioctl()  (only FIONREAD & FIONBIO)

	Support send(), sendto(), recv() and recvfrom().

	Support the backlog in listen().

	Supports get/setsockopt(), with SO_REUSEADDR, SO_KEEPALIVE,
	SO_BROADCAST, SO_DONTLINGER, and SO_LINGER.

We think that an asynchronous interface is essential under DOS.  However,
we don't think that kludging something of this nature onto sockets is the
right solution.  What we have done is define our own native-mode interface,
standardized around register contents in an interrupt instruction.  This
has copious asynch facilities, and is broad enough that the socket emulation
was relatively simple to do on top of it.

James VanBokkelen
FTP Software Inc.