[comp.protocols.tcp-ip] ARP protocol address space field on ProNET

jas@MONK.PROTEON.COM (John A. Shriver) (03/25/88)

Well, being as someone is calling my implmentation of ARP
non-standard, I will speak to the issue of the Protocol Address Space
in ARP for ProNET.

The first implementation of ARP on ProNET was done at Carnegie-Mellon
University, for the IP protocols.  (IP normally does not use ARP on
ProNET, but CMU's routing scheme at the time was based on ARP subnet
routing, so they needed ARP.)  At that time, the table of ARP Hardware
Address Space types were not in the current version of Assigned
Numbers, since the only value was 1 (Ethernet), which is specified in
ARP.

As we read RFC 826 (ARP), it only claimed that the Protocol Address
Space field was chosen from the field of Ethernet types if the
Hardware Address Space was Ethernet.  We decided (by default, really)
that it was obvious that we should use the space of ProNET types for
ProNET.  Aside from reasons of symmetry, the more important reason is
that there might well be protocols on ProNET which do not have
Ethernet types, but do need to use ARP.  Indeed, this is currently the
case for some protocols on ProNET.

The versions of assigned numbers that stated that Protocol Address
Space would always be Ethernet types came long after our ARPs were in
the field.  I have noted this discrepancy to the NIC before.

Currently, three protocols have been used with ARP on ProNET:
1.  IP (only at CMU, between 32 bit IP addresses and 8 nit node addresses)
14. XNS (between 48 bit XNS host addresses and 8 bit node addresses)
20. DECnet (between 48 bit DECnet/Ethernet addresses and 8 bit node addresses)

Yes, writing a multi-hardware multi-protocol implementation of ARP is
interesting, since there are all these variable-sized peices, and
different Protocol Address spaces.

Oh yes, the "standardness" level of an RFC depends on how and whether
it is cited in the current version of the "Official Internet
Protocols" RFC.  The current version of this RFC can be considered the
top of the tree.

Also, there will always be interpretation issues with standards.
ProNET ARP is just one example.

DCP@QUABBIN.SCRC.Symbolics.COM (David C. Plummer) (03/25/88)

    Date: Thu, 24 Mar 88 11:47:17 EST
    From: jas@monk.proteon.com (John A. Shriver)

Being the author of ARP...

    ...
    As we read RFC 826 (ARP), it only claimed that the Protocol Address
    Space field was chosen from the field of Ethernet types if the
    Hardware Address Space was Ethernet.  We decided (by default, really)
    that it was obvious that we should use the space of ProNET types for
    ProNET.  Aside from reasons of symmetry, the more important reason is
    that there might well be protocols on ProNET which do not have
    Ethernet types, but do need to use ARP.  Indeed, this is currently the
    case for some protocols on ProNET.

... this was certainly the intention.  When I heard the ProNet did not
use Ethernet types for their protocol dispatching field, I found that
"unfortunate."  The reasons they chose to be different may be good or
bad; I'm not concerned about that here.

    The versions of assigned numbers that stated that Protocol Address
    Space would always be Ethernet types came long after our ARPs were in
    the field.  I have noted this discrepancy to the NIC before.

The NIC is wrong, both by the intent and by the literal reading of the
RFC.  The fact that some other hardware types (e.g., packet radio,
certain serial links, etc) also use the 10MBit Ethernet hardware type
for ar$pro is a perfectly reasonable design convenience, but that's
where it stops: it is a convenience.

Summary: The NIC overstepped its authority by asserting that ar$pro is
always taken from the set of ethernet types.  Proteon did a reasonable
and valid thing in defining ar$pro to come from a different and rational
set of types.

karn@thumper.bellcore.com (Phil R. Karn) (03/26/88)

It was pretty apparent to me when I did the ARP-on-AX.25 (amateur packet
radio link protocol) implementation that I should use the universe of
AX.25 packet types in the ARP protocol field.  (The only one that is relevant
is CC hex, which means "DoD IP").

Phil

mshiels@watmath.waterloo.edu (Michael A. Shiels) (03/27/88)

Is it possible to get the codes that PRONET does use??
-- 
  Michael A. Shiels (MaS Network Software)
  mshiels@watmath.waterloo.EDU
UUCP: ...path...!watmath!mshiels

jas@MONK.PROTEON.COM (John A. Shriver) (03/29/88)

Well, we keep a copy in all the manuals, but I'll post it anyways,
since some of those are getting dated.  Quite a few proprietary
(customer) protocols are supressed in this list, sorry.  At least
we'll post most of it, unlike Xerox/ANSI on Ethernet.

Proteon ProNET-10/80 data link types:
1	IP
2	IP with trailing headers
3	Address Resoloution Protocol
4	Proteon HDLC
5	VAX Debugging Protocol (MIT)
10	Novell NetWare
11	Vianetix
12	PUP
13	Watstar protocol (University of Waterloo)
14	XNS
15	Diganostics
16	Echo protocol (link level)
17	Banyon Vines
20	DECnet (DEUNA Emulation)
21	Chaosnet
23	IEEE 802.2 or ISO 8802/2 Data Link
24	Reverse Address Resolution Protocol
29	TokenVIEW-10

Just because a protocol is on this list does not mean that there is
any implementation of it on ProNET.

Of these, protocols 1, 14, and 20 are the only ones that have ever
been seen in ARP packets to my knowledge.

For reference, the header is (one byte/line):

	destination hardware address
	source hardware address
	data link header version (2)
	data link header protocol number
	data link header reserved (0)
	data link header reserved (0)

Some protocols have been known to tuck stuff in the reserved fields.

Those who need a protocol number on ProNET-10/80 should contact me
(jas@proteon.com).