Smart II Software: overview
===========================   
                                               LSS 5.0(0), August 1996
                                               -----------------------
Summary
-------
This document provides technical information about the 
Smart II Software.

The information found in this document includes:

Section 1    Operational Restrictions
Section 2    Overview of the Smart II Software
Section 3    Basic instructions for installing the software
Section 4    Protocols and interfaces
Section 5    DOS-memory usage
Section 6    Adapter-memory usage

1 Operational  Restrictions 
---------------------------
If  you  need  to  use  NetWare  RCONSOLE   in  a  Windows DOS box, we 
recommend you use the SMART.EXE program with the ODI protocol, instead 
of using IPX.  If you need  an  IPX  interface,  use  Novell's  IPXODI 
program. 

Updated   versions   of   the   Smart  II  Software,  addressing  this 
restriction, will be made  available  as  soon  as  possible.   Please 
contact  Madge Technical Support for the latest updates. For telephone 
and BBS numbers, refer to the User Documentation file.

2 Overview
----------
The Madge Smart II Software drivers provide Network protocol functions 
for the range of Madge Smart 16/4 Ringnodes. They are for use  on  DOS 
workstations,  where  the  memory  savings  they  provide allow larger 
application programs to run.  You  can  also  use  them  on  DOS-based 
servers.   

The  Smart IPX module is for use in Novell NetWare workstations, where 
it gives significant memory savings over standard IPX configurations.  

The  Smart  LLC and NETB modules are for use with applications such as 
PC-LAN, DOS LAN Manager, or  with  any  other  Network  software  that 
requires  an  IBM-compatible  LLC  or  NetBIOS  interface. It can also 
support many host communications packages  such  as  the  IBM  PC/3270 
support program.

The Smart ODI module is for use with NetWare workstations running over 
Novell's Open Data-link Interface for multi-protocol support.

The Smart NDIS module is for use  with  Microsoft's  LAN  Manager  and 
Windows  for  Workgroups,  Banyan VINES, IBM LAN Server, and any other 
network operating system  or  network  application  that  requires  an 
NDIS interface.

The Smart TCP/IP modules (IP.SMT, DHCP.SMT, UDP.SMT, and TCP.SMT)  are 
for use with different TCP/IP applications. The DHCP.SMT module allows 
you  to  have  your  IP address automatically configured, by a server, 
using either the  DHCP  or  BOOTP  protocols.  The  NOVAPI.SMT  module 
provides   a  DOS-based  host-interface  which  enables  Novell's  LAN 
WorkPlace for DOS applications to access  the  Smart  TCP/IP  protocol 
suite. The RARPD.SMT module is a RARPD server program.  You can use it 
to enable your workstations to discover their own IP addresses at boot 
time.

For more information  about  the  Smart  II  Software  interfaces  and 
protocols, see Section 4 of this document.

The  Smart  II  Software  includes facilities for constructing network 
drivers from a number of subcomponents:  the  SMART  program  and  the 
protocols are separate files.  You can combine them, using the SMTLINK 
utility,  into  a  single  executable  file. For information about the 
SMTLINK utility, refer to the SMTLINK.TXT file.

Alternatively the SMART.EXE program can read the protocol modules from 
disk when it runs.  SMART.EXE can use a configuration script  file  in 
addition  to/instead  of  the command line.  (The Smart TCP/IP modules 
cannot be configured from the command line.)

This release of the Smart II Software does not support  adapters  that 
run solely at a ring speed of 4Mbps.

3 Basic installation
--------------------

3.1 The SMART command
---------------------

You  can install the SMART.EXE either as a DOS device driver, from the 
CONFIG.SYS  file,  or  as  a  DOS  TSR   (Terminate-and-Stay-Resident) 
program, from the AUTOEXEC.BAT file. 

If you install the program as a device driver, we recommend  that  you 
install  it  towards the end of the CONFIG.SYS file. If you install it 
in your AUTOEXEC.BAT file, we recommend  that  you  put  it  near  the 
beginning  of  the  file.  In either case, install it before any other 
network software.  

