PRB: Multiple Transport Stacks Don't Work Under DOS LM 2.0

ID Number: Q64252

2.00

MS-DOS

Summary:

The following information applies only to MS-DOS LAN Manager 2.0. This

problem has been corrected in version 2.1.

SYMPTOM

Multiple NDIS transports do not work properly on MS-DOS LAN Manager

version 2.0 Enhanced when installed via Setup.

CAUSE

Each protocol listed in PROTOCOL.INI must respond to a unique range

of LANA (LAN adapter) numbers. (It is by the LANA number associated

with a request that LAN Manager directs the request to a particular

protocol.) A protocol, such as NetBEUI, assumes it should respond

to requests made to LANA 0 unless told otherwise (and some

protocols will only respond to requests made to LANA 0).

In addition to setting the range of LANA numbers to which a

protocol will respond, the protocol also must pass unwanted

requests on to other protocols in the system (this is necessary

because of the DOS interrupt interface used by network protocols).

In both cases, the LAN Manager Setup utility does not make the

appropriate adjustments to either LANMAN.INI or PROTOCOL.INI. All

changes must be made manually.

For example, NetBEUI can co-exist with other protocols. Two

parameters (normally missing from PROTOCOL.INI) need to be added to

the NETBEUI_XIF section:

lanabase = 1

chainx5c = 1

LANABASE tells NetBEUI what is the first LANA number it owns.

Requests that contain a LANA number in the range beginning with

LANABASE and ending with

(LANABASE + (# of MACs on the BINDINGS line - 1))

will be acted on by NetBEUI.

CHAINX5C tells NetBEUI more than one protocol exists in the system

and that it should pass unwanted requests on.

RESOLUTION

In LANMAN.INI, include on the WRKNETS parameter each LANA number

owned by any protocol. For example, with two protocols binding to a

single MAC, set WRKNETS as follows:

wrknets = 0,1

Next, add the appropriate keywords to PROTOCOL.INI for each

protocol, informing it (if necessary) what its starting LANA number

is and whether unwanted requests should be passed on. Again,

assuming only two protocols (in this example NetBEUI and the

Ungermann-Bass XNS protocol), PROTOCOL.INI would be similar to the

following:

[PROTOCOL MANAGER]

DRIVERNAME = PROTMAN$

[UBXNS_XIF]

[XNSBIOS]

BINDINGS = "ELNKMC_NIF"

DRIVERNAME = UBDRV$0

Lcfile = C:\LANMAN.DOS\drivers\protocol\xns\stdlc

VCReceiveLarge = 15

VCSends = 15

VCs = 6

NOEMM

[NETBEUI_XIF]

Drivername = netbeui$

BINDINGS = "ELNKMC_NIF"

lanabase = 1

chainx5c = 1

[ELNKMC_NIF]

; PROTOCOL.INI section for the 3Com EtherLink/MC Adapter Card

DRIVERNAME = ELNKMC$

Note: The UB XNS protocol will only accept requests directed to

LANA 0 and it does not understand how to pass on requests.

Therefore, it must be loaded first in CONFIG.SYS (before NetBEUI;

this will cause it to be the last protocol in the protocol chain)

and NetBEUI must take requests starting at the first LANA number

not used by the XNS protocol (in this example, LANA 1).

Additional reference words: 2.00 ELNKII