From comp.sys.apple2, thread "Subject: Re: Marinetti
over LocalTalk/Appletalk?"
Overview:
An Apple IIgs application that acts as a MacIP gateway
would allow someone with an Appletalk network of Apple
IIgs machines and one LanceGS card to connect all of
the IIgs machines onto an ethernet network.
No Macintosh, (or costly software) would be required.
Details:
Jalapeno <jalapeno1@mac.com> wrote in message
news:<jalapeno1-
D0D931.08482318022002@nnrp02.earthlink.net>...
One possible block diagram for a IIGS IP Gateway
would be (off the top of my head):
+---------- begin ascii art -----------+
+--------------------------------------+
| IIGS |
| |
| +--------------+ +--------------+ |
| | | | | |
| | Marinetti | | Appletalk | |
| | TCP/IP stack | | stack | |
| | | | | |
| +----o----o----+ +--o----o------+ |
| | \ / | |
| | \ / | |
| | +--o-----o--+ | |
| | | IIGS | | |
| | | IP | | |
| | | Gateway | | |
| | | | | |
| | +-----------+ | |
| | | |
| | | |
| LanceGS Localtalk |
| ethernet builtin |
| card port |
| | | |
+------O---------------------O---------+
| |
Z Z
| |
ethernet Localtalk
network network
| |
Z Z
| |
+---------- end ascii art -----------+
Marinetti would be the gatekeeper for the ethernet
network and the built
in Appletalk stack would be the gate keeper for the
Localtalk network.
The IIGS IP Gateway software would install socket
listeners (a DDP
[datagram delivery protocol] socket listener on the
Appletalk stack and
an IP socket listener on Marinetti) to watch for
traffic on both
networks.
When a MacIP packet comes in on the Localtalk network
then the IIGS IP
Gateway program would strip off the DDP header and
send the remaining IP
datagram to the ethernet network via Marinetti.
When an IP datagram comes in via the ethernet network
the complete IP
datagram that Marinetti stripped from the ethernet
packet would be sent
to the IIGS IP Gateway software which in turn adds a
DDP header and
sends it to the Localtalk network.
If the destination on the Localtalk network is another
IIGS then that
IIGS would have its own Marinetti with the MacIP link
layer running and
(the local copy of) the Marinetti link layer would
strip off the DDP
header from the IIGS IP Gateway and Marinetti would
process the IP
datagram in the usual fashion.
I don't know how Marinetti functions but the DDP
socket listener will be
called via an Appletalk interrupt (this is handled by
the firmware and
the Appletalk driver). If Marinetti doesn't operate
via interrupt then I
suppose you'd need a tight loop to poll for IP
datagrams.
So I guess (again, off the top of my head) one
possible algorithm for
the IIGS IP Gateway would be (omitting all error
checking and
implementation details):
1. At launch check for Appletalk and Marinetti being
installed and
active. (from here on assume they are)
2. Register on the Localtalk network as an IPGATEWAY
(following the
normal Appletalk NBP registration sequence with the
addition of an ATP
socket listener so new IP addresses can be assigned
when new MacIP nodes
come active).
3. Broadcast on the Localtalk network for any entities
registered as
Object type IPADDRESS. If any respond add their
Appletalk node and IP
address to the translation table. This might need to
be done prior to
step two but this is the order it came to me :)
4. Wait for appropriate network traffic.
5. Add DDP headers to ethernet traffic going to MacIP
Localtalk nodes
and send it to the Localtalk network. This includes
extracting the IP
address and converting it to ascii and adding it as
the Object name
(without the period separators) in the DDP header.
6. Strip DDP headers from Localtalk traffic coming
from NVE's of Object
type IPADDRESS and send it to Marinetti.
7. Rinse and repeat 4-6 :)
Logged In: YES
user_id=257705
From: Jalapeno (jalapeno1@mac.com)
Subject: Re: Marinetti over LocalTalk/Appletalk?
Newsgroups: comp.sys.apple2
Date: 2002-02-28 18:29:52 PST
Jalapeno <jalapeno1@mac.com> wrote in message
news:<jalapeno1-
BC3C80.21321028022002@nnrp03.earthlink.net>...
I have started work on the IIgs MacIP Gateway and I
almost have the Appletalk section done, but I have just
downloaded the Marinetti Programmers manual. I will start
on the LanceGS/Marinetti section after my vacation, but
don't hold your breath, I may have to upload what I have
already to the MOSP for someone else to finish because
I have more important projects to work on and time is so
tight.