We recommend that you configure your Smart II Software from  a  script 
file  called  SMART.CFG.  If you do, you only need to include the word 
SMART or SMART.EXE on the device line or the command line. Examples of 
suitable lines in CONFIG.SYS are:

DEVICE=C:\SMART.EXE
REM interfaces/protocols and parameters specified in SMART.CFG   

DEVICE=C:\SMART.EXE   IPX   <parameters>   
or: 
DEVICE=C:\SMART.EXE LLC <parameters> NETB <parameters>

Examples of suitable lines in AUTOEXEC.BAT are:

C:\SMART
REM interfaces/protocols and parameters specified in SMART.CFG

C:\SMART IPX <parameters>
or:  
C:\SMART LLC <parameters> NETB <parameters>
or:  
C:\SMART ODI <parameters>

In all cases, you can replace the "C:\" by a DOS directory  path  that 
describes  where  the  programs are stored.  The <parameters> indicate 
optional configuration parameters that you can use. (For  simple  use, 
do  not include any parameters.) The optional parameters are described 
in the following files:

        SMTHOST.TXT
        SMTCARD.TXT
        SMTLLC.TXT
        SMTNETB.TXT
        SMTIPX.TXT
        SMTODI.TXT
        SMTNDIS.TXT
        SMTTCPIP.TXT
        SMTNOVAP.TXT
        SMTRARPD.TXT

Where a parameter can take a range of values, you may  find  that  the 
value  you specify is not actually used but has been reduced slightly. 
This will be due to the adapter running out of memory and will be more 
likely to happen when several protocols are being loaded.

3.2 The SMART.CFG file
----------------------
We recommend that you load and configure your Smart II Software  using 
a  SMART.CFG  file  stored  in  the  same  directory  as the SMART.EXE 
program. (You can provide  a  path  to  the  script  file.   For  more 
information,  refer  to the SMTHOST.TXT file).  Figure 1 describes the 
format of the SMART.CFG.    



**Note**************************************************************** 

 that you can specify your protocols and interfaces in the order 
 of your choice. Comments appear after a ';' character.) 

**********************************************************************
      +------------------------------------------+      
      |                                          |
      | [HOST]                                   |
      |                                          |
      |  <host parameters>                       |
      |                                          |
      |  [CARD]         ; first Ringnode         |
      |                                          |
      |   <card parameters>                      |
      |                                          |
      |   [IPX]                                  |
      |                                          |
      |    <IPX parameters>                      |
      |                                          |
      |   [LLC]                                  |
      |                                          |
      |    <LLC parameters>                      |
      |                                          |
      |   [NETB]                                 |
      |                                          |
      |    <NetBIOS parameters>                  |
      |                                          |
      |  [CARD]         ; second Ringnode        |
      |                                          |
      |   <card parameters>                      |
      |                                          |
      |   [ODI]                                  |
      |                                          |
      |    <ODI parameters>                      |
      |                                          |
      |   [NOVAPI]                               |
      |                                          |
      |    <Novell TCP/IP API parameters>        |
      |                                          |
      |   [DHCP]                                 |
      |                                          |
      |    <DHCP parameters>                     |
      |                                          |
      |   [IP]                                   |
      |                                          |
      |    <IP parameters>                       |
      |                                          |
      |   [UDP]                                  |
      |                                          |
      |    <UDP parameters>                      |
      |                                          |
      |   [TCP]                                  |
      |                                          |
      |    <TCP parameters>                      |
      |                                          |
      |   [RARPD]                                |
      |                                          |
      |    <RARPD parameters>                    |
      |                                          |
      |                                          |
      +------------------------------------------+      

        Figure 1 Format of the SMART.CFG file.


