[comp.protocols.appletalk] EtherTalk

cck@CUNIXC.COLUMBIA.EDU (Charlie C. Kim) (12/30/87)

Does anyone have the specification for EtherTalk?  In particular, I am
looking for the specification for EtherTalk ARP (protocol type
0x80f3).  As far as I can determine, it is pretty close to standard IP
ARP (0x806) with some extensions.  So far, I have:
1	bit16 hardware_address_format (ETHER:1)
2	bit16 protocol (EtherTalk:0x809b)
3	bit8  hardware_address_length (6 for ethernet)
4	bit8  protocol_address_length (*)
5	bit16 opcode (appletalk_request-not sure about this:3)(**)
6	bit8[6] source_hardware_address
7	bit8[4] source_protocol_address (*)
8	bit8[6] destination_hardware_addr
9	bit8[4] destination_protocol_addr(*)
10	bit8[22] ????  (zeros then 0xc7, 0xdf, 0xfd, 0x28)

* - looks like it uses 4 bytes for the <network,node> with a leading
zero byte.  However, one of the bytes could be a socket?
** - standard was 1: arp request, 2: arp reply.  3 seems to be a
appletalk request/probe.

In particular, I am interested in the definitions for 5 and 10 above.

EtherTalk packets are straight forward enough: they are simply
encapsulations: lap dest, lap source, lap type, data.

Charlie C. Kim
User Services
Columbia University

tappan@MIKEY.BBN.COM (12/30/87)

5 is the same as IP ARP if Request or Response. They've added a 'Probe'
opcode, which is 3. The machine sends out Probes to do the dynamic
address establishment. You respond to a Probe on your own address with a
Response. I don't know why they couldn't just use Request.

I think 10 is just padding.

cck@CUNIXC.COLUMBIA.EDU (Charlie C. Kim) (12/30/87)

I'm not sure if my response made it out, so I'll repeat it with some
new information.

I think I've got AARP (Appletalk Address Resolution Protocol) pretty
much figured out.

I forgot that Ethernet packets are supposed to be at least 60 bytes
(actually 64 - 60 bytes + crc: however, the crc bytes are not included
in the packet length though some drivers use a minimum of 64 bytes in
error).  Those last 22 bytes are result from the padding.

The rest of the stuff is really simple after that.  You have three
opcodes:
	1 - ARP Request
	2 - ARP Reply
	3 - ARP PROBE 
I have had these confirmed by several people (thanks for the responses).

Request and PROBE are answered with a Reply and are essentially the
same.  I would guess that the different opcodes are used to allow one
to tell if the person really thinks the Appletalk address he encodes
in the source protocol address is his or not: on a request he really
does and if it is yours too, then you have a "duplicate <appletalk
address>" error while on a probe you know he is just asking if it is
in use.  Request and PROBE use all zeros for unknown ethernet
addresses (not all ones - I'm pretty sure a lot of IP arps use all
ones) and am not sure if all ones is legal for unknown ethernet
addresses.  PROBE is used on EtherTalk startup to establish its
AppleTalk address.

Several people have commented on the fact that Apple don't use IP ARP
packet type 0x0806 (using 0x80f3 instead).  Add me to the list.  The
only reason I can think of is that some ip arp implementations don't
pay attention to the protocol type in the arp packet and accept the
them as IP ARPs with the resulting "bad" effects (or apple thought
this might happen and did it because of that).

The four bytes of protocol address do end in the node address.  I've
received some information about the first three bytes, but I am not
sure if I can release this information.

The reason all this came up is that we finally got Ultrix DECNET 2.0
and it contains support for receiving and sending Ethernet packets
(DLI facility) on a per protocol type basis.  (Unfortunately (and not
suprisingly), the design allows only a single process to receive
packets for a particular protocol (and it must run setuid 0): to allow
one to build in EtherTalk support, one would have to either write an
AppleTalk bridge/gateway that supports EtherTalk and KIP and/or write
a network daemon (for each machine) that would demux the incoming
EtherTalk packets and send to the clients via some "defined"
mechanism).

In any event, the point was to do some baseline testing to see if
anything were possible.  It seems to be possible, but going on from
here is a lot of work.

Charlie C. Kim
User Services
Columbia University

mithomas@bsu-cs.UUCP (Michael Thomas Niehaus) (03/16/88)

I am looking for any information that anyone has on the EtherTalk network for
Macintoshes.  Also, does anyone know if the AppleShare PC software would support
a EtherTalk (Ethernet) board.  What board would I need?  How about Kinetics
FastPath?  Since we would need one to use printers and Apple IIGS's on the
network anyway...

I appreciate hearing from anyone who has experience in handling any type of
a system that uses the AppleTalk protocols on a network that is faster than
LocalTalk.

Thanks,
Michael Niehaus
Ball State University
UUCP: ...!{uunet,pur-ee,iuvax}!bsu-cs!mithomas