[comp.protocols.appletalk] Async AppleTalk && CAP

jeff@tc.fluke.COM (Jeff Stearns) (04/05/89)

I have CAP installed and running.  I'm holding a floppy disk containing
Dartmouth's Async AppleTalk.  We have Macs and modems.  We also have a
GatorBox.

It seems like these are the ingredients for doing Something Interesting.

I'm thinking of creating a simple scheme so that a Mac running Async AppleTalk
can dial up from home and access files on the NFS.

There are several options.  Absolutely easiest would be to use a GatorBox
as a NFS<->KIP bridge; all that's missing is a KIP<->Async AppleTalk "repeater"
process running on, say, a Sun.

Or use the GatorBox as an NFS<->EtherTalk bridge, and write an
EtherTalk<->Async AppleTalk "repeater" program for the Sun.

A third option would be to skip the GatorBox and do all the work on the Sun.
This seems like substantially more work, because the Sun now has to play the
role of an AppleTalk bridge.  Still, CAP gives a good head start on the
problem; it seeems like I could rewrite the AUFS packet driver so that it
speaks Async AppleTalk instead of KIP.

It seems so straightforward that I'm sure others have already done it.

What problems did you run into?  Was it worth the trouble?
-- 
    Jeff Stearns        John Fluke Mfg. Co, Inc.               (206) 356-5064
    jeff@tc.fluke.COM   {uw-beaver,microsoft,sun}!fluke!jeff
						  
PS - Calling all users of the Vitalink TransLAN IV Ethernet bridge! Please
     drop me a line.

verber@pacific.mps.ohio-state.edu (Mark A. Verber) (04/05/89)

Charlie Kim wrote an AppleTalk bridge that would run on a Sun under
SunOS 4.0 and some modern?! version of Ultrix.  It is called uab and
is ftpable from cunixc.cc.columbia.edu.

---------------------------------------------------------------------
Mark A. Verber				  Physics Department
verber@mps.ohio-state.edu		  Ohio State University
					  174 West 18th Avenue
614-292-8002				  Columbus,  OH 43210

   There are two major products that come out of Berkeley: LSD and
   BSD UNIX.  We don't believe this to be a coincidence.

djh@munnari.oz (David Hornsby) (04/06/89)

In article <7560@fluke.COM> jeff@tc.fluke.COM (Jeff Stearns) writes:
>I have CAP installed and running. I'm holding a floppy disk containing
>Dartmouth's Async AppleTalk. We have Macs and modems. We also have a GatorBox. 
>It seems like these are the ingredients for doing Something Interesting.

I have just been through the process of implementing Asynchronous AppleTalk
for connection to UNIX boxes. The method I chose was to take the Async code
written by Richard E. Brown et. al. at Dartmouth (as presented in Dr. Dobbs
Journal of Software Tools) and make an adev for use with the 'Network' cdev 
and the LAP manager. The adev gives you a login window to allow you to make 
a connection to a UNIX host, and run a UNIX process which then connects you 
to AppleTalk. To avoid having to write an AppleTalk bridge under UNIX, we 
modified the gateway code in our locally designed gateway** . The status of 
the project is that it has been distributed within in Australia for testing 
and use. In order for it to be usable outside Australia, someone will need
to apply a trivial modification to the kbox/gatorbox code. Any volunteers ?

I would also like to see some discussion on some of the decisions made in
the implementation, so I am including the README file from the distribution.
If you have any comments, please mail me or use this newsgroup as a forum.

DON'T ASK FOR THE DISTRIBUTION YET, IT WON'T DO YOU ANY GOOD - IT WILL NOT
WORK UNTIL SOMEONE HAS THE TIME TO CHANGE SOME GATEWAY CODE.

The next step is to investigate Charlie Kim's UAB code so that the whole
lot can be merged, I haven't had time to do this yet ...

 - David.

** The gateway is called Multigate. It is a four channel 
AppleTalk to EtherNet gateway designed by the University 
of Melbourne Department of Computer Science and now being 
built in Australia by Webster Computer Corporation.


README:------------------------------------------------------------------
Asynchronous AppleTalk for UNIX/CAP hosts - Request For Comment. 17/10/88
-------------------------------------------------------------------------

The Department of Computer Science at The University of Melbourne has
developed and is currently testing a version of Asynchronous AppleTalk
for remote AppleTalk access via UNIX/CAP hosts. 

This system is based on the code presented in the October 1987 issue of 
"Dr. Dobb's Journal of Software Tools" by Richard E. Brown and Steve 
Ligett of Kiewit Computer Centre, Dartmouth College, Hanover, New 
Hampshire, and contains later protocol extensions. The UNIX code uses some 
library routines and database files from the Columbia AppleTalk Package 
(CAP) developed by Charlie Kim, Center for Computing Activities at 
Columbia University.