A SMART.CFG might contain the setup in Figure 2 below.

      +------------------------------------------+      
      |                                          |
      |  [host]                                  |
      |                                          |
      |    win=31                                |
      |                                          |
      |  [card]                                  |
      |    io=0A20                               |
      |    usedma                                |
      |                                          |
      |    [ipx]                                 |
      |      source.routing=yes                  |
      |      connections=40                      |
      |                                          |
      |  [card]                                  |
      |    pio                                   |
      |    lomem                                 |
      |    io=2A20                               |
      |                                          |
      |    [netb]                                |
      |      tx.u.buffers=25                     |
      |                                          |
      |    [llc]                                 |
      |      saps=5                              |
      |                                          |
      |    [odi]                                 |
      |      frame token-ring                    |
      |      protocol IPX E0 token-ring          |
      |                                          |
      +------------------------------------------+

        Figure 2 Sample SMART.CFG file

The  HOST section in the above example, tells the host to expect to be 
used with Windows v3.1, and to use LOMEM DMA.  For  more  information, 
refer to the SMTHOST.TXT file.
                                                
The  first  Ringnode,  which  is  located at I/O address 0A20, has IPX 
enabled and uses DMA. In the  [IPX]  section  for  that  card,  source 
routing is enabled, and 40 SPX connections are specified.

The  second  Ringnode,  which is located at I/O address 2A20, uses PIO 
mode and has three protocols enabled: LLC, NetBIOS and ODI.   The  LLC 
has  5  SAPs  available.  The NetBIOS has 25 Transmit U frame buffers.  
The ODI supports frame type token-ring  and  the  IPX  protocol  stack 
(using protocol id E0 and frame type token-ring).

For an example of a SMART.CFG that enables modules of the Smart TCP/IP 
protocol suite, refer to the SMTTCPIP.TXT file.

If  you  want  to  run SMART in upper memory (with DOS version 5.0 and 
later),  you  must  run  it  from  the  AUTOEXEC.BAT  file,  using   a 
configuration option called LOAD.HIGH. (See the SMTHOST.TXT file.)
 
You cannot run SMART high if you load it as a device driver. 

4 Protocols and interfaces
--------------------------
The  Smart  II Software provides several different software interfaces 
that you can select by configuration parameters.  It is important that 
you select the correct interface,  or  interfaces,  for  your  network 
software.   

Select  only  the  interfaces  you know that you will need.  The fewer 
interfaces you require, the less DOS  memory  the  Smart  II  Software 
uses,  and  the  more resources there are on your Ringnode for default 
parameter values.

The Smart II Software  interfaces  are  also  described  in  the  User 
Documentation,  which  will help you select the correct interfaces for 
your network software.  

To load a particular module, include a section for that module in your 
SMART.CFG file. Put the parameters for each module you require in that 
module's section of the SMART.CFG file.  No parameters are allowed  in 
any   section   other   than  the  parameters  that  are  specifically 
appropriate to that section. Do not attempt to load or  configure  the 
Smart  TCP/IP  modules  from  the  command  line.   

The Smart II Software interfaces and protocols are:

LLC                 An  IBM  compatible CCB interface using IEEE 802.2 
                    class 2 protocols.  The  LLC  interface  is  fully 
                    compatible   with   the   IBM  CCB1  interface  as 
                    specified in the IBM Local Area Network  Technical 
                    Reference  manual  (release 3).  The LLC interface 
                    allows you  to  access  the  IEEE  802.2  class  2 
                    protocol   functions  of  the  Smart  LAN  Support 
                    Program.
                    
                    Note  that  a  low  level  LLC interface is always 
                    operational on your Ringnode.  You  only  need  to 
                    specify  the LLC module if you are running network 
                    software  that   requires   the   CCB   interface.  
                    Examples  of such software are host communications 
                    packages such as the IBM 3270 PC support  program, 
                    or  IBM  SNA applications. 
                    
                    If  you  only  require  the NetBIOS interface, you 
                    gain substantial memory savings by not loading the 
                    LLC interface.  An example of such a situation  is 
                    where  a  PC-LAN  workstation  is  running with no 
                    other network software. 
                    
                    Unless  you  already  have an interrupt arbitrator 
                    program running, an Interrupt Arbitrator Interface 
                    is enabled automatically when you enable  the  LLC 
                    interface.    It   is   equivalent   to   the  IBM 
                    DXMA0MOD.SYS program.  This means that  the  Smart 
                    LLC  driver  is equivalent to the IBM DXMA0MOD.SYS 
                    and DXMC0MOD.SYS programs, combined.

