Using the Fastmac Plus DOS ODI Driver
=====================================
                                               LSS 5.0(0), August 1996 
                                               -----------------------
Summary
-------

This file provides information about loading Madge DOS ODI drivers for 
use in NetWare environments.

This file has the following sections: 
   1) Overview of the Open Datalink Interface (ODI)
   2) Driver Configuration
   3) Command Line Parameters
   4) Special note on promiscuous mode operation

1) Overview of the Open Datalink Interface (ODI):
------------------------------------------------

Novell's Open Data-Link Interface (ODI) allows  LAN  drivers  to  work 
together irrespectively of differences between the hardware and/or the 
protocol  stacks  of  communicating  computers.  An intervening layer, 
called the Link  Support  Layer  (LSL),  is  responsible  for  routing 
different  packet  types  between  LAN  drivers  and  protocol stacks.  
MADGEODI.COM is an ODI driver for DOS workstations. 


NetWare Higher layers:           NCP/LANWP

                     -----------ipx interface-------------

Protocol stacks:                IPXODI/TCPIP

                     ---hardware independent interface----

Link Support Layer:                 LSL

                     ---protocol independent interface----

LAN drivers:                     MADGEODI

                     ---------hardware interface----------

Hardware:                 MADGE SMART 16/4 RINGNODE


The MADGEODI.COM driver conforms to the ODI specification version  4.0 
but  has  backwards  compatibility  with ODI Specification version 3.3 
(see "RECEIVE MONITOR" keyword and section 4 below).  MADGEODI  should 
be  loaded  after  the  Link  Support  Layer  (LSL.COM) and before any 
protocol stacks (such as IPXODI.COM and TCPIP.EXE).  The following  is 
a sample AUTOEXEC.BAT:

LSL             (Novell supplied)
NESL            (Novell supplied)
MADGEODI
IPXODI          (Novell supplied)
NETX or VLM     (Novell supplied)

If source-routing support is required, load the file ROUTE.COM (Novell 
supplied) after MADGEODI.COM and before IPXODI.COM.

If  you are using Novell Remote Program Load, load the file RPLODI.COM 
(Novell supplied) before MADGEODI.COM. In this case,load the ROUTE.COM  
file, if required, before MADGEODI.COM. This ensures that a connection 
to  a  server  on  the  far  side  of  a  source-routing bridge can be 
maintained  while  the "real" ODI driver is taking over from  the  RPL  
driver. A sample AUTOEXEC.BAT for RPL is:

LSL             (Novell supplied)
RPLODI          (Novell supplied)
ROUTE           (Novell supplied)
MADGEODI
IPXODI          (Novell supplied)
NETX or VLM     (Novell supplied)


2) Driver Configuration
-----------------------

The  Madge  Fastmac  Plus  DOS  ODI  driver  consists  of  two  files: 
MADGEODI.COM and MDGDOS30.BIN.  MADGEODI.COM is a DOS executable  file 
and  MDGDOS30.BIN  is a downloadable firmware file.  Both files should 
be kept  in  the  same  directory  or  sub-directory.   Another  file, 
MADGEODI.INS is used by the Novell DOS ODI Installation program.

By default, the driver uses a maximum frame size of 4210 bytes.   This 
gives  a typical data packet size of 4kbytes using either NETX or VLM. 
This packet size can be altered using the "MAX FRAME SIZE"  parameter. 
Changing  the  maximum  frame  size may affect peek performance of the 
driver and alter its  DOS  memory  usage.  The  default  size  of  the 
transmit  buffer and receive buffer is equal to the maximum frame size 
so the normal DOS memory usage of MADGEODI.COM is approximately:

8Kbytes + 2 x maximum frame size

With default settings using  DMA,  the  memory  requirement  is  about 
16Kbytes.   The  memory requirement is approximately 3Kbytes less when 
using PIO on an AT Plus or ISA Client  Plus  Ringnode  (the  reduction 
occurs  because no transmit buffer is required for PIO transfers).  If 
Power management or PCMCIA Hot-Swapping is  required  the  DOS  memory 
usage  is  approximately  8 kbytes more (plus 60kbytes of XMS memory). 
The driver can be loaded into high memory using a memory manager  such 
as EMM386.EXE.

The MADGEODI driver can be configued from a NET.CFG  file.   List  the 
options  required  after  the  driver's  section header which is "LINK 
DRIVER MADGEODI".  If using multiple adapters, remember to include one 
"link driver madgeodi" section in NET.CFG for  each  instance  of  the 
driver.   If  not  using  a NET.CFG file or if no PORT, SLOT or BIA is 
specified, the driver loads onto the first available Ringnode.  If the 
driver is loaded a  second  time,  the  second  LINK  DRIVER  MADGEODI 
section must have either a port or slot parameter.