The purposes of this document are to discuss the problems encountered and
the solutions used in implementing Asynchronous AppleTalk capability
on a UNIX host and to solicit comments from interested parties. 

Background:

Asynchronous AppleTalk replaces the normal Link Access Protocol (LAP)
used on LocalTalk networks with an Async AppleTalk LAP (AALAP) which
sends AppleTalk frames over an async link such as a modem or twisted pair.
To achieve this, one usually needs to purchase extra hardware to connect
to the other end of the link and to bridge to a normal LocalTalk network.
After some discussions and experimentation, it was decided that it was
possible to use a UNIX host which already had ample dial-up facilities
to perform this function. This naturally left some problems to solve ...

1. How to use the Macintosh to perform the functions of dialling a modem
	and allowing a normal login. Most async implementations could
	dial modems but fell short of giving a login window.

	SOLUTION: massage the Async code from Dartmouth to provide a window
	and speed/parity dialog box. At the same time, it was felt that
	the system should conform to current Apple standards for choosing 
	alternate LAPs, therefore implement as 'atlk'/'adev' resources.
	NB: the window currently emulates a VT52.

	STATUS: complete, testing.

2. How to get AALAP packets onto LocalTalk networks.

	SOLUTION: repackage packets from the serial line as UDP
	encapsulated DDP packets (otherwise known as KIP format) and 
	send them via ethernet to the local gateway (a Multigate in this
	case but Kboxes should do).

	PROBLEM: How do we know who the local gateway is and who we are ?
	The current solution is to use the file 'atalk.local' with a new
	(4th) line. The file now looks like this ...

--------------------atalk.local-------------------------------
# myNet		myNode		myZone 
93.30		26		unimelb-CompSci	# host information
# bridgeNet	bridgeNode	bridgeIP
93.20		23		128.250.1.23	# bridge information
# nisNet	nisNode
93.30		26				# Name Info Server info.
# asyncNet	asyncZone
170.26		unimelb-Async			# Async Info (***NEW***)
--------------------------------------------------------------

	See below for explanations of Async information.

3. How to get packets back to the UNIX host to send via AALAP.

	This is a bit trickier because we need to allow Async Macs to
	have different node numbers and KIP/CAP has no mechanism for more
	than one node number per host (yet). 

	SOLUTION: Map Mac node numbers into a UDP user port range and have 
	the gateway forward anything destined for node N on an Async network 
	to the host UDP port = N + PortOffset [PortOffset has notionally 
	been assigned the value 43520 (0xaa00)]. This port is monitored by 
	our user process. Additionally, we have to assign a new AppleTalk 
	network number to our UNIX host and make a suitable entry in the 
	file atalkatab to tell the gateway of this arrangement. IE:

------------------portion of atalkatab------------------------
# Test Asynchronous AppleTalk network
170.26	A	128.250.1.26	unimelb-Async	# async net running on munnari
--------------------------------------------------------------

	Where:
		"170.26" is the Async AppleTalk net number on this host
		'A' indicates this is an Async net
		"128.250.1.26" is the host IP address.
		"unimelb-Async" is the zone assigned for testing the code.

	PROBLEM 1: gateways won't normally do this, we have to modify the
	gateway KIP code. The modification is minor but requires the
	acceptance and cooperation of the network community. The 'A' flag
	is equivalent to the 'H2' flag not currently in use. We have
	modified 'atalkad.c' to recognise 'A', the modification is trivial.


	PROBLEM 2: Broadcast packets! We obviously can't have a gateway
	sending to all the 254 possible UDP ports (node numbers). The
	current solution to this problem is to assign a Well Known Socket
	for broadcast packets (currently 750). An Async daemon running on 
	the host monitors this port for:

		1. notification from user processes that they have
		started and are using node number N.

		2. broadcast packets sent from the gateway for
		redirection to the port N + PortOffset.

	STATUS of 2 & 3: Complete and testing.


DISTRIBUTION POLICY:

	In the current spirit of the CAP/Async communities, the UNIX 
	sources and the Mac 'adev' will be available to anyone provided 
	that the system is not sold for profit or otherwise abused and
	that improvements return to the author for inclusion in the
	distribution.

	(NOT AVAILABLE YET)

Please send comments, requests for information to ...

	djh@munnari.oz.au

	David Hornsby
	Professional Officer
	Department of Computer Science
	Richard Berry Building
	University of Melbourne
	Parkville 3052
	Victoria, Australia