NetBIOS             An industry standard NetBIOS interface.  A NetBIOS 
                    interface  is  used  by  many  network   operating 
                    systems  and  applications.   The  Madge  Smart II 
                    Software  implements  it  using   IBM   compatible 
                    NetBEUI  protocols.  It  can  inter-operate on the 
                    network with IBM's NetBIOS program  or  any  other 
                    compatible product.

IPX                 A  NetWare  compatible  IPX  and  SPX   interface, 
                    allowing  you  to  run  the  Novell  NETx program, 
                    Novell  NetBIOS,  or  any   other   IPX   or   SPX 
                    application.    It   replaces  the  usual  NetWare 
                    IPX.COM program.

ODI                 A  NetWare compatible Open Data-Link Interface for 
                    multi-protocol support.  Novell's  Open  Data-Link 
                    Interface  (ODI)  allows  LAN drivers and protocol 
                    stacks to work together independently of  hardware 
                    and protocol stack details.  An intervening layer, 
                    called   the   Link   Support   Layer   (LSL),  is 
                    responsible for  routing  different  packet  types 
                    between  LAN  drivers  and protocol stacks.  Smart 
                    ODI is an ODI driver for DOS workstations.
                    
                    You  can run IPX on top of ODI by using the IPXODI 
                    program supplied by Novell.  You  could  therefore 
                    run  the  following  sequence  of  programs  as an 
                    alternative to the Smart IPX driver:

                    LSL         (Novell program)  
                    SMART  ODI  
                    IPXODI      (Novell supplied program)

                    You cannot run Smart ODI as a device  driver  from 
                    your  CONFIG.SYS file. This is because the LSL has 
                    to be run first, and LSL has to be  run  from  the 
                    DOS prompt.
                    
                    You  can  configure Smart ODI from a NET.CFG file.  
                    (If your SMART.CFG file includes the [ODI] section 
                    heading, and you have a NET.CFG file present,  the 
                    ODI  module  takes its parameters from the section 
                    of NET.CFG headed "link driver smart".)  
                    
NDIS                An implementation of version  2.02  of  the  3Com/ 
                    Microsoft NDIS specification. The Madge Smart NDIS 
                    driver  is  suitable  for  use  with Microsoft LAN 
                    Manager, Windows for Workgroups, Banyan VINES, IBM 
                    LAN Server, various TCP/IP products, and any other 
                    network operating system  that  requires  an  NDIS 
                    interface.
                    
TCP/IP              A  suite  of  industry-standard  TCP/IP   protocol 
                    modules.

                    The Smart TCP/IP modules are IP.SMT, DHCP.SMT UDP.SMT,
                    and TCP.SMT.    Each   provides   different   protocol 
                    implementations.  The Internet protocols  provided 
                    by  the  different  modules  are given in Table 1.  
                    You always require the IP.SMT module.  The UDP.SMT 
                    and TCP.SMT modules are optional.


                    +--------------+------------------------------+
                    | Smart module | Internet protocols provided  |
                    +--------------+------------------------------+
                    | IP.SMT       | IP, ARP, RARP and ICMP       |
                    | DHCP.SMT     | DHCP and BOOTP               |
                    | UDP.SMT      | UDP                          |
                    | TCP.SMT      | TCP                          |
                    +--------------+------------------------------+

                    Table 1 Internet protocols provided by the
                    Smart TCP/IP protocol suite.

Host-interface      If  you  are  using  the Smart TCP/IP modules, you 
                    must also load a DOS-based host  interface.   This 
                    enables  applications  to  access the Smart TCP/IP 
                    protocol suite.  The host interface we provide  is 
                    compatible   with  Novell's  NetWare  IP  and  LAN 
                    WorkPlace for  DOS  applications.   It  is  called 
                    NOVAPI.SMT.   For  information  about  loading and 
                    configuring NOVAPI,refer to the SMTNOVAP.TXT file.

