Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/18/84; site uw-beaver Path: utzoo!watmath!clyde!burl!ulysses!mhuxr!mhuxt!mhuxv!mhuxh!mhuxi!mhuxm!mhuxj!houxm!vax135!cornell!uw-beaver!info-mac From: info-mac@uw-beaver Newsgroups: fa.info-mac Subject: Stanford Ethernet - AppleTalk Gateway (SEAGATE) beta release Message-ID: <810@uw-beaver> Date: Fri, 8-Feb-85 05:02:17 EST Article-I.D.: uw-beave.810 Posted: Fri Feb 8 05:02:17 1985 Date-Received: Sun, 10-Feb-85 03:11:05 EST Sender: daemon@uw-beaver Organization: U of Washington Computer Science Lines: 330 From: Bill CroftThe beta release of our Stanford Ethernet - AppleTalk Gateway (SEAGATE) is ready. On the files are: seagate.ms documentation in -ms format seagate.hard the wirelist for the applebus interface seagate.shar1 the main gateway sources (including the above doc's) seagate.shar2 the ddt, dlq, testscc, and tftp subdirectories All these files are plain ASCII and can be FTPed from SUMEX with the 'anonymous' login. The two shar (shell archive) files are each about 170K bytes, so we would appreciate it if you would avoid transfers during 9 AM to 5 PM PST. The shar files may be posted on net.sources if there is enough demand; however I am not sure most usenet sites would appreciate this, since the transmission time would probably be an hour or so. The complete seagate.ms and seagate.hard documents WILL be posted to usenet. Below are some sections of the formatted seagate.ms file. ---- Stanford Ethernet Applebus Gateway (SEAGATE) Bill Croft Stanford University Medical Center SUMEX Project *, rm TB105 Stanford, CA 94305 croft@sumex.arpa beta release, 1/85 ABSTRACT This note explains how to make your own gate- way between ethernet and applebus. Such a gateway allows UNIX (or other) systems on the ethernet to act as servers for the Macintosh. 1. Introduction This note describes SEAGATE, a gateway (Apple term: bridge) that connects an ethernet using the DARPA internet protocols (IP), to an applebus using Apple or IP protocols. The IP protocol family was chosen because many campuses and engineering groups are using it on their ethernets; most such groups have access to Berkeley UNIX. With such a gate- way in place, it becomes possible to create UNIX server dae- mons to provide file, printing, mail, etc. services for the Macintoshes. In addition, it would be possible for the UNIX systems to become integrated into a Macintosh Office such that UNIX users could access Apple provided services such as printing on a LaserWriter or sending mail to Macintosh users via an Apple file server. This distribution of SEAGATE provides all the informa- tion and software you should need to setup your own gateway. Please bear in mind that this distribution is not 'sup- ported' and that we can't give extensive help about the mechanics of putting your gateway together. I would like to hear about bug reports or enhancements however. 2. Protocol packages / servers UNIX provides a large number of IP based servers. With a stripped down C based IP package, many of the UNIX user level programs (such as TELNET and FTP) could be ported over to the Mac straightforwardly. Alas, such a package does not yet exist. [I could envision creating such a package by sniping sections out of the 4.2 BSD UNIX kernel]. What does exist currently is a port of the MIT IP pack- age (for the IBM PC) to the Macintosh. This was done by Mark Sherman of Dartmouth in the summer of 84. Since there were no commercial C compilers available at the time, Mark transliterated the MIT code from C into Workshop Pascal. At this writing, the TFTP (trivial file transfer protocol) and TIME (fetch time-of-day from server) programs from MIT have been ported. These programs work correctly between Macin- toshes, or through the gateway between a Macintosh and UNIX. Written by MIT, but as yet unported are the TCP and TELNET packages. While this porting was a large and admirable project, I am not sure that it is the right base to build Mac IP ser- vices upon. For one thing, the MIT TCP implementation (in the original C) is incomplete and cannot handle data streams in both directions (it's only good enough for TELNET, where the sending stream is low volume). My hope is that someone will take a relatively full and debugged IP package and adapt it to the Mac, all in the C language. Meanwhile, the gateway provides another alternative. All Apple services on applebus are based on the applebus datagram protocol, called DDP (datagram delivery protocol). In addition to passing IP packets back and forth, the gate- way will do a small amount of protocol conversion: if it receives a DDP from the applebus destined for the ethernet, it will 'wrap' it with an IP/UDP header, doing appropriate address and port number conversions. This allows Apple DDP services to be written as UDP daemons on UNIX, without requiring any UNIX kernel changes. Conversely, a UDP packet received by the gateway from the ethernet will be converted to a DDP (by stripping the IP/UDP headers) if the UDP destination port number matches a certain 'magic number'. While these protocol conversion functions are currently compiled into the gateway, and easily altered, one could also imagine them being selected dynamically based on any packet fields (such as host address). This would allow for hosts that understand DDP packets directly at the kernel level. 3. Addressing and routing 3.1. IP 'nets' versus 'subnets' The gateway can be configured to treat each (ether/applebus) cable as a separate IP 'net' number, or as separate IP 'subnets'. Unless you are at a site which implements subnets, such as Stanford, MIT, or CMU, you will probably use plain 'net' numbers. As mentioned above, the gateway can translate DDP addresses (2 bytes of net number, 1 byte of node number) to IP addresses (4 bytes total for both net number and node number). When subnets are NOT used, a mapping table inside the gateway is used to convert between network/node numbers. The information to setup this table is in the Configuration section below. If your site does not use subnets, you can probably skip or skim over the next couple sections below. 3.2. Subnets 3.2.1. Subnet addressing limitations 3.3. Routing protocols The gateway broadcasts an applebus RTMP (routing table maintenance protocol) packet every 30 seconds. This informs the Macintoshes of the DDP network number of their applebus cable. When routing a packet, if the IP (major) network number of the destination does not match that of any interface, the packet is forwarded to a 'default' gateway specified at con- figuration time. In the subnet case, the gateway assumes that there are other 'smarter' gateways or hosts that will answer ARPs for subnets not matching its own. ... 3.4. Protocol conversion 3.5. DDP routing At present the gateway only really knows about routing IPs. In the future it would be desirable to participate more in applebus RTMP protocol, and to allow the ethernet (or even the whole DARPA internet) to be used as a long-haul backbone between applebus segments. 4. Prerequisites To assemble your own gateway, you will need at least the items below: The hardware is a 3 card multibus system: A 'SUN' 68000 CPU board, an Interlan NI3210 ethernet card, and a homebrew applebus card (about 8 chips) which takes an afternoon to wirewrap. More details in the hardware section below. A UNIX (usually VAX) running 4.2 BSD, 4.1 BSD or Eun- ice. This is because the source distributed is written in the PCC/MIT 68000 C compiler. [This is the same compiler included with the SUMACC Mac C cross develop- ment kit.] You can probably make due with any 68K C compiler and assembler, but it will be harder. Inside Mac, update service, and the Mac software sup- plement. Applebus Developer's Kit, includes: protocol manual, applebus taps and interconnecting cable, Mac applebus drivers on SONY disks. Dartmouth's IP package from Mark Sherman (mss%dartmouth@csnet-relay). The gateway distribution includes the binary for TFTP, but if you want the whole package (and source), you should get it from Mark. A Lisa Workshop system is handy to have around; you would need it to compile Mark's sources. Even if you are doing development in C, Apple releases Applebus updates as a combination of Mac and Lisa disks. The Mac disks contain the 'driver' binary resources. The Lisa disks contain source for header files. 5. Hardware used 5.1. CPU board 5.2. Ethernet board 5.3. Applebus board 5.4. Other hardware. 6. Software organization 7. Configuration 7.1. Software 7.2. CPU board 7.3. NI3210 ethernet board 7.4. Applebus board 8. Operation 8.1. Downloading 8.2. Console 'commands' 8.3. Debug printouts 8.4. TFTP usage 9. Throughput Using Mark's TFTP and the Berkeley 4.2 BSD TFTP daemon, we made some simple timings. On the Mac side, TFTP used a ramdisk to avoid any delays induced by the slow SONY drive. For a UNIX to Mac transfer, we found that the Mac took 43 ms between data received and ack sent, while UNIX spent 25 ms between ack received and next data sent Since these times were from the applebus peek program, the mac time is artificially high since it includes the 20 ms or so of packet transmission time on applebus (35 usec / byte). So then, each side has about a 20 ms delay before responding. Most of the transfer occured at 512 data bytes every 70ms = 7314 bytes / sec = 58K baud. Note however that the IP TFTP protocol is just that, a 'trivial' FTP. It is purely half-duplex in nature. When we start using Apple's ATP, which can stream several packets per acknowledgement, it should boost throughput signifi- cantly. Gursharan Sidhu tells me that their process-to- process (no disks) ATP throughput is 180K baud (out of the 230K available on the cable). This is very good, consider- ing many TCP's running on 10 megabit ethernet are lucky to get a few hundred kilobits of thoughput. 10. Future plans Here are some obvious things that could be done next. Use a DMA applebus interface. I guess right now we really don't know how the present interface will hold up under heavy load: it may do just fine. But cer- tainly, if you wished the applebus gateway code to coexist with some other gateway or ethertip (terminal concentrator) code, DMA would be most considerate of those other processes running on the cpu. With DMA, you could have one gateway handling a whole group of applebus interfaces. Alternatively, perhaps it would be best to connect up the applebus segments as a true 'internet' interconnected mostly thru Apple sup- plied bridges, and have just one or two 'seagate's con- necting that whole internet to the ethernet. Certainly this would limit thruput more than the 1st approach. Before you can add multiple interfaces, the 'routeip' and 'routeddp' routines need to be beefed up a bit to scan a group of interfaces rather than just assuming two interfaces per gateway. [This is commented in the code.] Here is the most interesting thing I would try: try to get the 'per gateway' cost way down, by building a sin- gle board version of it. I picked the Intel 82586 eth- ernet controller for just this reason: all you should need is a board with the 68000, memory, the 82586 and the Z8530. Hopefully you could get the cost down below $1000 per gateway. Then just sprinkle them around campus, using ethernet as your 'long-haul' and applebus within a floor, or group of offices. I would like to quickly finish an ATP subroutine pack- age that runs on the UNIX side. This will allow rapid construction of applebus servers on UNIX. A program equivalent in functionality to FTP or TFTP should be less than 5 pages of Mac C code. [Since the Mac MPP applebus driver package is doing the 'dirty work' of ATP for you]. 11. Acknowledgements Nick Veizades built and helped debug our applebus hardware interface. Mark Sherman's Mac IP package allowed easy access to the UNIX TFTP daemon for general debugging. Gursharan Sidhu, the 'applebus architect', deserves much credit for making this protocol family as simple and elegant as it is. Arnie Lapinig of Apple was always helpful when we needed another tap box or question answered. In the Stanford network community, Bill Yundt supplied us with free hardware and Ed McGuigan kept the applebus updates flowing in our direction. Ed Pattermann (formerly SUMEX director, now at Intellicorp) made the mistake of turning us onto Macintoshes, when we 'should have been' hacking on LISP machines.