File ODIPKT.DOC NAME ODIPKT Translate Open Data-Link Interface to Packet Driver interface. SYNOPSIS ODIPKT [ logical_board [ vector ] ] ODIPKTpn [ logical_board [ vector ] ] DESCRIPTION ODIPKT provides a Packet Driver API over Novell's Open Data-Link Interface (ODI), allowing a single network adapter to service IPX, TCP/IP, and other protocol stacks which use packet drivers. ODIPKT understands Ethernet, Token Ring, and ARCnet frame types. Ethernet and Token Ring frames are passed unchanged to packet driver applications, but ARCnet frames are internally mapped to Ethernet. Thus, packet driver applications do not need specific knowledge of ARCnet in order to operate in such environments. The logical_board argument indicates which logical adapter ODIPKT should bind to. Under ODI, there is one logical adapter per frame type. There may be multiple physical adapters, and multiple frame types per physical adapter. The logical adapter number starts at zero and increases by one for each frame type. For example, if a system contained two physical adapters with two frame types each, there would be four logical adapters numbered 0-3. The frame types are specified in the NET.CFG file which must be in the current directory (or on the APPEND path) when the ODI drivers are loaded. Typically, the frame type used by default by Netware on a given adapter will not be appropriate for TCP/IP. The correct frame type for TCP/IP on Token Ring is TOKEN-RING_SNAP and the correct frame type for TCP/IP on Ethernet is almost always ETHERNET_II. Assuming an existing installation with one adapter running the default Netware frame type, it will usually be necessary to define a second frame type (as listed above) and to specify the logical_board argument as 1. An exception to this rule is ARCnet which uses only one frame type. Below is a NET.CFG entry for a 3c501 using the default address and interrupt. Other Ethernet adapters would use similar configurations: Link driver 3c501 envelope type ETHERNET_802.3 envelope type ETHERNET_II Given the above entry, the logical_board argument of ODIPKT would be 1. Token Ring uses different frame types: Link driver token envelope type TOKEN-RING envelope type TOKEN-RING_SNAP Again, the logical_board should be specified as 1 for this nexample. ARCnet installations require no frame-type definitions and should use a logical_board of 0. Because ODIPKT.COM uses buffers provided by the Link Support Layer, the Link support section of NET.CFG must specify at least one buffer of a size appropriate to the medium in use. Some adapters require more buffers for optimal performance, e.g., the 3c503 can use at least five during reception of back-to-back packets. The following lines configure five buffers large enough for Ethernet: Link support Buffers 5 1600 The correct buffer size for Token Ring will vary depending on the installation. Specifying too small a buffer size will result in unpredictable behavior. Vector is the packet driver interrupt at which to provide service. The default is 105 and the parameter is decimal. ODIPKT.COM should be loaded after lsl.com and the adapter-specific driver(s). It must, of course, be loaded before the packet driver applications which use it. The Netware shell and ipxodi.com can be loaded before or after the ODIPKT.COM program. ODIPKTPN.COM supports an older version of the ODI specification as used in Farallon's PhoneNET Talk product. Operation of ODIPKTPN.COM is identical to that of ODIPKT.COM but configuration of NET.CFG is somewhat different: no ``envelope'' statements are required or allowed. Because multiple frame types are not supported, ODIPKTPN.COM treats all Ethernet cards as ETHERNET_II. AUTHOR Dan Lanciani 185 Atlantic Road Gloucester, MA 01930 The following copyright notice appears in the ODIPKT.ASM source file: ; ODIPKT.ASM - Adapter provides Packet Driver interface over ODI ; ; (c) Copyright Daniel D. Lanciani 1991-1994. All rights reserved. ; ; This unmodified source file and its executable form may be used and ; redistributed freely. The source may be modified, and the source or ; executable versions built from the modified source may be used and ; redistributed, provided that this notice and the copyright displayed by ; the exectuable remain intact, and provided that the executable displays ; an additional message indicating that it has been modified, and by whom. ; ; Daniel D. Lanciani releases this software "as is", with no express or ; implied warranty, including, but not limited to, the implied warranties ; of merchantability and fitness for a particular purpose. ; ; Please send bug reports to: ; Dan Lanciani ; 185 Atlantic Road ; Gloucester, MA 01930 ; USA ; Voice: +1 508 283-4974 ; Email: ddl@harvard.harvard.edu (Internet) USING ODIPKT WITH MS-DOS KERMIT ODIPKT is normally not needed, since MS-DOS Kermit 3.13 and later includes its own ODI interface, and can run on top of your network board's ODI driver. Under Microsoft Windows, however, unless Kermit is "locked in memory", Windows will move it around causing system crashes (or worse) when the ODI driver goes to write incoming data into Kermit's memory space (this is not a Kermit problem -- it would happen with any network application). Therefore we need to run Kermit over the WINPKT "shim". But WINPKT goes over a packet driver, not an ODI driver. That's where ODIPKT comes in -- it makes the ODI driver look like a packet driver to WINPKT, which, in turn feeds packets to Kermit.