RARPD server        If you want the workstations on  your  network  to 
                    discover  their  own IP addresses using RARP, load 
                    the  Smart  RARPD  module   onto   one   of   your 
                    workstations.   For more information, refer to the 
                    SMTRARPD.TXT file.

5 DOS-memory usage
------------------
 
The  Madge  Smart  II  Software transfers most of the work of protocol 
processing onto your Ringnode. This means that only a small amount  of 
DOS  memory  is  required  for the interface code.  The amount that is 
required depends mainly on which interfaces you enable.   It  is  also 
affected  by  certain configuration parameter values, and it increases 
if you are using more than one Madge Smart 16/4 Ringnode.  Approximate 
figures for memory usage (with parameters set to their default values) 
are given in Tables 2 and 3 below.
                    
        +--------------------------+-----------------------------+
        | Interfaces               | DOS memory required (bytes) |
        +--------------------------+-----------------------------+
        | NetBIOS                  |   3 500                     |
        | IPX                      |   6 300                     |
        | ODI                      |   9 800                     |
        | LLC                      |  12 300                     |
        | LLC + NetBIOS            |  13 900                     |
        | IPX + NetBIOS            |   7 900                     |
        | IPX + LLC                |  16 800                     |
        | IPX + LLC + NetBIOS      |  18 900                     |
        | NDIS                     |   5 200                     |
        | TCP                      |     000                     |
        | IP                       |     690                     |
        | DHCP                     |   2 400                     |
        | UDP                      |     000                     |
        | NOVAPI                   |   4 900                     |
        | NOVAPI + Windows support |   6 400                     |
        | NOVAPI + MIB             |   7 900                     |
        | NOVAPI + Windows support |                             |
        |        + MIB             |   9 200                     |
        | RARPD                    |     000                     |
        +--------------------------+-----------------------------+

        Table  2  DOS memory used by the Smart II Software 
                  interfaces and protocols.
                    
        +------------------------+---------------------+
        | Supplementary software | DOS memory required |
        +------------------------+---------------------+
        | LSL    (used by ODI)   |   3 800 bytes       |
        | ROUTE  (on top of ODI) |   1 000 bytes       |
        | IPXODI (on top of ODI) |  15 900 bytes       |
        +------------------------+---------------------+

        Table 3 DOS memory used by supplementary software
                required by some Smart II Software interfaces.
                    
The amount of DOS memory used increases if you use the  LOMEM  option.  
The  size  of  this  increase  varies  between  300 and 1024 bytes per 
Ringnode.

The  amount  of  DOS  memory  used by the LLC interface depends on the 
value that that you set the RX.SIZE parameter  to.   If  you  increase 
this  from  its  default,  then the amount by which you increase it is 
reflected exactly in the amount of increased DOS memory  taken  up  by 
the LLC.  The SAPS parameter also affects the size of the resident LLC 
interface.

You can use the HIGH parameter to load your protocols in upper memory,
and save low memory for  your applications.   If you do this,  a small
(100 byte) stub of code is left in DOS memory.

(You must specify the  HIGH parameter  in the  [CARD] section  of your
SMART.CFG file, or the command line.)

6 Adapter memory usage 
----------------------  

The  amount of memory that your Smart 16/4 Ringnode has determines:

* the number of interfaces you can download.
* the parameter values that your Smart II Software defaults to.
* the parameter values that you can specify for the Smart II Software.

All Smart 16/4 Ringnodes have at least 128Kbytes of RAM on-board. Many 
have 256Kbytes, and some have 512Kbytes.
 
Ringnodes with 256K or  512K,  of  RAM  can  run  with  4 (non-TCP/IP) 
protocols loaded), and with a default frame size of 4096 bytes. 

To  enable more than 1 protocol to load onto a Ringnode with 128Kbytes 
of RAM, the defaults are reduced (including the default  frame  size). 
Even with this reduction occasions may arise when your Ringnode cannot 
download the driver software  because it hasn't enough on-board memory 
for  its  internal  buffers.   If  this  occurs, reduce some parameter 
values still further until your Ringnode opens successfully.

                  ****** End of SMART.TXT ****** 
