[comp.protocols.tcp-ip.ibmpc] packet driver and 802.3 packets

jbvb@VAX.FTP.COM (James Van Bokkelen) (03/11/89)

To deal with this requires two different packet drivers (they may be parts
of the same software module, but they have to have two different "class"
values, which implies servicing two different INT xx entry points).  The
Dec-Intel-Xerox Ethernet interrupt returns Class=1 to driver_info(), and the
802.3 returns Class=11.  The DIX access_type() uses the 'ethertype' field to
demultiplex incoming packets (Len=2, check starts at byte 12), and the 802.3
uses the 802.2 DSAP/SSAP field (Len=3 or 4, check starts at byte 14).  An
application using the Packet Driver spec should scan through the range of
possible INT values, looking for a driver of the right Class, so it all will
work.

Internally to the driver, the hardware interrupt service routine must look
at the 'ethertype/length' field of the packet to tell which set of demux
routines to pass it to (DIX 'ethertypes' are too big to be 802.3 'lengths').
Beware, the 802.3 byte-ordering of the 'ethertype/length' is opposite that
of the PC.

The issue is discussed in Appendix D of the current spec (I think it first
appeared in v1.06 or thereabouts).  I don't know of anyone who has implemented
a Class 11 driver, neither do I know of any situations that require it.

James B. VanBokkelen		26 Princess St., Wakefield, MA  01880
FTP Software Inc.		voice: (617) 246-0900  fax: (617) 246-0901