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