[comp.protocols.tcp-ip.ibmpc] ARCnet packet driver

nelson@sun.soe.clarkson.edu (Russ Nelson) (10/28/89)

Hi.  I am going to write a packet driver for ARCnet.  I can write it
in one of two ways: As a fake Ethernet driver whose MTU is really 508,
or I could write it as a real TCP/IP over ARCnet driver.

The advantage of writing it as a fake Ethernet driver is that no one
need know that they're not writing to a real Ethernet driver, and so
all the current packet driver clients will work without changes.  I'm
not sure that I see the disadvantages of doing this.  Could someone send
me mail and explain why I shouldn't do this?

If I write it as a real TCP/IP over ARCnet driver, I have to solve the
problem of parsing the header.  I have to parse the header minimally
to determine the packet length.  I also have to face the issue of
who decides the length of the packet, the upper layers, or the packet
driver.

No matter which I choose, I will use the standard TCP/IP over ARCnet
encapsulation.
-- 
--russ (nelson@clutx [.bitnet | .clarkson.edu])
Live up to the light thou hast, and more will be granted thee.
A recession now appears more than 2 years away -- John D. Mathon, 4 Oct 1989.

jbvb@VAX.FTP.COM (James Van Bokkelen) (10/30/89)

The reason you don't want to try to hide the fact that it's ARCNet by
pretending to be Ethernet (class 1) is the difference in MTUs: If you are
faking Ethernet, lots of software will try to send 1514-byte packets, and
almost everything will try to send 1080 or so.  This will come up against
the 508-byte ARCNet limit and the application will go down in flames...

The get_parameters() function in v1.09 of the Packet Driver spec does
let an application see the MTU, but there are lots of applications out
there which don't check (or don't expect it to change).  I suppose you
could look at the out-going IP datagram and fragment it, but that
would cause troubles at other levels.  I definitely wouldn't go so far
as to hack on the TCP MSS option in SYN packets (ugh, shudder, retch...).

jbvb