(C)Copyright 1989-1998 SysKonnect,
a business unit of Schneider & Koch & Co. Datensysteme GmbH.
All rights reserved
==========================================================================
SKFPMSL.TXT


Readme-File for MSL Driver for SK-NET FDDI PCI adapters
	 on NetWare SFT III 4.1x servers. /
Subject: SKFPMSL.MSL MSL Driver corresponding to the
	 MSL Driver Specification Version 3.0 as specified in
	 document version 1.10 from June 14, 1994.


Version / Date / Author of this file: v2.04 / 21-Apr-1998 / RA
Version / Date / Author of the referred subject: v4.11 Rev. B /
10-Dec-1996 / RA


This file contains
(1) Overview
(2) Required files
(3) Installation instructions
(4) Driver parameters
(5) History

===========================================================================


(1) OVERVIEW
============

This README explains how to install the SKFPMSL.MSL driver at a
NetWare SFT III 4.1x server.
The driver can be loaded multiple times.
We do our Mirrored Server Link not on dedicated point to point connection
but on a standard FDDI LAN.  Due to this it is possible to mirror more than
one server pair on one FDDI ring, or to put a third standby server in the
LAN (which is only powered on when one of the two mirrored servers is down).
So the configuration with the SKFPMSL.MSL is very flexible (you have
only the limitations of FDDI).
Starting with version 4.11 the MSL supports Synchronous FDDI.
In this mode each station can reserve part of the total bandwidth.
This is especially useful if you use one FDDI ring for several MSL
connections.
***


(2) REQUIRED FILES
==================

- NBI.NLM (version 1.49 or higher)

- SKFPMSL.MSL
***


(3) INSTALLATION INSTRUCTIONS
=============================

NOTE:	If you set the parameter 'Maximum Physical Receive Packet Size'
	to a higher value, you possibly may have to increase the memory
	given to the IOEngine.  This can be done by setting the parameter
	'New Start Address For Unclaimed Memory Block'.  Refer to the
	SFT III manual to get more information about this parameter.


Where to go from here:

- If you are installing NetWare SFT III 4.11, continue with the
  section "MSL INSTALLATION AT NETWARE SFT III 4.11 INSTALLATION TIME"

- If you are installing NetWare SFT III 4.10, continue with the section
  "MSL INSTALLATION AT NETWARE SFT III 4.10 INSTALLATION TIME"

- If you replace MSLs in running SFT III servers, continue with the section
  "MSL INSTALLATION IN INSTALLED SERVERS"


MSL INSTALLATION AT NETWARE SFT III 4.11 INSTALLATION TIME
----------------------------------------------------------

TIP:	Ensure that NBI.NLM is in C:\NWSERVER on both machines before
	starting the SFT III installation (should be present on the
	first machine).

TIP:	Copy SKFPMSL.MSL to the hard disk (e.g. to C:\NETWARE\MSL) before
	installing SFT III.  Do not copy the MSL to C:\NETWARE at this
	time or you may have an overflow on the first of the three
	diskettes that are created during MSL installation.

Start installing SFT III.  When asked for the MSL driver, enter the path
to the MSL Driver.  If you did not copy the driver, you will need the
SysKonnect Driver Diskette.  As the driver needs a SLOT NUMBER, press
ENTER to switch to the SYSTEM CONSOLE SCREEN when asked and provide the
correct one.  Before you start the server the next time you should add the
SLOT NUMBER and the WINDOWSIZE parameters to the MSL load line in 
IOSTART.NCF on each machine.  You may also add the parameter MSLRETRY 
(see section (4) for an explanation of those parameters).
Verify that the path in the driver load line is correct.

NOTE:	When asked for IPX network numbers, please use the same number for
	each frame type on both machines, so that the machines can see each
	other on the net.  You will get a warning when you try to do this.
	Ignore this warning using F3.
	Example: Use network number F11 for frame type FDDI_802.2
		 on IOENGINE1 AND IOENGINE2.
		 Use network number F12 for frame type FDDI_SNAP
		 on IOENGINE1 AND IOENGINE2.


MSL INSTALLATION AT NETWARE SFT III 4.10 INSTALLATION TIME
----------------------------------------------------------

Unfortunately, installation of NetWare SFT III 4.10 is not as simple as
with 4.11.  You have to take some corrective actions.  We suggest that
you print out at least the following Steps and have them with you while
installing the server.  A technically better alternative is an update
to NetWare 4.11.