The parameters that can be specified in the NET.CFG file are:

PORT nn                     If  there  are  multiple  Madge  Ringnodes 
                            installed in a machine, use this parameter 
                            to specify the IO location of the Ringnode 
                            to use. 

SLOT nn                     If  there  are  multiple  Madge  Ringnodes 
                            installed in a machine, use this parameter 
                            to specify the bus slot of the Ringnode to 
                            use. 

BURNT IN ADDRESS nnnnnnnnn  If  there  are  multiple  Madge  Ringnodes 
                            installed in a machine, use this parameter 
                            to  specify  the BIA (node address) of the 
                            Ringnode to use. 

FRAME abc                   The frame type required.  The  only  valid 
                            choices  are  "TOKEN-RING"  (normally used 
                            with  IPXODI.COM)  and   "TOKEN-RING_SNAP" 
                            (normally used with TCPIP.EXE).

PROTOCOL abc                A Protocol stack that you require (may  be 
                            entered more than once).

MAX FRAME SIZE nnnn         The  Maximum  packet  size to be supported 
                            including protocol  and  hardware  headers 
                            (4210  represents  a  maximum data size of 
                            4Kbytes).  The minimum frame size you  can 
                            specify  is  632 (1/2Kbytes).  The maximum 
                            frame size you can specify is 18000.  This 
                            frame   size   should   only  be  used  in 
                            configurations required to monitor network 
                            frames (eg. Novell's LANalyzer).

PIO                         Forces  the  driver to use PIO, regardless 
                            of the Ringnode's default transfer  method 
                            (DMA  or  MMIO).  It is recommended to use 
                            PIO on a workstation that  is  using  only 
                            one  protocol, especially if it is using a 
                            memory manager.

MMIO                        Forces  the  driver to use MMIO  on a  PCI 
                            (non-Bus Master) card.

ALTIO                       This  parameter is only available with the 
                            "ASYNC"  bus  mode  on   Smart   16/4   AT 
                            Ringnodes.     If    your   computer   has 
                            bus-compatibility problems with AT or  ISA 
                            Client  Ringnodes, use the ALTIO parameter 
                            and configure your Ringnode  for  PIO  and 
                            alternate bus-timing.

INT n                       If  you  are  using the Smart 16 Ringnode, 
                            use  this  parameter  to   configure   the 
                            interrupt   setting.   The  Ringnode  uses 
                            interrupt 3, by default.  Interrupts 2 and 
                            7 are provided as alternatives.  (You  can 
                            also   use  this  parameter  to  force  an 
                            interrupt  setting  for  your  Smart  16/4 
                            PCMCIA   Ringnode   to   use.    For  more 
                            information,  refer  to  the  "Smart  16/4 
                            PCMCIA  Ringnode User Guide", part number: 
                            100-146.)

NODE ADDRESS nnnnnnnnnnnn   The node address parameter allows  you  to 
                            specify the 6-byte node address to be used 
                            by   the   adapter.    If  you  omit  this 
                            parameter, the Ringnode  uses  its  unique 
                            burnt-in  node  address.  We recommend the 
                            burnt-in address whenever possible.

                            You can use any valid  hexadecimal  number 
                            in the range 400000000000 to 7FFFFFFFFFFF.

                            Ensure  that every adapter in your network 
                            has a different node address.

                            Range   :   400000000000  -  7FFFFFFFFFFF 
                            Default : burnt-in  address  of  Ringnode 
                            Abbreviation: (none)

                            Example : NODE ADDRESS 400012345678

RECEIVE MONITOR             This  release  of MADGEODI.COM conforms to 
                            DOS ODI specification version  4.0.   This 
                            specification   does  not  provide  for  a 
                            receive monitor function as used  in  such 
                            products  as  LANalyser  (pre  v2.2)  This 
                            keyword will  cause  the  receive  monitor 
                            function  to  operate  as  in the previous 
                            version of the ODI Spec (version 3.3). See 
                            section 4 below for more detail.

HOTSWAP                     This option can be used with a Madge Smart 
                            16/4  PCMCIA  Ringnode. When selected, the 
                            card may be removed and  replaced  without 
                            losing network connections. To do this, go 
                            to  a  DOS volume prompt (e.g.  C:); eject 
                            the card; insert and use a different  card 
                            (without trying to access network drives), 
                            then the Madge card can be re-inserted and 
                            network  drives  used.   The  card  can be 
                            re-inserted in any PCMCIA slot. To allow a 
                            different card  to  be  inserted,  a  NODE 
                            ADDRESS  option  must  be  used when first 
                            loading MADGEODI.

                            If  MADGEODI.COM  is  loaded   in   PCMCIA 
                            machine  with  no  Madge  PCMCIA  Ringnode 
                            inserted.  This  option  will  cause   the 
                            driver  to  load  normally.  When a PCMCIA 
                            Rignode is inserted it will be initialized 
                            for network use. When using this option in 
                            this way, a NODE ADDRESS option must  also 
                            be   used   so  IPXODI  will  be  able  to 
                            determine the node address of the ringnode 
                            even before it is inserted.

                            
POWER MANAGEMENT            Power    Management    option   works   in 
                            conjunction with POWER.EXE. When a machine 
                            is put into "suspend"  mode  the  Ringnode 
                            will  be  shutdown and when the machine is 
                            "resumed" the card will be re-initialized.

ADAPTER WATCHDOG TIMEOUT nn Changes  the  period  that  the  Ringnode 
                            waits before timing out (that is,  before 
                            shutting  itself  down). The default is 8 
                            seconds.  Increase this if you are  using 
                            applications    that    disable    system 
                            interrupts for long periods.  If  you  do 
                            not  give  a  timeout  value the Watchdog 
                            timer is disabled.

FORCE16                     This will force the Ringnode to insert 
                            into the Token-Ring at 16 mbit/s.
                            
FORCE4                      This will force the Ringnode to insert 
                            into the Token-Ring at 4 mbit/s.
                            
LLC                         Use  this parameter to force a Ringnode to 
                            respond to the LLC frames called TEST  and 
                            XID frames (for destination SAP zero).
                         
ALTERNATE                   If you are using the Smart 16 Ringnode and 
                            your MADGEODI.COM fails to load  with  the 
                            "Failed  Verifying  downloaded code" error 
                            message  try  using  this  parameter.   By 
                            default, this parameter is not set.

NOT PCI                     Use  this  parameter if the combination of 
                            your version of EMM386 and PCI-BIOS causes 
                            your  machine  to  fail  when  the  driver 
                            loads.   By  use of this parameter EMM386/ 
                            PCI-BIOS  conflicts  may  be  avoided  but 
                            Madge   PCI   Ringnodes   will  not  load.  
                            Upgrade your version of EMM386 if you want 
                            to use Madge PCI Ringnodes.


3) Command Line Parameters
--------------------------

