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