Step 1:	As described in the server manual, install NetWare 4.10.
	You need not copy the MSL at this time.
	Start upgrading to SFT III on the first machine until you are asked
	to select an MSL.
	Start installing SFT III on the second machine (using the three
	diskettes with INSTALL on the first one) until you are asked
	to select an MSL.
	Do not select any MSL.
	Abort INSTALL and type "HALT" in both IOEngines.

Step 2:	Copy DMSSTRT.NCF from the third diskette you created to C:\NWSERVER
	on the second machine.
	Copy MSAUTO.NCF from the first diskette you created to C:\NWSERVER
	on the second machine.
	Make a backup copy of IOSTART.NCF on both machines and of
	DMSSTRT.NCF on the second machine in case the installation fails
	the first time.

Step 3:	Copy SKFPMSL.MSL from the SysKonnect Driver Diskette to C:\NWSERVER
	on both machines.  On the first machine, check that MSM.NLM and the
	TSM you need for your LAN driver (e.g. FDDITSM.NLM) are the most
	current ones.  If the MSM needs NBI (MSM.NLM needs it since 1996),
	copy NBI.NLM, too.

CAUTION: If you do not copy the most current MSMs and TSMs, your
	 LAN driver may fail to start.

Step 4:	As we saw problems on some machines during diskette access, we
	strongly recommend that you copy the SFT III license files
	(SERVER.MLS and LICENSE) to C:\ on the second machine.

Step 5:	Boot both machines with identical setup (e.g. load a CD-ROM driver
	either on both machines or on no machine).

CAUTION: If the setups are not identical, it is very likely that the
	 installation will fail.

NOTE:	If the installation process fails during Steps 6 to 8, check the
	setup of the two machines.  Reboot them if necessary.
	Restore IOSTART.NCF and DMSSTRT.NCF from the backup copies made in
	Step 2.  Repeat the installation starting with Step 6.

Step 6:	Start "MSERVER.EXE" on both machines.
	On the first machine, type "LOAD IOINSTL 1".  Select the MSL from
	the list presented, press ENTER to switch to the SYSTEM CONSOLE
	SCREEN when asked and provide the correct SLOT NUMBER.  Continue
	the installation until it waits for the second machine to come up.
	On the second machine, type "LOAD IOINSTL 2".  Select the MSL, ...
	Continue until you are asked for the IPX network numbers.

Step 7:	When asked for IPX network numbers, please use the same number for
	each frame type on both machines, so that the machines can see each
	other on the net.  You will get a warning when you try to do this.
	Ignore this warning using F3.
	Example: Use network number F11 for frame type FDDI_802.2
		 on IOENGINE1 AND IOENGINE2.
		 Use network number F12 for frame type FDDI_SNAP
		 on IOENGINE1 AND IOENGINE2.
	Continue until you are asked to provide the license file.

Step 8:	When asked for the SFT III license file, load it from C:\ on the
	second machine.

CAUTION: Do not load the license file from diskette.
	 Your installation may fail.

Step 9:	While the hard disks are mirrored (or after this process, but
	before you start the server the next time) you should edit
	IOSTART.NCF on both machines and add a SLOT NUMBER and WINDOWSIZE 
	parameter to the MSL load line.  You may also add the MSLRETRY
	parameter (see section (4) for an explanation).