The driver also supports the following command-line switches:

MADGEODI    :  Loads the driver into memory.

MADGEODI PIO:  Forces the driver to use PIO if possible.  

MADGEODI U  :  Unloads the driver from memory if possible.

MADGEODI S  :  Displays details of MADGEODI drivers currently loaded.

MADGEODI I  :  Displays version information.

MADGEODI ?  :  Displays a list of command-line switches.

MADGEODI H  :  Displays a sample NET.CFG file.


4) Special note on promiscuous mode operation
---------------------------------------------

The DOS ODI driver can operate as  a  promiscuous  mode  driver.  This 
means  it  can be put into a mode where it receives every frame on the 
ring and not just those directed to it or broadcast. This ability  can 
be  disabled  in the ROM (see SMARTROM.TXT). This feature means it can 
be used with analyser tools such as LANALYZER for Windows from Novell.

This  release of the driver conforms to ODI spec 4.0.  This version of 
the specification is different to previous versions in the manner that 
promiscuously received frames are passed to an  analyzer  application.  
In  previous versions of the specification, the application registered 
a "receive monitor" function with the driver. The  driver  would  call 
this  function  to notify the application of all packets received.  In 
DOS  ODI  specification  version  4.0  there  is  no  receive  monitor 
function.   The  analyser  application  receives frames by registering 
with the Link Support Layer (LSL.COM) as a  pre-scan  protocol  stack.  
When  the  driver receives a frame and presents it to the LSL, the LSL 
will first pass the frame to the application and then try to  pass  it 
to a registered protocol stack.

Novell  supply  a program called TKENH.COM with Lanalyzer for Windows. 
This program  enhances  the  performance  of  LZFW  on  Token-Ring  by 
intercepting  promiscuously  received  packets  passed  to the LSL and 
immediately flagging them as unwanted frames. This allows  the  driver 
to  quickly  pass these frames to the receive monitor. With ODI Spec 4 
drivers, TKENH.COM should not be used as packets need to be  processed 
by the LSL.

When using Promiscuous mode  applications  ALWAYS  add  the  following 
lines to the LINK DRIVER MADGEODI section of NET.CFG

   FRAME TOKEN-RING
   FRAME TOKEN-RING_SNAP

Also,  to  ensure  all  frames on the network are received set the MAX 
FRAME SIZE to the highest possible value.


                --------- End of DOS-ODI.TXT --------
