Implementing Multi-Protocol Network

Drivers in a DOS Environment


November 13, 1992 University Computing and Networking Services Client Services University of Georgia Athens, Georgia 30602 (404) 542-3106 GIST 241-3106 UGA PROFS: helpdesk BITNET: helpdesk@uga Internet: helpdesk@uga.cc.uga.edu

CONTENTS

Introduction
Communications Protocols
IPX/SPX Protocols
TCP/IP Protocols
SNA Protocols
Installation Instructions
Network Card Installation
Packet Driver Installation (Ethernet)
ODI Driver Installation (Ethernet)
NDIS Driver Installation (Ethernet)
ASI Driver Installation (Token Ring)
SNA Communications over Ethernet
Windows and Packet Drivers
Memory Considerations
Appendix 1: Packet Driver Shim Diagram
Appendix 2: Packet Driver Diagram
Appendix 3: ODI Driver Diagram
Appendix 4: Sample NET.CFG File for SMC MLID Driver
Appendix 5: Sample PROTOCOL.INI File for SMC NDIS Driver
Appendix 6: NDIS Driver Diagram
Appendix 7: ASI Driver Diagram
Appendix 8: NDIS & ASI Diagram
Appendix 9: Sample PROTOCOL.INI File for SMC NDIS & ASI
Appendix 10: ODI, NDIS, & ASI Diagram
Appendix 11: Sample NET.CFG File for SMC ODI & ASI
Sample PROTOCOL.INI File for SMC NDIS & ASI
Appendix 12: Approximate Memory Utilization (SMC Card)

INTRODUCTION

When local area networks (LANs) involving DOS-based personal computers first came on the scene, the software drivers for the network cards typically supported a single communications protocol for a given (proprietary) network operating system. As network users expressed a need to access computing resources that supported different communications protocols, vendors began developing network drivers that supported multiple protocols on a single card. These "native" drivers communicated directly with the network card and provided a published interface specification to which application programs could be written.

FTP Corporation was one of the first vendors to articulate a multi-protocol specification, which they called the Packet Driver (PD) spec. IBM, focussing on Token Ring network technology, developed a specification for their Adapter Support Interface (ASI) drivers (also referred to as the IBM LAN Support or DXMx0MOD "dixie-mod" drivers). The Network Driver Interface Specification (NDIS) was later developed by Microsoft and 3COM as an alternative to FTP's Packet Driver specification. Novell and Apple were the last players to join the multi-protocol driver arena with their Open Datalink Interface (ODI) spec.

Each of the different multi-protocol specifications has its strengths and weaknesses, depending on the communications protocols that need to be supported and the type of network interface card in use. In fact, it is likely that more than one specification will be needed to support the various protocols.

For Ethernet networks, ODI, PD, or NDIS drivers can be used. However, ODI drivers are generally superior because they can support the different Ethernet frame types needed for different communications protocols. NDIS and PD only support one frame type at a time. (An Ethernet frame is like an envelope containing data and unfortunately there are a number of possible types of envelopes in an Ethernet environment.) ASI drivers currently provide the best multi-protocol interface for Token Ring environments and the issue of different frame types is not as problematic as it is in an Ethernet environment.

This document will focus on three communications protocols -- Novell's Internet Packet Exchange/Sequenced Packet Exchange (IPX/SPX) protocols, the Transmission Control Protocol/Internet Protocol (TCP/IP) suite, and IBM's System Network Architecture (SNA) protocols -- and the network drivers that best support those protocols. Installation instructions for each of the four multi- protocol drivers will be given.