Step 10:
	Apply the newest patches available from Novell (410PT6.EXE or
	later).  You may get them from your local dealer or directly from
	Novell (look at http://support.novell.com/search/patlst.htm).

Step 11:
	DOWN, EXIT and restart the server.

Step 12:
	Relax - you are done.


MSL INSTALLATION IN INSTALLED SERVERS
-------------------------------------

Ensure that C:\NWSERVER\NBI.NLM is the most current one on both machines.
Copy SKFPMSL.MSL to the server start directory on both machines.
Replace the existing MSL load line in each IOSTART.NCF by:
	Load SKFPMSL.MSL Slot=... Windowsize=1 MslRetry=...
***


(4) DRIVER PARAMETERS
=====================

STANDARD PARAMETERS
-------------------

- SLOT = [Slot Number]
	Description:    "Defines the slot in which the network adapter is
			 installed."
	Help       :    "This parameter is required for SK-NET FDDI PCI
			 adapters.  If you do not enter a slot number, the
			 driver scans automatically for SK-NET FDDI PCI
			 network adapters and prompts the slot number in
			 which the network card is found at the server
			 console."
	Example    :
			 LOAD SKFPMSL SLOT=5

- WindowSize=1
	Description:	"Specifies the size of the window for data
			 transmission."
	NOTE       :	"Recent tests with fast server machines showed that
			 system startup and NLM loading is rather slow with
			 the default WindowSize of 4. Setting the 
			 WindowSize to 1 helps here."
	Help (OLD!):	"Normally you have to send an acknowledge for each
			 packet.  With this parameter you can specify how
			 much packets are sent without receiving an
			 acknowledge (burst mode).  If there is heavy load
			 on the MSL with big packets it is desirable to
			 have a big WindowSize.  You will see this scenario
			 during memory synchronisation or if there are many
			 write accesses to the disk (the data have to be put
			 over the MSL to the secondary server).  If you have
			 many read accesses to the disk there will be a lot
			 of small packets on the MSL.  If now the windowsize
			 is smaller, it is possible to queue many small
			 messages (24 bytes) and combine them into one
			 packet.  This mechanism reduces the overhead for
			 transmitting many packets.
			 The maximum value for WindowSize is 8,
			 the default is 4."
	Example    :	 Load SKFPMSL WindowSize=1

- PciFix
	Description:    "Activate several fixes for known PCI problems."
	Help       :    "Currently there is no fix implemented."
	Example    :
			 LOAD SKFPMSL PCIFIX=0

- MSLRetry (optional)
	Description:	"Specifies the number of retries if no acknowledge
			 is received."
	Help       :	"Due to the fact that we are on a LAN, it is
			 possible that packets are lost because of
			 RingOpChanges or other trouble on the medium.
			 If this happens the MSL is down and SFT III
			 will restart the secondary server to reestablish
			 the connection.  If you specify a number of
			 MSLRetries, the driver itself will do a retry if
			 an acknowledge is missing, so SFT III does not
			 need to restart the secondary server if a packet
			 was lost (the restart of the scondary server is a
			 critical process because during restart and
			 synchronisation you have no mirrored servers).
			 You will not need to specify retries if you have
			 only the two servers in the FDDI ring.
			 The maximum value for MSLRetry is 5
			 the default is 0."
	Example    :	 Load SKFPMSL MSLRetry=1

NOTE:	If you specify MSLRetry you should also increase the MSL timeout
	settings.  If you don't do this, the following might happen:
	- The primary server crashes.
	- Then the secondary server detects a LAN failure in its connection
	  to the primary server.
	- After this the secondary server detects an MSL failure in its
	  connection to the primary server.
	- Now the secondary server does not know if it should become the
	  primary server and asks back.
	This is surely nothing you want to happen.
	To avoid this, you may execute the following four settings in
	IOSTART.NCF:
		Set MSL Error Wait Time = 4
		Set Secondary Take Over Wait Time = 15
		Set IPX Internet Down Wait Time = 50
		Set MSL Deadlock Wait Time = 55

- ConID
	Description:	"Specifies the connection ID of the MSL."
	(default: 0)
	Help       :	"If you specify a Connection ID, it has to be the
			 same on the two mirrored servers.  If you mirror
			 more than one server pair on the same FDDI ring
			 and have not defined MirroredServer you must use
			 this keyword.  Each server pair must have a
			 different Connection ID.  The Connection ID is a
			 two byte hex value.
			 The default value is 0000."
	Example    :	 Load SKFPMSL ConID=0808

- MirroredServer = [Address]
	Description:	"Specifies the MAC address of the other server."
	Help       :	"Previous versions of the MSL Driver used broadcast
			 packets for the communication.  This was not
			 desirable if several server pair used the same
			 ring.  So MirroredServer was introduced that forced
			 the MSL Driver to send directed packets to the other
			 server.
			 As the current driver automatically learns the
			 MAC address of the other server, this parameter is
			 no longer necessary.
			 It is only left for compatibility reasons or if you
			 want to ensure that you mirror only with a specific
			 server.  With more than one server pair on the same
			 ring it is recommeded to set different ConIDs for
			 the different server pairs."
			 address of the other server."
	Example    :	 Load SKFPMSL MirroredServer=00005a400764


SMT PARAMETERS
--------------

- PMFPASSWD
	Description:    "Password for PMF Requests."
	Help       :    "This keyword defines the password that all remote
			 PMF (Parameter Management Frame) requests must
			 provide to change FDDI attributes within the
			 adapter.  The value for PMFPASSWD is 8 ASCII
			 characters long and not case sensitive since lower
			 case letters will be converted to upper case.
			 Password protection can be disabled by setting
			 this keyword to all zeros (default), or by not
			 specifying a PMFPASSWD."
	Example    :
			 LOAD SKFPMSL ... PMFPASSWD=12345678

- USERDATA
	Description:    "SMT User Data."
	Help       :    "This keyword provides local write access to the
			 User Data attribute, registered as fddiSMT 17 in
			 the SMT Standard.
			 The User Data must be an ASCII string for
			 compliance with the FDDI SMT standard."

- LERCUTOFFA
	Description:    "SMT LER Cutoff attribute Port A."
	Help       :    "This keyword provides local write access to the
			 LER Cutoff attribute, registered as fddiPORT 58 in
			 the SMT standard.  This attribute identifies the
			 excessive Link Error Rate that removes Port A/B
			 (or Port S).
			 This keyword is specified as an absolute value of
			 the base 10 logarithm of the LER Cufoff value.
			 The valid range reaches from 1E-4 to 1E-15.  If a
			 value is specified which lies outside the limits,
			 the upper/lower limit will be taken.  If no value
			 is specified, the default value for
			 LERCUTOFFA/LERCUTOFFB (1E-7) will be used."

- LERCUTOFFB
	Description:    "SMT LER Cutoff attribute Port B."
	Help       :    "This keyword provides local write access to the
			 LER Cutoff attributes, registered as fddiPORT 58
			 in the SMT standard.
			 This attributes identifies the excessive Link
			 Error Rate that removes Port A/B (or Port S).
			 This keyword is specified as absolute value of the
			 base 10 logarithm of the LER Cufoff value.
			 The valid range reaches from 1E-4 to 1E-15.  If a
			 value is specified which lies outside the limits,
			 the upper/lower limit will be taken.  If no value
			 is specified, the default value for
			 LERCUTOFFA/LERCUTOFFB (1E-7) will be used."

- LERALARMA
	Description:    "SMT LER Alarm attribute Port A."
	Help       :    "This keyword provides local write access to the
			 LER Alarm attribute, registered as fddiPORT 59 in
			 the SMT Standard.
			 This attribute identifies the excessive Link Error
			 Rate that shows an alarm at Port A/B (or Port S).
			 This keyword is specified as an absolute value of
			 the base 10 logarithm of the LER Alarm value.
			 The valid range reaches from 1E-4 to 1E-15.
			 If a value is specified which lies outside
			 the limits, the upper/lower limit will be taken.
			 If no value is specified, the default value for
			 LERALARMA/LERALARMB (1E-8) will be used."

- LERALARMB
	Description:    "SMT LER Alarm attribute Port B."
	Help       :    "This keyword provides local write access to the
			 LER Alarm attribute, registered as fddiPORT 59 in
			 the SMT standard.
			 This attribute identifies the excessive Link Error
			 Rate that signals an alarm at Port A/B
			 (or Port S).
			 This keyword is specified as absolute value of the
			 base 10 logarithm of the LER Alarm value.
			 The valid range reaches from 1E-4 to 1E-15.  If a
			 value is specified which lies outside the limits,
			 the upper/lower limit will be taken.  If no value
			 is specified, the default value for
			 LERALARMA/LERALARMB (1E-8) will be used."

- TMIN
	Description:    "SMT T-Min attribute."
	Help       :    "This keyword provides local write access to the
			 2's complement T-Min attribute, registered as
			 fddiMAC 55 in the SMT standard.
			 The value for TMIN is specified in milliseconds.
			 The valid range reaches from 5 ms to 165 ms.  If a
			 value is specified which lies outside the limits,
			 the upper/lower limit will be taken.  If no value
			 is specified, the default value for TMIN (5 ms)
			 will be used."

- TMAX
	Description:    "SMT T-Max attribute."
	Help       :    "This keyword provides local write access to the
			 2's complement T-Max attribute, registered as
			 fddiMAC 53 in the SMT standard.
			 The value for TMAX is specified in milliseconds.
			 The valid range reaches from 5 ms to 165 ms.  If a
			 value is specified which lies outside the limits,
			 the upper/lower limit will be taken.  If no value
			 is specified, the default value for TMAX (165 ms)
			 will be used."

- TREQ
	Description:    "SMT T-Req attribute."
	Help       :    "This keyword provides local write access to the
			 2's complement T-Req attribute, registered as
			 fddiMAC 51 in the SMT standard.
			 The value for TREQ is specified in milliseconds.
			 The valid range reaches from 5 ms to 165 ms.  If a
			 value is specified which lies outside the limits,
			 the upper/lower limit will be taken.  If no value
			 is specified, the default value for TREQ (165 ms)
			 will be used."

- TVX
	Description:    "SMT TVX attribute."
	Help       :    "This keyword provides local write access to the
			 TVX attribute, registered as fddiMAC 54 in the SMT
			 standard.
			 This attribute provides local control of the
			 recovery time from transient ring errors.
			 The value for TVX is specified in microseconds.
			 The valid range reaches from 2500 us
			 (microseconds) to 10000 us.  If a value is
			 specified which lies outside the limits, the
			 upper/lower limit will be taken.  If no value is
			 specified, the default value for TVX (2700 us)
			 will be used."


SBA PARAMETERS
--------------

- SbaCommand
	Description:	"STARTs or STOPs the SBA application."
	Help	   :	"This keyword is an SBA local action to start or
			 stop the SBA application.  The default value is
			 'STOP'.
			 NOTE:	There should be only one active SBA
				application per ring."

- SbaAvailable
	Description:	"Sets the bandwidth available for the
			 SBA application."
	Help	   :	"This keyword defines the maximum synchronous
			 bandwidth in percent available for the primary
			 path.  The valid range reaches from 0 - 100
			 percent.  The default value is 50 percent
			 (6.25 MBytes/s).  If a value is specified which
			 lies outside the limits, the upper/lower limit
			 will be taken.  This value remains zero until the
			 SBA application is enabled and active."


ESS PARAMETERS
--------------

- SbaPayLoad
	Description:	"Bandwidth requested for static allocations."
	Help	   :	"This keyword defines the requested synchronous
			 bandwidth for manual static allocations.
			 The valid range reaches from 0 to 1562 bytes
			 per 125 microseconds.  For example, if the
			 required bandwidth is 1 MBit/s (125,000 Bytes/s)
			 the value of the payload is 125,000 * 125E-6 =
			 15.625 round up to 16.  If a value is specified
			 which lies outside the limits, the upper/lower
			 limit will be taken.  The default value is zero -
			 no synchronous bandwidth is used.  The user is
			 required to define the amount of bandwidth to be
			 able to send synchronous frames.  If the keyword
			 SbaPayLoad is not specified, the keywords
			 SbaOverHead, MaxTNeg, MinSegmentSize, and
			 SbaCategory have no effect.  The end station
			 supports either the static allocation model, where
			 the requested payload is specified by the keyword
			 SbaPayload, or the dynamic allocation model, where
			 the required synchronous bandwidth is allocated
			 directly by the multimedia application.
			 Therefore, if a multimedia application is used
			 which can dynamically allocate the bandwidth, the
			 keyword SbaPayLoad should not be specified."

- SbaOverHead
	Description:	"Overhead requested for static allocations."
	Help	   :	"This keyword defines the requested overhead for
			 static allocations.  The valid range reaches from
			 50 to 5000 bytes.  If a value is specified which
			 lies outside the limits, the upper/lower limit
			 will be taken.  The default value is 50 bytes.
			 This keyword has only an effect, if the keyword
			 SbaPayLoad is specified."

- MaxTNeg
	Description:	"Maximum token rotation delay."
	Help	   :	"This keyword defines the maximum token rotation
			 delay acceptable to the application(s) using
			 synchronous bandwidth.  The valid range reaches
			 from 5 ms to 165 ms.  If a value is specified
			 which lies outside the limits, the upper/lower
			 limit will be taken.  The default value is 25 ms.
			 This keyword has only an effect, if the keyword
			 SbaPayLoad is specified."

- MinSegmentSize
	Description:	"Minimum synchronous segmentation size."
	Help	   :	"This keyword defines the minimum synchronous
			 segmentation size.  This value corresponds to the
			 amount of bytes to be transmitted on a per token
			 opportunity.  The valid range reaches from
			 1 to 4478 bytes.  If a value is specified which
			 lies outside the limits, the upper/lower limit
			 will be taken.  This keyword has only an effect,
			 if the keyword SbaPayLoad is specified."

- SbaCategory
	Description:	"Session ID of SBA_Category."
	Help	   :	"This keyword defines the session ID of the
			 SBA_Category for the static allocation.  The valid
			 ranges reaches from 0 to 65535.  If a value is
			 specified which lies outside the limits, the
			 upper/lower limit will be taken.  This parameter
			 has only an effect, if the keyword SbaPayLoad is
			 specified."

- SynchTxMode
	Description:	"Synchronous transmission modes."
	Help	   :	"This keyword defines the synchronous transmission
			 mode.  The default value is 'SPLIT', where only
			 packets identified as synchronous packets shall be
			 transmitted by the synchronous queue.  The other
			 value is 'ALL', where all LLC packets received
			 from upper layers are transmitted via the
			 synchronous queue.  This keyword has only an
			 effect, if the end station support was able to
			 get the required synchronous bandwidth from the
			 SBA."
***


(5) HISTORY
===========

v4.11 Rev. B
    New features:
	None.
    Problems fixed:
	- Unexpected protected mode BIOS entry address results in a crash.
    Known limitations:
	None.

v4.11 Rev. A
    First Release.


*** End of information file ***