ODI ARCHITECTURE
ODI (Open Datalink Interface)
Novell and Apple co-developed the ODI architecture. The ODI architecture refers to a series of network drivers loaded in DOS and the order in which they are loaded. ODI was developed in order to be able to use any vendor's network card with NetWare by simply installing the MLID driver provided by the vendor. NetWare, Novell's primary product, running its native IPX protocol, loads 4 drivers into memory:
LSL.COM-Link Support Layer
This driver loads first. It provides an interface between network hardware and network software. LSL.COM, along with its configuration file (NET.CFG) tell the network card driver what type of network is being used and also includes settings such as IRQ, memory address, buffers, and others.
XXXX.COM-MLID (Multi Link Interface Driver)
The name of this driver is specific to the type of network card being used, but always contains the .COM file extension. For example, if an NE2000 ethernet card is being used, the driver is called NE2000.COM. This driver relies on the LSL.COM for its configuration.
IPXODI.COM-Protocol driver
This is a driver which only NetWare uses. It is a protocol driver for the IPX protocol
VLM.EXE-Virtual Loadable Module
Provides network services such as file and print capabilities in a NetWare environment.
NetWare 3.11 vs 3.12
NetWare 3.11 and earlier used a driver called NETX.EXE instead of the current VLM.EXE which is used with 3.12 and later. When working with NetWare, it is important to determine if NETX or VLM is being used. 3.12 is backward compatible with NETX, meaning that NETX.EXE can be substituted for the VLM.EXE in version 3,12 and later.
NETWARE USING NETX (3.11)
LSL.COM
XXXX.COM
IPXODI.COM
NETX.EXE
NETWARE USING VLM (3.12)
LSL.COM
XXXX.COM
IPXODI.COM
VLM.EXE
Using AppleShare and NetWare simultaneously
AppleShare and NetWare are both ODI stacks, and therefore install very similar files. The key to getting them to run simultaneously is to integrate these files into one set which can be used by both applications. If NetWare is already installed, a standard installation of AppleShare should automatically make the proper changes.
DOS-level Files installed by NetWare
C:\\NWCLIENT\\STARTNET.BAT-->batch file which loads the netware drivers listed above
C:\\NWCLIENT\\NET.CFG-->configuration file for LSL.COM
C:\\NWCLIENT\\LSL.COM
C:\\NWCLIENT\\XXXX.COM-->MLID
C:\\NWCLIENT\\IPXODI.COM-->ipx/spx protocol driver
C:\\NWCLIENT\\NETX.EXE or VLM.EXE
DOS-level Files installed by AppleShare
C:\\APPLE\\A_SHARE\\ATDRIVER.BAT
C:\\APPLE\\A_SHARE\\NET.CFG
C:\\APPLE\\A_SHARE\\LSL.COM
C:\\APPLE\\A_SHARE\\XXXX.COM-->MLID
C:\\APPLE\\A_SHARE\\ODI.EXE-->AppleTalk protocol driver
AUTOEXEC.BAT with NetWare+AppleShare
The AUTOEXEC.BAT should start with the following 2 lines:
call C:\\NWCLIENT\\STARTNET.BAT
call C:\\APPLE\\A_SHARE\\ATDRIVER.BAT
They need to be loaded in this order, or AShare will not be able to find the LSL.COM
ATDRIVER.BAT with NetWare installed
rem C:\\APPLE\\A_SHARE\\LSL.COM
rem C:\\APPLE\\A_SHARE\\XXXX.COM
C:\\APPLE\\A_SHARE\\ODI.EXE
The first 2 lines are remarked because these files are already being loaded by the STARTNET.BAT for NetWare. Thus, we end up with the combined drivers loading in the following order:
C:\\NWCLIENT\\STARTNET.BAT
C:\\NWCLIENT\\NET.CFG
C:\\NWCLIENT\\LSL.COM
C:\\NWCLIENT\\XXXX.COM-->MLID
C:\\NWCLIENT\\IPXODI.COM
C:\\NWCLIENT\\NETX.EXE or VLM.EXE
C:\\APPLE\\A_SHARE\\ODI.EXE
Another way to go about it is to completely remove the ATDRIVER.BAT and the corresponding call statement in the AUTOEXEC.BAT and add the C:\\APPLE\\A_SHARE\\ODI.EXE line to Novell's STARTNET.BAT
Sample NET.CFG with NetWare installed
Note: when NetWare is installed, AppleShare uses the LSL.COM and its configuration file (NET.CFG) from the C:\\NWCLIENT directory, not the C:\\APPLE\\A_SHARE\\ directory.
Sample:
#
# Configuration file for xxxx
# Unknown NIC
#
Link Support
Buffers 10 628
MemPool 16K
Protocol AppleTalk
DEFAULT xxxx
AARP xxxx H(0001) L(6) B(090007FFFFFF)
Link Driver xxxx
FRAME ETHERNET_SNAP
FRAME ETHERNET_802.3
PROTOCOL IPX 0 ETHERNET_802.3
PROTOCOL APPLETALK 80007809B ETHERNET_SNAP
PROTOCOL AARP 80F3 ETHERNET_SNAP
INT 10
PORT 300
This sample is the same as the default NET.CFG that AShare uses when no other network software is involved. The NET.CFG for NetWare will contain additional sections which are only for use by NetWare. One of these sections is titled "NetWare DOS Requester". Installation of Ashare will not affect these sections, and thus they are not of concern when installing AppleShare. The important lines to look for in here are the Ethernet_SNAP frame statement and the Appletalk protocol statement.
Apple Share and NETX.EXE
There is an error in the PROBLEMS.WRI file for AppleShare client in regards to using Ashare with Novell 3.11 or earlier, which uses NETX.EXE.
It says: NETX.EXE, the NetWare connection utility, does not work with AppleShare Client for Windows. NETX, and similar network connection utilities, are written for other networks and are specific to their respective networks. These utilities cannot be used for connecting to a server of another type, such as an AppleShare server.
First of all, AShare does not even use NETX. It only uses the LSL and the MLID from the STARTNET.BAT file. Ashare uses its own ODI.EXE to connect to an AppleShare server.
In most cases, NetWare clients will have a line in the autoexec.bat which reads F:login. When NETX is loaded, it automatically connects to the first available server, unless otherwise specified. Then the login program on the server (F:) must be run in order to access files. NetWare mounts drives on drive letters which fall after the drive specified in the lastdrive statement. Therefore, lastdrive has to be set to E in order for the first NetWare server to mount on drive F:.
When AppleShare is installed it changes the lastdrive to z. This leaves no drives after the lastdrive to mount the netware server. Simply changing the lastdrive to E will not really work, because that only leaves drives D: and E: for use with ashare, and if they have a cd rom, only one of these will be available. What must be done is to change the lastdrive to something like m. This will cause the netware server to attach to drive N:. At this point, if they have F:login in the autoexec, it will give the message "bad command or file name." Simply change the F to whatever drive the server has used--in this case N:.
MemPool
This line (in net.cfg) specifies the amount of memory which is allocated to the network card driver (MLID). In some cases, increasing the amount of memory allocated can solve problems involving multiple protocol stacks. By default , the mempool line in the link support section reads," MemPool 16k". this value can be set as high as 64k. If it is set to a value higher than this, it will only allocate 64k.
Windows for Workgroups
NDIS
NDIS (Network Driver Interface Standard)
Microsoft networks (Windows for Workgroups and Windows NT) use NDIS-type drivers instead of ODI. All of the network drivers involved with Windows for Workgroups load when Windows starts. Windows for Workgroups can also be configured to use ODI drivers which load at the DOS level.
Aside from Microsoft products, many TCP/IP stacks use NDIS. AppleShare, however, can only be configured to work with Windows for Workgroups NDIS. It will not recognize any other NDIS- type drivers during installation. If AppleShare is to work with these TCP/IP stacks, the TCP/IP must be configured to work with ODI.
Installing AppleShare to work simultaneously with a Windows for Workgroups network
There are 2 ways to install AppleShare so that it will co-exist with Windows for Workgroups networking software.
1. Install AppleShare over an existing Windows network so that AShare uses NDIS.
2. Install AppleShare while no windows network is configured and then configure windows to use the ODI drivers which AShare installed. Installing AppleShare using NDIS is covered in the AppleShare manual.
Configuring Windows for Workgroups to use ODI
1. Install AppleShare using standard installation while no WFWG net is configured
2. Make sure that AppleShare is working properly
3. Go to the Network group from the program manager and choose Network Setup
4. In the window that follows, click on the "Networks" button.
5. Select "Install Microsoft Windows Network" and click "ok"
6. On the next screen, choose "drivers"
7. choose "add adapter"
8. Choose the approprate network card from the list and click OK NetBeui and IPX/SPX compatible transport protocols are installed. TCP/IP software can also be obtained from Microsoft and installed.
9. Highlight the adapter name shown in the window and click "setup"
10. Change the driver type to "ODI Driver" and click OK . When finished, click "close". Then click OK
11. Windows will prompt you to insert a username and password for the network and then ask for the necessary Windows disks.
12. When finished, Windows will prompt you to restart your computer.
13. While DOS is booting, you will receive a message which reads "ERROR: cannot find LSL". Press any key to continue.
14. Use the edit command to edit the autoexec.bat. The first three lines in the AUTOEXEC.BAT will read:
C:\\WINDOWS\\net start
C:\\WINDOWS\\odihlp.exe
call C:\\APPLE\\A_SHARE\\ATDRIVER.BAT
The order of these lines needs to be changed so that it reads:
C:\\WINDOWS\\net start
call C:\\APPLE\\A_SHARE\\ATDRIVER.BAT
C:\\WINDOWS\\odihlp.exe
15. Save this file and restart the computer.--installation is complete. If an error 58 occurs while starting windows, the incorrect adapter is chosen in windows.
MemPool
This line (in net.cfg) specifies the amount of memory which is allocated to the network card driver (MLID). In some cases, increasing the amount of memory allocated can solve problems involving multiple protocol stacks. By default , the mempool line in the link support section reads," MemPool 16k". this value can be set as high as 64k. If it is set to a value higher than this, it will only allocate 64k.
TCP/IP
TCP/IP packages come in 2 varieties--NDIS and ODI. AppleShare client for windows will only work with ODI-based TCP/IP. Normally, TCP/IP software which uses NDIS drivers can be configured to work with NetWare, or ODI drivers. This is the key to getting NDIS TCP/IP to work with Ashare.
Some examples of NDIS TCP/IP packages:
C:\\apple\\a_share\\lsl.com
C:\\apple\\a_share\\XXXX.com (mlid driver)
C:\\odipkt.com (or whatever the TCP/IP driver name is)
C:\\apple\\a_share\\odi.exe
Typical LINK SUPPORT AND LINK DRIVER of NET.CFG for tcp/ip follows:
LINK SUPPORT
MEMPOOL 64k
BUFFERS 6 1600
MAX STACKS 6
LINK DRIVER 3C5X9
INT 10
PORT 300
FRAME ETHERNET_II
FRAME ETHERNET_SNAP
PROTOCOL IP 800 ETHERNET_II
PROTOCOL ARP 806 ETHERNET_II
PROTOCOL RARP 8035 ETHERNET_II
PROTOCOL APPLETALK 80007809B ETHERNET_SNAP
PROTOCOL AARP 80F3 ETHERNET_SNAP
Binding TCP/IP protocols in the net.cfg
The following lines must be added to the link driver section of the net.cfg in order to use TCP/IP:
Link Driver XXXX
Frame Ethernet_II
Protocol IP 800 Ethernet_II
Protocol ARP 806 Ethernet_II
Protocol RARP 8035 Ethernet_II
Without these lines, the tcp/ip software will load, but will not be functional on the network.
Max Stacks
This line allows multiple protocol stacks to access the same ethernet card. Without fail, the Max Stacks line must be added to the Link Support section of the net.cfg in order to get appleshare and tcp/ip to work simultaneously. If the Max Stacks line is absent, the resulting error will read, "LSL out of resources" when either the ODI.EXE or the tcp/ip packet driver loads. The line should read: "Max Stacks 6" or "Max Stacks 8"
MemPool
This line (in net.cfg) specifies the amount of memory which is allocated to the network card driver (MLID). In some cases, increasing the amount of memory allocated can solve problems involving multiple protocol stacks. By default , the mempool line in the link support section reads," MemPool 16k". this value can be set as high as 64k. If it is set to a value higher than this, it will only allocate 64k.