(IMPORTANT NOTE: The instructions indicate that a number of driver support files are obtainable from the University of Georgia's anonymous FTP server ftp.uga.edu. The TCP/IP host that is used to download these files MUST be registered in a domain name server. You will be denied anonymous access to ftp.uga.edu if your machine is not registered.)

COMMUNICATIONS PROTOCOLS

IPX/SPX Protocols

In order to communicate with a Novell file server, it is necessary to load an IPX/SPX driver into memory. IPX/SPX drivers were originally designed to communicate directly with the network card. However, when Novell introduced the ODI specification, they began promoting it as the preferred method of IPX/SPX communication. (In fact, Novell has announced that they will only support ODI in the not-too-distant future.) For Ethernet attached workstations, ODI provides the best interface for IPX/SPX support (although it is possible to support IPX/SPX using PD or NDIS drivers.) Even though ODI drivers exist for Token Ring cards, an IPX/SPX driver that communicates with IBM's ASI interface is preferred because of the constraints imposed by TCP/IP support requirements.

TCP/IP Protocols

Because of the influence of the Department of Defense (DOD), the DOD TCP/IP protocol suite has become the de facto communications standard used by a multitude of network software providers. TCP/IP applications -- such as Telnet (remote terminal), FTP (file transfer), and Gopher (document delivery) services -- are available for nearly all computing platforms including DOS and Macintosh microcomputers, multi-user UNIX workstations, VAX minicomputers and IBM mainframes.

Commercial DOS-based TCP/IP packages typically use either ODI drivers (Novell's LAN Workplace for DOS) or NDIS or PD implementations (FTP Software's PC/TCP product). These packages usually cost $200 or more per workstation. However, most of the public-domain or shareware TCP/IP applications -- such as Clarkson University's CUTCP Telnet/FTP package, the University of Minnesota's Gopher client, various Post Office Protocol (POP) e-mail clients, or the Trumpet News reader program (for accessing USENET News discussion groups) -- have been written to interface with Packet Drivers for Ethernet cards only. (In fact, there are no PDs that directly interface with Token Ring cards.)

Some Ethernet card manufacturers have implemented their own Packet Drivers. However, the majority of the PDs in existence today were written by individuals at a number of universities and managed by Russell Nelson at Clarkson University. (Russ "the Packet Driver King" has now formed his own company, CRYNWYR, INC., and he supports the public domain PDs for a nominal fee.)

In order to use the non-commercial TCP/IP packages (supporting Packet Drivers) with native ODI, NDIS, or ASI drivers, it is necessary to install a Packet Driver "shim" program to convert those native driver interfaces into a PD interface. The figure in Appendix 1 shows how the various driver and shim programs fit together to support the application programs.

SNA Protocols

SNA communications are best suited for clients who wish to access administrative databases on the IBM mainframe and be able to print database information directly to an attached printer on their workstation. All of the SNA communications programs (that I am aware of), such as Attachmate Extra! Extended for DOS, have been written to use IBM's LAN Support (ASI) interface. (Note: The LAN Support package costs approximately $40 per workstation.) In a Token Ring environment, this is the natural interface to use.

For Ethernet users, the LAN Support package provides an NDIS-to-ASI shim, which means that there must be an NDIS driver available for the network card. If IPX/SPX or TCP/IP support is needed in addition to SNA communications, one must use ODI drivers to communicate directly with the network card and a pair of shim programs to support SNA applications. These configurations are discussed in the section titled "SNA Communications over Ethernet".

INSTALLATION INSTRUCTIONS

Network Card Installation

The prime consideration when installing a network card is ensuring that the hardware parameters for the card do not conflict with those of any other device in the workstation. The number and types of hardware parameters differ from card to card and they are either software selectable or are set by jumpers. Examples of these parameters include hardware interrupt request (IRQ) numbers, I/O (port) addresses, base (or shared RAM) memory addresses, direct memory access (DMA) channel numbers, primary or secondary adapter numbers (for Token Ring cards), or slot numbers (for MicroChannel and EISA devices).

Most manufacturers provide diagnostic software which can usually detect hardware parameter conflicts. It is strongly recommended that these diagnostic tests be executed, ideally in an environment where the workstation is the only node on the network. After the network card has passed the diagnostic tests, the hardware parameters (usually obtained from the diagnostic program) can be used to configure the appropriate driver software.

Packet Driver Installation (Ethernet)

The CRYNWYR Packet Driver collection, maintained by Russ Nelson, contains PD implementations for many of the network cards on the market. A current copy of this collection can be found in the archive file PD11.ZIP.

In order to install a given Packet Driver, it is necessary to know the relevant hardware parameters for the network card. (Note: The file INSTALL.DOC in PACKET9S.ZIP describes the relevant parameters for all of the cards supported in the CRYNWYR collection and shows how each of the drivers is invoked.) One also needs to choose an unused DOS software interrupt vector, which is a location in memory that points to the Packet Driver program. Application programs communicate with the PD program through this software interrupt. The interrupt vector 0x60 is typically available and is recommended as a first choice. (Note: The 0x in front of the number 60 indicates that it is a hexadecimal number.) The figure in Appendix 2 shows how the Packet Driver interfaces with the network card and the PD application program.

As an example, suppose you want to communicate via IPX/SPX and TCP/IP and you have a Standard Microsystems (nee Western Digital) Ethernet card, which has a hardware interrupt of 0x7 (hex 7), an I/O port address of 0x280, and a shared RAM memory address of 0xD0000. To invoke the driver, you would add the line

WD8003E -n 0x60 0x7 0x280 0xD000
to the batch file that calls it. The -n switch indicates that standard Novell packets will be supported. You also need an IPX communications program that interfaces with Packet Drivers. The file IPXPD.COM supports the Packet Driver interface.

If the Clarkson CUTCP package is utilized, you need to set certain parameters in a file called CONFIG.TEL in order to communicate with a Packet Driver. First, the line hardware=packet must appear in CONFIG.TEL. Second, it is recommended that the line ioaddr=0 be placed in CONFIG.TEL, which indicates that the CUTCP software will look for the first software interrupt vector used by a Packet Driver. (If necessary, one can hard code an interrupt vector number, without the 0x prefix, on the ioaddr= line. For example, ioaddr=60 corresponds to interrupt vector 0x60.) Finally, you may need to specify a packet class using the address= parameter. The default packet class is 0 (Ethernet Version 2), but class 11 (IEEE 802.3 Ethernet) can also be specified.

ODI Driver Installation (Ethernet)

The figure in Appendix 3 shows how ODI applications and support programs fit together to provide IPX/SPX and TCP/IP communications. A Multiple Link Interface Driver (MLID) program, supplied by the network card manufacturer, communicates directly with the card and interfaces with a Link Support Layer (LSL.COM) program. The LSL.COM program keeps track of the various communications protocols in use and it ensures that the right communications program gets the correct data packet. Support for IPX/SPX communications is provided by the IPXODI.COM program.

A text file called NET.CFG provides all of the configuration information needed by the various ODI support programs. NET.CFG is divided into sections with each section delineated by a section header line starting in column one. Subsequent lines in the section, containing relevant configuration information, start in columns two or higher. All of the text is case-insensitive. Appendix 4 gives a sample NET.CFG for an Ethernet card from Standard Microsystems Corporation.

Each MLID program requires a section titled "Link Driver XXX" where XXX is the "internal" name of the MLID. (Note: This internal name may be different than the name given to the MLID executable (COM) file. See manufacturer's installation instructions for the correct name.) The remaining lines in the section specify the hardware parameters required by the MLID for proper communication with the network card. They may also indicate the frame types needed by the various communications protocols. A "virtual" board is created for each frame type specified in NET.CFG. (Note: IPX/SPX communications on the UGA campus uses Ethernet 802.3 frames and standard Token Ring frames. Ethernet Version II frames and Token Ring SNAP frames are needed for TCP/IP communications.) Another of the NET.CFG sections is titled "Link Support" and it contains parameters that are used by LSL.COM such as the number and size of communications buffers. A section titled "Protocol PPP" may also be needed to associate communications protocol PPP with a given MLID. This section minimally contains the line:

Bind XXX
where XXX is either the internal name of the MLID or it is a number (preceded by a # sign) indicating the virtual board to which the protocol must be bound (assuming there is only one MLID present).

In order to support TCP/IP applications that communicate through a Packet Driver interface, it is necessary to use an ODI-to-PD shim program. The public domain program ODIPKT.COM, written by Dan Lanciani at Harvard University, provides the shim function. To invoke ODIPKT.COM, add the following to an appropriate batch file:

ODIPKT vb# soft_int
where vb# is a number from 0 through 3 which corresponds to the virtual board (1 through 4) that supports Ethernet Version II frames and soft_int is the software interrupt vector (in decimal) used for Packet Driver communications. (Note: See the last paragraph in the PD installation section for a discussion of Clarkson's CUTCP package and PD support.)

The following sample lines need to be added to a batch file to invoke ODI drivers (for an SMC Ethernet card) supporting IPX/SPX and PD-based TCP/IP communications:

LSL
SMCPLUS
ODIPKT 1 96
IPXODI
NETX
To support other network cards, one needs to replace the SMCPLUS MLID listed above with the appropriate MLID from the card manufacturer. One also needs to change the ftp://ftp.uga.edu/pub/micro/dos/drivers/odi/net.cfg">sample NET.CFG file listed in Appendix 4 to reflect the card in use.

NDIS Driver Installation (Ethernet)

Because NDIS cannot support more than one frame type at a time, it is recommended that NDIS drivers not be used unless either no other drivers are available or NDIS is required by the communications program. If NDIS drivers are required, there are a minimum of five files that must be utilized -- PROTOCOL.INI, PROTMAN.EXE, NETBIND.EXE, PRO.MSG, and the NDIS driver for the network card.

The text file PROTOCOL.INI contains the configuration information needed for the NDIS card driver as well as the NDIS applications that communicate with that driver. PROTOCOL.INI is divided up into sections with each section starting with a title surrounded by square brackets []. Lines containing relevant keyword parameters follow the section title line and each section is separated by a blank line. A sample PROTOCOL.INI file for an SMC Ethernet card is shown in Appendix 5.

One of the required sections is titled [PROTOCOL_MANAGER]; the title line has a single line following it which contains the keyword DriverName=PROTMAN$. This corresponds to the program PROTMAN.EXE which facilitates the exchange of configuration information between the NDIS driver and the NDIS application driver. The figure in Appendix 6 shows how PROTMAN.EXE interfaces with the NDIS driver and the application program.

For every NDIS driver there must be a section dealing with the hardware parameters for the card. The hardware parameters include the IRQ number, the shared RAM address, the I/O port address, etc. Other NDIS parameters may involve the number of receive buffers and their size. One critical line in the NDIS driver section is the DriverName=NNN$ keyword where NNN.DOS is the name of the NDIS driver. The title of the NDIS driver section is used in a Bindings= line, which must be specified in every NDIS application section that uses the driver.

To support both IPX/SPX and PD-based TCP/IP packages, an NDIS-to-PD shim program must be loaded. This program, called DIS_PKT9.DOS, was written by Joe Doupnik at Utah State University. The section titled [PKTDRV] in the sample PROTOCOL.INI file (in Appendix 5) shows the relevant keywords needed to support the shim program. The INTVEC=0x60 keyword specifies the software interrupt vector 0x60 and the Bindings=SMCMAC binds the SMC NDIS driver to the PD shim application. (Note: See the last paragraph in the PD installation section for a discussion of Clarkson's CUTCP package and PD support.)

The following sample lines need to be added to CONFIG.SYS to load an SMC NDIS driver:

DEVICE=c:\ndis_dir\PROTMAN.EXE /I:C:\ndis_dir
DEVICE=c:\ndis_dir\SMCMAC.DOS
DEVICE=c:\ndis_dir\DIS_PKT9.DOS
where ndis_dir is the directory containing the PROTOCOL.INI, PROTMAN.EXE, SMCMAC.DOS, and DIS_PKT9.DOS files as well as the error message file PRO.MSG which is provided by the card manufacturer. To work with another network card, the SMCMAC.DOS driver needs to be replaced with the NDIS driver for the card and an appropriate section needs to be added to the PROTOCOL.INI file. If other applications need to communicate with the driver, their NDIS interface programs must be added as device drivers to CONFIG.SYS. (Note: Because NDIS drivers are loaded in CONFIG.SYS, one cannot unload these drivers unless CONFIG.SYS is modified and the machine is rebooted.)

The NETBIND.EXE program must also be invoked in a batch file to bind the NDIS applications and NDIS driver together. This process is facilitated by PROTMAN.EXE, which is not involved in the driver- to-application communication after binding has occurred. Assuming that one wants to support IPX/SPX communications, the following sample lines need to be added to an appropriate batch file:

NETBIND
IPXPD
NETX
where IPXPD.COM is an IPX driver that supports a Packet Driver interface. (Note: PROTOCOL.INI, PROTMAN.EXE, NETBIND.EXE, and DIS_PKT9.ZIP can be obtained from UGA's anonymous FTP server as can more information about NDIS).

ASI Driver Installation (Token Ring)

IBM's Adapter Support Interface drivers provide the best multiprotocol support for Token Ring networks. These ASI drivers, which are a part of the IBM LAN Support Package, are also called "dixie-mod" drivers because of the three drivers -- DXMA0MOD.SYS, DXMC0MOD.SYS, and DXMT0MOD.SYS -- that need to be loaded in CONFIG.SYS to support the various communications protocols. The figure in Appendix 7 shows how these drivers interface with the Token Ring card and the ASI applications.

DXMA0MOD.SYS must be loaded first and it is required for the other DXM drivers. DXMC0MOD.SYS is the driver that actually communicates with the Token Ring card. DXMT0MOD.SYS is normally used for NETBIOS communications and it is required for PD-based TCP/IP support drivers. The following four lines must be added to CONFIG.SYS to load the dixie-mod drivers:

DEVICE=C:\lans_dir\DXMA0MOD.SYS
DEVICE=C:\lans_dir\DXMC0MOD.SYS
DEVICE=C:\lans_dir\DXMT0MOD.SYS
STACKS=9,512
where lans_dir is the location of the LAN Support drivers. The STACKS= line is needed to support TCP/IP packages that interface with a Packet Driver.

IBMTOKEN.COM is a shim program that converts the ASI interface to a PD interface. In fact, it emulates an Ethernet card supporting Ethernet Version II frames. To invoke this ASI-to-PD shim program, place the line

IBMTOKEN int_vec adapt_num
in an appropriate batch file, where int_vec is the software interrupt vector (typically 0x60) and adapt_num specifies either a primary (0) or secondary (1) adapter. (Note: See the last paragraph in the PD installation section for a discussion of Clarkson's CUTCP package and PD support.)

To support IPX/SPX communications, an IPX program (IPXASI.COM) that communicates with the LAN Support ASI interface is needed. Because IBMTOKEN.COM insists on opening the Token Ring adapter first, one must use IPXASI.COM driver v2.60, since later versions of IPXLSP.COM also want to be the only programs to open the adapter. The following sample lines can be placed in an appropriate batch file to support IPX/SPX and PD-based TCP/IP communications:

IBMTOKEN 0x60 0
IPXASI
NETX

With regard to SNA support, commercial 3270 packages such as Attachmate Extra! for DOS and Attachmate Extra! for Windows communicate through IBM's ASI interface. The DLC DFT option in these packages must be specified when configuring them for Token Ring networks attached to the campus backbone through an IBM 8209 Token Ring to Ethernet bridge.

SNA Communications over Ethernet

IBM's LAN Support Package (v1.2) contains an Ethernet driver that provides an ASI interface for SNA 3270 communications packages. This NDIS-to-ASI shim driver, DXME0MOD.SYS, communicates with the Ethernet card through an NDIS interface. If one only wants to "speak" SNA protocols, an NDIS driver for the Ethernet card is all that is needed (in addition to the LAN Support package). The figure in Appendix 8 indicates how the various drivers interface together.

The installation procedure for this configuration is a combination of the procedures for NDIS and ASI installations. The following lines must be placed in CONFIG.SYS to set up the combined ASI and NDIS drivers:

DEVICE=C:\lans_dir\PROTMAN.EXE /I:C:\lans_dir
DEVICE=C:\lans_dir\ndis_driver.DOS
DEVICE=C:\lans_dir\DXMA0MOD.SYS
DEVICE=C:\lans_dir\DXME0MOD.SYS ,64
where lans_dir is the directory containing PROTMAN.EXE, PROTOCOL.INI, PRO.MSG, DXMA0MOD.SYS, DXME0MOD.SYS, and the NDIS driver ndis_driver.DOS. In addition, the NETBIND.EXE program must be executed in a batch file and a suitable PROTOCOL.INI file must be used. Appendix 9 contains a sample PROTOCOL.INI file supporting NDIS and NDIS-to-ASI shim drivers for an SMC Ethernet card.

If IPX/SPX or TCP/IP support is needed in addition to SNA communications, one must use ODI drivers to communicate directly with the network card and a pair of shim programs to support SNA applications. The combination of network drivers on top of ODI is depicted in the figure located in Appendix 10. MLID drivers speak directly to the network card, providing the support for IPX/SPX protocols. (Note: You must have an MLID driver that is linked with Ethernet MSM Module v1.20 or later for this configuration to work.) An ODI-to-NDIS shim program (ODINSUP.COM), written by Novell, provides an intermediate link to the NDIS-to-ASI interface driver (DXME0MOD.SYS) which supports SNA applications. Only TCP/IP applications that directly interface with ODI drivers can be used in this complicated environment.

A section needs to be added to the NET.CFG file to support ODINSUP.COM and the Bindings= keyword in the DXME0MOD.SYS section of PROTOCOL.INI must contain the name of the ODI MLID rather than the section name for the NDIS driver. Appendix 11 provides sample NET.CFG and PROTOCOL.INI files for an SMC Ethernet card.

The CONFIG.SYS lines are essentially the same as shown above for NDIS drivers with the ndis_driver.DOS line removed (ODINSUP.COM takes the place of the direct NDIS driver), e.g.

DEVICE=C:\lans_dir\PROTMAN.EXE /I:C:\lans_dir
DEVICE=C:\lans_dir\DXMA0MOD.SYS
DEVICE=C:\lans_dir\DXME0MOD.SYS ,64
The following sample lines indicate the programs that must be loaded in an appropriate batch file to support SNA and IPX/SPX through an SMC Ethernet card:
LSL
SMCPLUS
ODINSUP
NETBIND
IPXODI
NETX

To support other network cards, one needs to replace the SMCPLUS MLID listed above with the appropriate MLID from the card manufacturer. One also needs to change the sample NET.CFG and PROTOCOL.INI files listed in Appendix 11 to reflect the card in use. (Note: LSL.COM, ODIPKT.COM, ODINSUP.COM, IPXODI.COM, NETX.COM, and sample NET.CFG files can be found in on FTP UGA and PROTMAN.EXE, NETBIND.EXE, DIS_PKT9.ZIP, and sample PROTOCOL.INI files are there as well.)

As far as SNA 3270 support is concerned, AttachMate Extra! Extended for DOS V2.30 (or higher) or AttachMate Extra! for Windows V3.30 must be used. Other 3270 communications products have not been tested and may or may not function in an Ethernet environment. The DLC DFT option in these packages must be specified when configuring them for Ethernet networks attached to the campus backbone.

Windows and Packet Drivers

To enable any kind of Packet Driver interface -- either direct PD implementations or PD shim programs -- to function properly in a Windows environment, it is necessary to load an additional program, WINPKT.COM, into memory after the PD interface program has been loaded and before invoking Windows. (Note: If you are using direct Packet Drivers with the -w option, remove that option before using WINPKT.COM). WINPKT.COM is invoked as follows:
WINPKT old_int
where old_int is the software interrupt used by the original PD interface program.

Memory Considerations

As one can guess from this discussion, support for more protocols means that one needs more memory to load the various network drivers and shim programs. With a precious 640K of memory available for both DOS applications and network drivers, it may be difficult if not impossible to support more than one communications protocol at a time. (Even a single protocol may be difficult to support if the network drivers take up too much memory. For example, ODI drivers take approximately 7 times more memory than PD equivalents.) The table in Appendix 12 provides an estimate of the memory consumed by the various network driver programs for an SMC Ethernet card. (Note: "Mileage" for other network cards may vary.)

Whenever possible, it is desirable to utilize memory management software -- such as Quarterdeck's QEMM/QRAM or memory managers supplied by MS-DOS 5.0 or DR-DOS 6.0 -- to load network drivers into high-memory regions above the 640K barrier. In a pinch, it may be possible to unload the network drivers from memory (especially ODI drivers).

APPENDIX 1

             Packet Driver Shim Diagram


                       ******************
                       * Packet Driver  *
                       *  Application   *
                       ******************
                               +
                               +
                               +
                       ******************
                       * ODI-, ASI-, or *
                       *   NDIS-to-PD   *
                       *      Shim      *
                       ******************
                               +
                               +
                               +
                        ****************
                        * ODI, ASI, or *
                        * NDIS Driver  *
                        ****************
                               +
                               +
                               +
                        ****************
                        * Network Card *
                        ****************
                                ||||||||

APPENDIX 2

                 Packet Driver Diagram


                                  ***************
             **************       *  PD-Based   *
             * IPXPD.COM  *       *   TCP/IP    *
             *  Program   *       * Application *
             **************       ***************
                    +                    +
                    +                    +
                    ++++++++++++++++++++++
                               +
                               +
                          **********
                          * Packet *
                          * Driver *
                          **********
                               +
                               +
                       *****************
                       * Ethernet Card *
                       *****************
                                ||||||||

APPENDIX 3

                  ODI Driver Diagram


                                  ***************
              ************        *  PD-Based   *
              * NETX.COM *        *   TCP/IP    *
              * Program  *        * Application *
              ************        ***************
                    +                    +
                    +                    +
                    +             **************
             **************       * ODIPKT.COM *
             * IPXODI.COM *       * ODI-to-PD  *
             *  Program   *       *    Shim    *
             **************       **************
                    +                   +
                    +                   +
                    +++++++++++++++++++++
                              +
                              +
                         ***********
                         * LSL.COM *
                         * Program *
                         ***********
                              +
                              +
                         **********
                         *  MLID  *
                         * Driver *
                         **********
                              +
                              +
                      *****************
                      * Ethernet Card *
                      *****************
                               ||||||||

APPENDIX 4

#---------------------------------------------------------------------#
#                                                                     #
#                         Sample NET.CFG File                         #
#                    for an SMC Ethernet MLID Driver                  #
#                                                                     #
#---------------------------------------------------------------------#

#---------------------------------------------------------------------#
#                                                                     #
#              Link Support Layer (LSL.COM) Section                   #
#                                                                     #
#---------------------------------------------------------------------#

Link Support
    Buffers 6 1514                # 6 Communications buffers, size 1514
    MemPool 2048                  # Used by some ODI applications

#---------------------------------------------------------------------#
#                                                                     #
#                       IPX Protocol Section                          #
#                                                                     #
#---------------------------------------------------------------------#

Protocol IPX
    Bind SMCPLUS                  # Binding IPX to first SMC MLID board

#---------------------------------------------------------------------#
#                                                                     #
#                       SMCPLUS MLID Section                          #
#                                                                     #
#---------------------------------------------------------------------#

Link Driver SMCPLUS
    Int     5                     # Hardware IRQ number
    Port    240 20                # I/O Port Address
    Mem     000D0000 2000/10      # Shared RAM Memory Address
    Frame   Ethernet_802.3        # IPX Frame Type
    Frame   Ethernet_II           # TCP/IP Frame Type

APPENDIX 5

;-----------------------------------------------------------------------;
;                                                                       ;
;                        Sample PROTOCOL.INI File                       ;
;                    for an SMC Ethernet NDIS Driver                    ;
;                                                                       ;
;-----------------------------------------------------------------------;
 
;-----------------------------------------------------------------------;
;                                                                       ;
;                        Protocol Manager Section                       ;
;                                                                       ;
;-----------------------------------------------------------------------;
 
[PROTOCOL_MANAGER]
    DriverName=PROTMAN$           ; The PROTMAN.EXE program
 
;-----------------------------------------------------------------------;
;                                                                       ;
;             Standard Microsystems Network Adapter Section             ;
;                                                                       ;
;-----------------------------------------------------------------------;
 
[SMCMAC]
    DriverName=SMCMAC$            ; SMC NDIS Driver
    IRQ=5                         ; Hardware IRQ Number
    RamAddress=0xB400             ; Shared RAM Memory Address
    IOBase=0x240                  ; I/O Port Address
    ReceiveBuffers=16
    ReceiveChains=16
    MaxRequests=10
    MaxTransmits=10
    ReceiveBufSize=1514           ; Receive Buffer Size (1514 bytes)
 
;-----------------------------------------------------------------------;
;                                                                       ;
;                      Packet Driver Shim Section                       ;
;                                                                       ;
;-----------------------------------------------------------------------;

[PKTDRV]
    DriverName=PKTDRV$            ; Joe Doupnik's DIS_PKT9.DOS shim
    Bindings=SMCMAC               ; NDIS Driver (section title)
    INTVEC=0x60                   ; Software Interrupt Vector for PD
    CHAINVEC=0x61                 ; ?
    Novell=Y                      ; Needed for IPX (802.3) support

APPENDIX 6

                            NDIS Driver Diagram

                                                   ***************
         ###############      ************         *  PD-Based   *
         #    NDIS     #      * NETX.COM *         *   TCP/IP    *
         # Application #      *  Program *         * Application *
         ###############      ************         ***************
                +                   +                     +
                +                   +                     +       
                +             *************               +
                +             * IPXPD.COM *               +
                +             *  Program  *               +
                +             *************               +
                +                   +                     +
                +                   +                     +
                +                   +++++++++++++++++++++++
                +                              +
         ###############                       +
         #    NDIS     #                ****************
         # Application #                * DIS_PKT9.SYS *
         #   Driver    #                *    Driver    *
         ###############                ****************
                +                              +
                +                              +
                ++++++++++++++++++++++++++++++++
                                    +
                                    +
                             ***************
                             * PROTMAN.EXE *
                             *   Program   *
                             ***************
                                    +
                                    +
                               **********
                               *  NDIS  *
                               * Driver *
                               **********
                                    +
                                    +
                            *****************
                            * Ethernet Card *
                            *****************
                                     ||||||||

APPENDIX 7

                       ASI Driver Diagram

                                              ***************
     ***************      ************        *  PD-Based   *
     *  SNA 3270   *      * NETX.COM *        *   TCP/IP    *
     * Application *      * Program  *        * Application *
     ***************      ************        ***************
            +                   +                    +
            +                   +                    +
            +                   +             ****************
            +            **************       * IBMTOKEN.COM *
            +            * IPXASI.COM *       *  ASI-to-PD   *
            +            *  Program   *       *     Shim     *
            +            **************       ****************
            +                   +                    +
            +                   +                    +
            ++++++++++++++++++++++++++++++++++++++++++
                                +
                                +
                          *************
                          *    ASI    *
                          * Dixie-mod *
                          *  Drivers  *
                          *************
                                +
                                +
                          **************
                          * Token Ring *
                          *    Card    *
                          **************
                                ||||||||

APPENDIX 8

                            NDIS & ASI Diagram

                        
                             ***************
                             *  SNA 3270   *
                             * Application *
                             ***************
                                    +       
                                    +       
                             ****************
                             * DXME0MOD.SYS *
                             * NDIS-to-ASI  *
                             *     Shim     *
                             ****************
                                    +       
                                    +       
                             ***************
                             * PROTMAN.EXE *
                             *   Program   *
                             ***************
                                    +
                                    +
                               **********
                               *  NDIS  *
                               * Driver *
                               **********
                                    +
                                    +
                            *****************
                            * Ethernet Card *
                            *****************
                                     ||||||||

APPENDIX 9

;-----------------------------------------------------------------------;
;                                                                       ;
;                        Sample PROTOCOL.INI File                       ;
;                    for an SMC Ethernet NDIS Driver                    ;
;                        with IBM's ASI Support                         ;
;                                                                       ;
;-----------------------------------------------------------------------;
 
;-----------------------------------------------------------------------;
;                                                                       ;
;                        Protocol Manager Section                       ;
;                                                                       ;
;-----------------------------------------------------------------------;
 
[PROTOCOL_MANAGER]
    DriverName=PROTMAN$           ; The PROTMAN.EXE program
 
;-----------------------------------------------------------------------;
;                                                                       ;
;                   IBM ETHERAND (DXME0MOD.SYS) Section                 ;
;                                                                       ;
;-----------------------------------------------------------------------;

[ETHERAND]
    DriverName=DXME0$             ; The DXME0MOD.SYS driver
    Bindings=SMCMAC               ; The NDIS driver section title

;-----------------------------------------------------------------------;
;                                                                       ;
;             Standard Microsystems Network Adapter Section             ;
;                                                                       ;
;-----------------------------------------------------------------------;
 
[SMCMAC]
    DriverName=SMCMAC$            ; SMC NDIS Driver
    IRQ=5                         ; Hardware IRQ Number
    RamAddress=0xB400             ; Shared RAM Memory Address
    IOBase=0x240                  ; I/O Port Address
    ReceiveBuffers=16
    ReceiveChains=16
    MaxRequests=10
    MaxTransmits=10
    ReceiveBufSize=1514           ; Receive Buffer Size (1514 bytes)

APPENDIX 10

                         ODI, NDIS, & ASI Diagram

                                                   ***************
 ************            ***************           *  ODI-Based  *
 * NETX.COM *            *  SNA 3270   *           *   TCP/IP    *
 * Program  *            * Application *           * Application *
 ************            ***************           ***************
       +                        +                         +
       +                        +                         +
**************                  +                         +
* IPXODI.COM *                  +                         +
*  Program   *                  +                         +
**************                  +                         +
       +                        +                         +
       +                 ****************                 +
       +                 * DXME0MOD.SYS *                 +
       +                 * NDIS-to-ASI  *                 +
       +                 *     Shim     *                 +
       +                 ****************                 +
       +                        +                         +
       +                        +                         +
       +                 ***************                  +
       +                 * PROTMAN.EXE *                  +
       +                 *   Program   *                  +
       +                 ***************                  +
       +                        +                         +
       +                        +                         +
       +                 ***************                  +
       +                 * ODINSUP.COM *                  +
       +                 * ODI-to-NDIS *                  +
       +                 *    Shim     *                  +
       +                 ***************                  +
       +                        +                         +
       ++++++++++++++++++++++++++++++++++++++++++++++++++++
                                +
                           ***********
                           * LSL.COM *
                           * Program *
                           ***********
                                +
                                +
                           **********
                           *  MLID  *
                           * Driver *
                           **********
                                +
                                +
                        *****************
                        * Ethernet Card *
                        *****************
                                 ||||||||

APPENDIX 11

#---------------------------------------------------------------------#
#                                                                     #
#                         Sample NET.CFG File                         #
#                    for an SMC Ethernet MLID Driver                  #
#                        with IBM's ASI Support                       #
#                                                                     #
#---------------------------------------------------------------------#

#---------------------------------------------------------------------#
#                                                                     #
#              Link Support Layer (LSL.COM) Section                   #
#                                                                     #
#---------------------------------------------------------------------#

Link Support
    Buffers 6 1514                # 6 Communications buffers, size 1514
    MemPool 2048                  # Used by some ODI applications

#---------------------------------------------------------------------#
#                                                                     #
#                       ODI-to-NDIS Shim Section                      #
#                                                                     #
#---------------------------------------------------------------------#

Protocol ODINSUP
    Bind SMCPLUS                  # Binding ODINSUP to SMC MLID board

#---------------------------------------------------------------------#
#                                                                     #
#                       IPX Protocol Section                          #
#                                                                     #
#---------------------------------------------------------------------#

Protocol IPX
    Bind SMCPLUS                  # Binding IPX to first SMC MLID board

#---------------------------------------------------------------------#
#                                                                     #
#                       SMCPLUS MLID Section                          #
#                                                                     #
#---------------------------------------------------------------------#

Link Driver SMCPLUS
    Int     5                     # Hardware IRQ number
    Port    240 20                # I/O Port Address
    Mem     000D0000 2000/10      # Shared RAM Memory Address
    Frame   Ethernet_802.3        # IPX Frame Type
    Frame   Ethernet_II           # TCP/IP Frame Type
    Frame   Ethernet_SNAP         # Needed by ODINSUP
    Frame   Ethernet_802.2        # Needed by ODINSUP

APPENDIX 11

;-----------------------------------------------------------------------;
;                                                                       ;
;                        Sample PROTOCOL.INI File                       ;
;                    for Novell's ODI-to-NDIS Driver                    ;
;                        with IBM's ASI Support                         ;
;                                                                       ;
;-----------------------------------------------------------------------;
 
;-----------------------------------------------------------------------;
;                                                                       ;
;                        Protocol Manager Section                       ;
;                                                                       ;
;-----------------------------------------------------------------------;
 
[PROTOCOL_MANAGER]
    DriverName=PROTMAN$           ; The PROTMAN.EXE program
 
;-----------------------------------------------------------------------;
;                                                                       ;
;                   IBM ETHERAND (DXME0MOD.SYS) Section                 ;
;                                                                       ;
;-----------------------------------------------------------------------;

[ETHERAND]
    DriverName=DXME0$             ; The DXME0MOD.SYS driver
    Bindings=SMCPLUS              ; The SMCPLUS MLID driver name

APPENDIX 12

                   Approximate Driver Memory Utilization
                         for an SMC Ethernet Card
                                (in bytes)


                                   Without IPX/SPX      With IPX/SPX
Drivers                            and NETX Loaded     and NETX Loaded
-------                            ---------------     ---------------

Packet Driver                             3,776              63,184

ODI + PD Shim Drivers                    29,248              88,016

NDIS + PD Shim Drivers                   40,512              99,920

ASI + PD Shim Drivers                    47,888             109,872

NDIS + ASI Shim Drivers                 131,632                 n/a

ODI + NDIS Shim + ASI Shim Drivers      124,544             183,312


(Note: The actual memory utilized by your drivers depends on the network card
you are using.  Add 2,576 bytes to the first four rows of numbers for Windows
[WINPKT.COM] support.)


Last revised: 7/13/95