From: peter@psychnet.psychol.utas.edu.au (Peter R. Tattam)
Subject: Re: PKTMUX (was Re: Running CUTCP & FTP's PC/TCP Simultaneously)
Organization: Psychology Department, University of Tasmania
Date: Tue, 7 Apr 1992 05:38:21 GMT

In article <1992Apr3.213930.2905@ccu.umanitoba.ca> grdetil@scrc.umanitoba.ca (Gilles Detillieux) writes:

>solomon@triton.ColoSpgs.NCR.COM writes:
>> >>>       Conclusion: I highly recommend PKTMUX to anyone wishing to 
>> >>>       multitask several packet driver programs,
>mcdonald@aries.scs.uiuc.edu (Doug McDonald) writes:
>> >>  This product has been needed quite a while, thanks **very** much to the
>> >>  person who wrote it.
>Michael Martineau writes:
>> >I concur.  I am very impressed with this piece of software.
>ayman@eecs.umich.edu (Ayman I. Kayssi) writes:
>> It didn't work well with my setup (286+16550/etherslip@9600). PCTCP and 
>> NUPOP worked together, but no TRUMPET+PCTCP nor CUTCP+PCTCP. Anyone with 
>> a similar experience out there, or is it just me?

>I tried to get NCSA Telnet and the Trumpet newsreader running simultaneously
>under Windows 3.0, using PKTMUX, and had no luck.

>The sequence I used was:
>1. wd8003e -w 0x60 2 0x280 0xCC00
>2. pktmux 4
>3. win
>4. (start up a DOS session)
>5. pktdrv 6e
>6. telnet               (config.tel set up with ioaddr=6e)
>7. (Alt-Tab back to Program Manager, start up a 2nd DOS session)
>8. pktdrv
>9. news

>Up to this point, everything seemed to work correctly.  Telnet started up a
>session properly, and news (Trumpet) started up properly as well.  But, when
>I try:
>10. (Alt-Tab back to telnet session)
>I see that telnet locked up, and doesn't respond to any keystrokes.

>If I start up news first, then telnet (swap 8-9 with 5-6), the news reader
>locks up.  Can anyone spot what I'm doing wrong here?  I'd like to eventually
>have simultaneous news, telnet, ftp, and popmail sessions.  Has anyone else
>successfully done this with NCSA telnet under windows?

With regard to trumpet not working with pktmux,  I think I may know why it 
might not be working.

In the currently released version of trumpet, the IP, ARP and RARP packets 
are each handled by separate routines.  I use the demultiplexinmg 
capabilities of the packet driver to route the packets to the right routines 
instead of having one routine which does the lot by checking the handles 
passed to it.  This behaviour causes the trace program provided in the 
packet driver collection to fail with trumpet, and is due to a limitation 
within trace which only records one up-call entry.  I don't know how PKTMUX 
operates, but if it is only recording one up-call address, then it may it 
may fail when using it with trumpet.

Regarding the "i-want-the-ip-packets-from-the-packet-driver" problem :

I applaud the writer of PKTMUX for providing such a useful resource, but I 
have to agree with other commentators that what is really required is some 
intermediate layer to handle the conflict over port numbers and IP protocols.

I see two solutions to the latter problem.

1) provide very minimal IP packet queuing and port demultiplexing for later 
use by further protocols.

   Requirements :
		Handle all ARP functions (application never sees them)
		Queue IP packets on a session basis for TCP/UDP/Other
		Provide TCP & UDP port management

   The application then has to provide all the TCP/UDP implementation code.

This solution would be quite good for maintaining a very small TSR to run in 
a multitasking environment.

2) provide a full TCP/UDP implementation as a standard ABI

	(this has already been discussed in great length by myself and 
	others)

   The initial draft of the trumpet TCP ABI can be obtained from me by 
   e-mailing me.  I will place you on a mailing list.


Peter
----------------------------------------------------------------------------
P.Tattam                                    International Phone 61-02-202346
Programmer, Psychology Department           Australia     Phone   002-202346
University of Tasmania, Hobart, Tasmania, Australia
----------------------------------------------------------------------------