Description of OS/2 LAN Manager Device Drivers and NDIS

ID Number: Q51088

1.00 1.01 2.00

OS/2

Summary:

Below is information about what OS/2 LAN Manager device drivers do and

how NDIS relates to OS/2 LAN Manager.

More Information:

For two machines to communicate with each other using the OS/2 LAN

Manager, the network software (i.e., device drivers) must translate

OS/2 LAN Manager requests into more primitive commands that allow the

network hardware (i.e., network adapters) to transmit the data over

the physical cable connecting the two machines. Similarly, when a

message is received from the network adapter, device drivers must

translate the message into the response format that the OS/2 LAN

Manager understands.

OS/2 LAN Manager issues NetBIOS requests to communicate to the

network. NetBIOS is an IBM standard corresponding to a set of

higher-level functions or commands that allow a program (such as OS/2

LAN Manager) to access network resources. Network device drivers

supply all the services necessary to fulfill these NetBIOS requests.

Network device drivers perform two basic functions to ensure that data

transmission is achieved. At the most basic level, the device drivers

in the two machines must communicate with the network hardware to send

and receive messages and assure that the link-level transmission is

successful. At a higher level, the device drivers must interpret the

message transfer in terms of a set of rules or protocol that both

machines understand.

Note that the protocol (or "conversation rules") used between the two

machines is separate from the actual transmission of the message over

the physical connection. For example, someone who only speaks the

English "protocol" may hear what a German person is saying, but does

not understand. On the other hand, two English-speaking persons cannot

have a conversation if they cannot hear each other over a "link," such

as sound waves passing through air.

A single network device driver can incorporate all necessary protocol

and link-level functions required by OS/2 LAN Manager. This type of

driver is referred to as a "monolithic" NetBIOS driver, which has the

conversation protocol built in with the link-level transmission

support. Examples of monolithic drivers that were shipped with OS/2

LAN Manager Version 1.00 include the following drivers:

1. Ungermann Bass drivers (UBXNS.xxx) for the 8-bit and 16-bit PCNIU

adapter cards, as well as the PS/2 NIC card (UBXNICPU.xxx). The

"xxx" extension depends on the MS-DOS or OS/2 version of the

driver.

2. Sytek driver (SY.OS2) for the Sytek adapter card (OS/2 only).

These monolithic drivers do not allow an administrator to replace the

protocol-level support from the link-level support, and thus do not

provide a standard way of mixing and matching different links and

protocols (or of supporting multiple links and protocols) in the same

machine.

To work around this situation, Microsoft and 3Com Corporation devised

the Network Device Interface Specification (NDIS), which describes the

OS/2 LAN Manager driver architecture and interfaces to allow an MS-DOS

or OS/2 system to support one or more network adapters and protocols.

To simplify the job of supporting multiple adapters and protocols, the

architecture defines three kinds of drivers:

1. Media Access Control (MAC) drivers, which provide low-level access

to network adapters. The main function of a MAC driver is to

support transmitting and receiving of messages or "packets," in

addition to some basic adapter management functions.

2. Protocol drivers, which provide higher-level communication

services. A typical protocol driver provides a NetBIOS interface at

the top (i.e., to talk to OS/2 LAN Manager) and an "NDIS interface"

at the bottom (i.e., to talk to a MAC driver). These drivers are

sometimes referred to as transport drivers.

3. The Protocol Manager driver (PROTMAN.xxx, where "xxx" depends on

the MS-DOS or OS/2 version). This is a special driver that provides

a standard way for multiple MAC and protocol drivers to exchange

configuration information and "bind" together into the desired

configuration, as defined by the administrator in the PROTOCOL.INI

file.

Device drivers written to the interfaces defined in NDIS will function

concurrently in a system with other networking protocol drivers, and

will operate correctly with the OS/2 LAN Manager software for MS-DOS

and OS/2. While OS/2 LAN Manager Version 1.00 includes monolithic

NetBIOS-type drivers that support the Ungermann Bass and Sytek

adapters, only NDIS-compliant MAC and protocol drivers will be shipped

with OS/2 LAN Manager Version 2.00.

Please refer to the "Microsoft LAN Manager Network Device Drivers

Guide" and the Microsoft OnLine KnowledgeBase for a discussion of

drivers that are supported by Microsoft OS/2 LAN Manager.

Examples of MAC and protocol drivers that are available through

Microsoft include the following:

1. 3Com Etherlink MAC drivers that support the Etherlink I (ELNK.OS2),

Etherlink II (ELNKII.OS2), and Etherlink/MC (ELNKMC.OS2) adapters.

2. IBM Token Ring MAC driver (IBMTOK.OS2) which supports the IBM Token

Ring adapters.

3. Microsoft NETBEUI protocol driver (NETBEUI.SYS), which supports the

IBM NETBEUI protocol.

Microsoft encourages all network vendors to write "NDIS-compliant" MAC

drivers and have them certified by Microsoft to ensure that they work

with other NDIS-compliant MAC drivers and OS/2 LAN Manager.

When discussing NetBIOS and NDIS, it is useful to refer to the

International Standards Organization's (ISO) reference model for Open

Systems Interconnect (OSI). The OSI model consists of seven layers of

protocol in which each layer provides a service to the layer directly

below it. The following chart illustrates how OS/2 LAN Manager drivers

function in relation to the OSI model:

OSI Model Layer

---------------

-------------- -----------------------------------------------------

| | |

7 - Applica- | | User applications |

tion | | |

-------------- -----------------------------------------------------

-------------- -----------------------------------------------------

| | Operating System |

6 - Presen- | | & |

tation | | Microsoft OS/2 LAN Manager |

-------------- -----------------------------------------------------

********** NetBIOS Interface **********************

-------------- --------------- ------------ ----------- ------------

| | | | | | | | |

5 - Session | | Microsoft | | XNS | | Other | | Ungermann |

| | NetBEUI | | Protocol | | Protocol| | Bass |

-------------- | Protocol | | Driver | | Driver | | PCNIU |

-------------- | Driver | | | | | | Driver |

| | | | | | | | |

4 - Trans- | | | | | | | | |

port | | | | | | | | |

-------------- | | | | | | | |

-------------- | | | | | | | |

| | | | | | | | |

3 - Network | | | | | | | | |

| | | | | | | | |

-------------- ------------- ------------ ----------- | |

********** NDIS Interface ********* | |

-------------- ------------- ------------ ----------- | |

| | IBM Token | |3Com Ethnt| | Other | | |

2 - Data | | Ring MAC | | MAC | | MAC | | |

Link | | Driver | | Driver | | Driver | | |

-------------- ------------- ------------ ----------- -------------

-------------- ------- ------- ------------ ----------- ------------

| | TR | | TR | | Ethernet | | Other | | UB PCNIU |

1 - Physical | |Adptr| |Adptr| | Adapter | | Adapter | | LAN |

| | #1 | | #2 | | | | | | Adapter |

-------------- ------- ------- ------------ ----------- ------------

In the above example, the Ungermann Bass PCNIU driver (UBXNS.OS2) is

an example of a monolithic-type NetBIOS driver, while the 3Com

Ethernet driver (such as ELNK.OS2, ELNKII.OS2, and ELNKMC.OS2 drivers)

and IBM Token Ring driver (IBMTOK.OS2) are examples of NDIS-compliant

MAC drivers. The Microsoft NetBEUI driver (NETBEUI.SYS) is an example

of a protocol driver.

It should be noted that the protocol drivers can be configured to use

any NDIS drivers in a "many-to-many relationship." Therefore, it is

possible to have a single protocol driver communicate through multiple

NDIS drivers, or for multiple protocol drivers to communicate through

one NDIS driver.

The Microsoft LAN Manager Protocol Driver (PROTMAN.OS2) is responsible

for "binding" the Protocol and NDIS drivers together, as defined by

the administrator in the PROTOCOL.INI file. The correct format of the

PROTOCOL.INI file is described in the "Microsoft LAN Manager Network

Device Drivers Guide." After all device drivers are loaded when

CONFIG.SYS is processed, the binding process occurs when NETBIND.EXE

is invoked (either by the operator or by the STARTUP.CMD or

AUTOEXEC.BAT file). In addition, the LANMAN.INI file's [networks]

section must be edited so that OS/2 LAN Manager knows which protocol

drivers to communicate with.

Please see the "Microsoft LAN Manager Network Device Drivers Guide"

for a description of the PROTOCOL.INI and LANMAN.INI configuration

requirements.