Smart II Software: TCP/IP parameters
====================================        
                                                LSS 5.0(0) August 1996
                                                ----------------------
1) Introduction
---------------
This document describes the parameters that affect  the  operation  of 
the Smart TCP/IP protocol modules on a particular Ringnode in your DOS 
workstation.  

The  modules  TCP.SMT,  IP.SMT,  UDP.SMT  and  DHCP.SMT  each  provide 
different  protocol  implementations.  The Internet protocols provided 
by the different modules are given in Table 1.  The Internet protocols 
are based on RFCs 826 (ARP), 903 (RARP), 792  (ICMP),  791  (IP),  768 
(UDP),  793  (TCP),  951  (BOOTP),  1541  (DHCP), 1533 (BOOTP and DHCP 
options), 1213 (MIB-II definition), 1122 and 1123 (Host Requirements).  
You always require  the  IP.SMT  module.   The  UDP.SMT,  TCP.SMT  and 
DHCP.SMT modules are optional.

-----------------------------------------------
| Smart module | Internet protocols provided  |
|----------------------------------------------
| IP.SMT       | IP, ARP, RARP, ICMP          |
| UDP.SMT      | UDP                          |
| TCP.SMT      | TCP                          |
| DHCP.SMT     | BOOTP, DHCP                  |
-----------------------------------------------
Table 1 Internet protocols provided by the 
        Smart TCP/IP protocol suite.

In addition to the Smart modules described in this document, you  must 
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  LAN  WorkPlace  for  DOS.  It  is  called 
NOVAPI.SMT. For information  about  loading  and  configuring  NOVAPI, 
refer to the SMTNOVAP.TXT file.

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

If  you want the workstations on your network to discover their own IP 
addresses (and other configuration information) using DHCP/BOOTP, load 
the DHCP.SMT module. Ensure you have not specified an  IP  address  in 
SMART.CFG  or  NET.CFG.  If  a  DHCP/BOOTP server cannot be found, the 
Smart II Software tries requesting the IP address from a  RARP  server 
(see  the  SMTRARPD.TXT  file).  To explicitly use BOOTP, refer to the 
description of the DHCP.SMT module in Section 5 below.

If you do not load DHCP.SMT and you have not specified an  IP  address 
in SMART.CFG or NET.CFG, the Smart II Software tries requesting the IP 
address  from  a RARP server. (For information about installing a RARP 
server, see the SMTRARPD.TXT file.)

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


Figure 1 shows a sample SMART.CFG file for  configuring  Smart  TCP/IP 
for use with the Novell LAN WorkPlace for DOS.

----------------------------------------------------------
|                                                        |
| [HOST]                                                 |
|                                                        |
|  display                                               |
|                                                        |
|  [CARD]                                                |
|                                                        |
|    io=1a20                  ; Card at IO location 1A20 |
|                                                        |
|   [NOVAPI]                  ; The host interface       |
|                                                        |
|   [IP]                                                 |
|                                                        |
|    ip.address=193.35.4.21   ; This host's IP address   |
|    ip.router=193.35.4.99    ; This network's router    |
|                                                        |
|   [UDP]                                                |
|                                                        |
|   [TCP]                                                |
|                                                        |
----------------------------------------------------------
Figure 1 Sample SMART.CFG file for configuring Smart TCP/IP
         for use with Novell LAN WorkPlace for DOS.



2 IP paremeters
---------------

This section describes the IP parameters.  Table 2 summarizes the 
parameters that are available.

--------------------------------------------------------------
|                                                            |
| Parameter                 Range          Default   Abbrev  |
| ---------                 -----          -------   ------  |
|                                                            |
| RAW.SOCKET                0 - 1          1         RS      |
| ARP.CACHE.SIZE            6 - 256        16        ACS     |
| ARP.REQUEST.CACHE.SIZE    4 - 32         16        ARCS    |
| ROUTE.CACHE.SIZE          6 - 256        16        RCS     |
| ARP.TIMEOUT               1 - 65535      600       AT      |
| ARP.RETRIES               1 - 32         1         AR      |
| ARP.REFRESH               Yes or No      No        AREF    |
| SOCKET.SAVES              1 - 16         16        SS      |
| ARP.BROADCAST.ALL         Yes or No      NO        ABA     |
| RARP.BROADCAST.ALL        Yes or No      NO        RBA     |
| SR.LOCAL.BROADCAST        Yes or No      Yes       SLB     |
| ENABLE.MIB                Yes or No      No        EM      |
| MIB.UPDATE                5 - 65535      10        MU      |
| IP.ADDRESS                <Unique addr>  None      IA      |
| IP.ROUTER                 <Unique addr>  None      IR      |
| IP.NETMASK                <Unique addr>  Dynamic   IN      |
|                                                            |
--------------------------------------------------------------            
Table 2 The IP parameters.      
  

 
RAW.SOCKETS         Specifies the maximum number of raw IP connections 
                    your  Ringnode  can  have.   You  need  one raw IP 
                    socket if you  are  using  the  PING  program,  or 
                    applications  that  use this utility (Serving FTP, 
                    IP Resolver, LWPCON).   In normal use,  you do not
                    need to alter this value from the default.

                    Example: RAW.SOCKETS=1
     

ARP.CACHE.SIZE      Limits  the  size of the cache that is used by ARP 
                    to store the MAC addresses of the  IP  hosts  that 
                    your  host  is  communicating  with  on  the local 
                    network.   
                    
                    The value of this parameter specifies  the  number
                    of  workstations   that   your   workstation   can
                    communicate with simultaneously on on the local IP
                    network.
                                    
                    Example: ARP.CACHE.SIZE=128


ARP.REQUEST.CACHE.SIZE 
                    Specifies the size of the cache  used by  ARP  to 
                    store the IP addresses it is trying to resolve.

                    Example: ARP.REQUEST.CACHE.SIZE=10

                    
ROUTE.CACHE.SIZE    Specifies the size of the cache that is used by IP 
                    to store routes to IP hosts that are not  on  your 
                    computer's  local network. This cache is generated 
                    by the ICMP Redirect mechanism. 
                    
                    Example: ROUTE.CACHE.SIZE=64


ARP.TIMEOUT         Specifies the length of time (in seconds) that ARP 
                    routes are kept in  the  ARP  table  before  being 
                    removed.  
                    
                    Example: ARP.TIMEOUT=1200

ARP.RETRIES         Specifies the number of times IP should ARP for  a 
                    particular IP address.  A single "try" consists of 
                    two ARP frames, one local broadcast and one source 
                    route   broadcast,  sent  1/4s  apart.   The  time 
                    between these pairs is one second.
                    
                    Example: ARP.RETRIES=2

                    
ARP.REFRESH         Specifies  whether  ARP  cache  timers  should  be 
                    refreshed  when data is received.  By default, the 
                    ARP.TIMEOUT  field  specifies  an  absolute   time 
                    length  that  an  entry  can be present in the ARP 
                    cache.  If this parameter is set to  YES  however, 
                    then  when  data  from  a particular IP address is 
                    received, the ARP cache timer for that IP  address 
                    is  reset to ARP.TIMEOUT. This parameter is useful 
                    if your IP workstation must communicate with  many 
                    hosts,  as  is  the  case  with network management 
                    software such as Madge Networks True View product.  
                    In this case, setting ARP.REFRESH to YES will help 
                    to keep ARP traffic to a minimum.
                    
                    Example: ARP.REFRESH=YES


SOCKET.SAVES        Specifies the number of commands that the Ringnode 
                    can  buffer  before  telling  the  host  it cannot 
                    accept any more.

                    Example: SOCKET.SAVES=10

                    
ARP.BROADCAST.ALL   Causes  ARP to send broadcasts that use all-routes 
                    information.  If you set this  parameter  to  YES, 
                    ARP only attempts to resolve addresses by means of 
                    all-routes broadcasts, if it has failed to resolve 
                    them   with   single-route   and  non-source-route 
                    information.
                    
                    Example: ARP.BROADCAST.ALL=YES

                    
RARP.BROADCAST.ALL  Causes RARP to send broadcasts that use all-routes 
                    information.   If  you  set this parameter to YES, 
                    RARP only attempts to resolve addresses  by  means 
                    of  all-routes  broadcasts,  if  it  has failed to 
                    resolve     them     with     single-route     and 
                    non-source-route information.
                    
                    Example: RARP.BROADCAST.ALL=YES

                    
SR.LOCAL.BROADCAST  Specifies whether or not IP  uses  source  routing 
                    for local broadcasts. By default, local broadcasts 
                    are  source  routed. If you need to restrict local 
                    broadcast IP frames to  your  local  ring,  change 
                    this parameter to NO.
                    
                    Example: SR.LOCAL.BROADCAST=NO


ENABLE.MIB          Enables the MIB that the IP module includes.  This 
		    provides you with some MIB and adapter statistics. 
		    Leaving  the MIB disabled improves performance and 
		    saves adapter memory.  You must also set  the  the 
		    ENABLE.STATISTICS  parameter in the NOVAPI section 
		    of smart.cfg to enable the  host  interface's  MIB 
		    functionality.  For information on NOVAPI.SMT, see 
		    the SMTNOVAP.TXT file.
                    
                    Example: ENABLE.MIB=NO


MIB.UPDATE          Specifies  the  number of seconds that must elapse 
                    before the IP module updates the host-based MIB.

                    Example: MIB.UPDATE=10
                    

IP.ADDRESS          Specifies the workstation's IP address.  This must 
                    be in decimal  format  and  dotted  notation. 
                    
                    If you do  not  specify  an  IP  address,  or  you 
                    specify  an  address of 0.0.0.0, then Smart TCP/IP 
                    uses  the  RARP  address  resolution  protocol  to 
                    determine  the  address. For more information, see 
                    the SMTRARPD.TXT file.
                    
                    Example: IP.ADDRESS=193.35.4.21

                                   
IP.ROUTER           Specifies  the  address  of  the default router on 
                    your workstation's local IP network.  This address 
                    is optional. Specify  it  in  decimal  format  and 
                    dotted notation.  

                    Example: 193.35.4.9
                           

IP.NETMASK          Specifies    the    subnetwork   mask   for   your 
                    workstation's IP network.  If you do  not  specify 
                    this    parameter,    the   subnetwork   mask   is 
                    calculated automatically from the IP address.  Use 
                    this parameter if you need  to  set  a  subnetwork 
                    mask.    The  address  should  be  set  using  the 
                    xxx.xxx.xxx.xxx decimal format.
                    
                    Example: IP.NETMASK=255.255.255.0



Configuring IP from the NET.CFG file
------------------------------------

This section describes the IP parameters you can use in the  "protocol 
TCPIP"  section  of  your   NET.CFG   file.     They are equivalent to  
parameters that you can use in your  SMART.CFG  file.    The parameter
must only be specified in one file, not in both.


The IP parameters are as follows:


raw_sockets         Specifies the maximum number of raw IP connections 
                    your  Ringnode  can  have.   You  need  one raw IP 
                    socket if you  are  using  the  PING  program,  or 
                    applications  that  use this utility (Serving FTP, 
                    IP Resolver, LWPCON). You do not normally need  to 
                    alter this value from the default.
                    
                    Do  not  put  an'='  sign  after  raw_sockets   in 
                    NET.CFG. 
                    
                    Example: raw_sockets 1

                                    
ip_address          Specifies the  IP  address  of  your  workstation. 
                    There  is no default value for this parameter. The 
                    address should be set  using  the  xxx.xxx.xxx.xxx 
                    decimal  format.  Do  not  put an '='  sign  after 
                    ip_address in NET.CFG. 
                    
                    Example: ip_address 193.35.4.21
                    

ip_router           Specifies  the  default router address for packets 
                    addressed to remote  networks.  IP  discovers  all 
                    other gateways dynamically using the ICMP redirect 
                    mechanism.  There  is  no  default  value for this 
                    parameter. The  address should be  set using   the 
                    xxx.xxx.xxx.xxx decimal format.
                    
                    Do not put an '=' sign after ip_router in NET.CFG. 
                            
                    Example: ip_router 193.35.4.9


ip_netmask          Specifies    the    subnetwork   mask   for   your 
                    workstation's IP network.  If you do  not  specify 
                    this  parameter, IP calculates the subnetwork mask 
                    automatically  from  the  IP  address.   Use  this 
                    parameter  if  you  need to set a subnetwork mask.  
                    The   address   should   be    set    using    the 
                    xxx.xxx.xxx.xxx decimal format. 
                    
                    Do  not  put  an  '='  sign  after  ip_network  in 
                    NET.CFG. 
                    
                    Example: ip_netmask 225.225.225.0

                    

3 UDP Parameters
----------------

This  section  describes  the  UDP  parameters. Table 3 summarizes the 
parameters that are available. 
                    
                    
--------------------------------------------------------
|                                                      |
| Parameter            Range       Default   Abbrev    |
| ---------            -----       -------   ------    |
|                                                      |
| UDP.SOCKETS          4 - 32      16        US        |
| UDP.FRAME.SAVES      4 - 32      16        UFS       |
| UDP.PORTS            4 - 32      16        UP        |
|                                                      |
-------------------------------------------------------- 
Table 3 Summary of the UDP parameters



UDP.SOCKETS         Specifies the maximum  number  of  concurrent  UDP 
                    connections  you  can  have.  If you are using the 
                    Domain Name System, you need at least 1 UDP socket 
                    for  each  application  that  runs   concurrently. 
                    NetBIOS requires at least 2 UDP sockets.
                    
                    Example: UDP.SOCKETS=32


UDP.FRAME.SAVES     Specifies  the  maximum  number of frames that UDP 
                    can buffer on the Ringnode for  processing  later. 
                    When  it  can  buffer no more frames, it starts to 
                    discard them.
                    
                    Example: UDP.FRAME.SAVES=10
        

UDP.PORTS           Specifies  the  number  of  UDP ports that you can 
                    bind at any time.
                    
                    Example: UDP.PORTS=10
                        

Configuring UDP from the NET.CFG file
-------------------------------------

This section describes the UDP parameter you can use in the  "protocol 
TCPIP"  section  of  your  NET.CFG  file.   It  is  equivalent  to the 
UDP.SOCKETS parameter that you can use in your SMART.CFG file. Use one 
or the other parameter. The parameter is as follows:


udp_sockets         Specifies the maximum  number  of  concurrent  UDP 
                    connections  you  can  have.  If you are using the 
                    Domain Name System, you need at least 1 UDP socket 
                    for  each  application  that  runs   concurrently. 
                    NetBIOS requires at least 2 UDP sockets.
                    
                    Do not put an '=' sign after udp_sockets in 
                    NET.CFG.

                    Example: udp_sockets 32
                    

4 TCP Parameters 
----------------

This section describes the TCP parameters.  One  important  difference 
between  TCP  and  the  other modules is that the default and range of 
some of the parameters change  depending  on  whether  the  amount  of 
memory available on the ringnode exceeds 128K.

Table  4  summarizes  the parameters that are available, including the 
defaults and ranges on both 128K ringnodes and those  with  more  than 
128K.  Where  a value differs depending on card type, it is written as 
(s/l), where 's' is the value on a 128K card and 'l' the  value  on  a 
card with more than 128K of memory.
                    
------------------------------------------------------------
|                                                          |  
| Parameter            Range           Default   Abbrev    |
| ---------            -----           -------   ------    |
|                                                          |
| TCP.SOCKETS          10 -  64        10        TS        |
| TCP.REQUESTS          6 -  32        12        TR        | 
| TCP.RX.BUFFERS        3 -  12/150    12/32     TRB       |
| TCP.TX.BUFFERS        0 -   0/150     0/32     TTB       |
| TCP.TX.BUFFER.SIZE   1024 - 2048     2048    (read only) |
|                                                          |
------------------------------------------------------------
Figure 1 Sample [TCP] section of a SMART.CFG file.  
 

TCP.SOCKETS         Specifies the maximum number  of  TCP  connections 
                    you  can  have  at any one time.
                    
                    Example: TCP.SOCKETS=64 

                    
TCP.REQUESTS        Specifies  the maximum number of TCP requests that 
                    your Ringnode can have outstanding.

                    Example: TCP.REQUESTS=16
                    

TCP.RX.BUFFERS      Specifies the number of 512 byte buffers that your 
                    Ringnode  uses  to store data that the host cannot 
                    receive immediately.
                    
                    Example: TCP.RX.BUFFERS=64
 
TCP.TX.BUFFERS      Specifies the number of 512 byte buffers that your 
                    Ringnode  uses  to buffer data  that the cannot be
                    transmitted immediately. 
                    N.B. This value is unused on a 128K card.

                    Example: TCP.TX.BUFFERS=64

TCP.TX.BUFFERSIZE   This is a read only parameter which indicates the
                    size of the main transmit buffer.  TCP builds the 
                    frame in this buffer before it is actually 
                    transmitted.
 
                    
Configuring TCP from the NET.CFG file
-------------------------------------

This  section describes the TCP parameter you can use in the "protocol 
TCPIP" section of your NET.CFG file.

tcp_sockets         Specifies the maximum  number  of  concurrent  TCP 
                    connections  you can have. It is equivalent to the 
                    TCP.SOCKETS parameter that  you  can  use  in  the 
                    SMART.CFG file. Use one or the other parameter. Do 
                    not  put an '=' sign after tcp_sockets in NET.CFG. 
                                    
                    Example: tcp_sockets 64 
                    

5 DHCP Parameters
-----------------

This  section  describes  the  DHCP  parameters. Table 3 summarizes 
the parameters that are available. 
                    
                    
--------------------------------------------------------
|                                                      |
| Parameter            Range       Default   Abbrev    |
| ---------            -----       -------   ------    |
|                                                      |
| DHCP.BOOTP           Yes or No   No        BOOTP     |
| DHCP.CLASSID                               CLASS     |
| DHCP.CLIENTNAME                            CLIENT    |
| DHCP.PATH.VDHCP                  \NET\BIN  VPATH     |
|                                                      |
-------------------------------------------------------- 
Table 3 Summary of the DHCP parameters



DHCP.BOOTP          If you want to use the BOOTP protocol, rather than 
                    DHCP, set DHCP.BOOTP=YES.  This  will  then  cause 
                    BOOTP   requests  to  be  sent,  instead  of  DHCP 
                    messages.

                    This  parameter  would  be  used  on   a   network 
                    consisting of only BOOTP and no DHCP servers.


                    Example: DHCP.BOOTP=YES  

DHCP.CLASSID        DHCP  allows   groups  of  users/computers  to  be
                    identified by the  use  of  a  common  name.  DHCP 
                    servers,  that support this feature will then give 
                    each user in that group  the  same  configuration. 
                    Setting  this  means  that  a  slightly  different 
                    options could be given  to  someone  using  SMART, 
                    rather than a UNIX workstation, for instance.

                    Setting  the DHCP.CLASSID parameter determines the 
                    which group configuration will be used.

                    Example: DHCP.CLASSID=SMART

DHCP.CLIENTNAME     If an identifier, other  than  the  adapter's  MAC 
                    address  is  required  for use by the DHCP server, 
                    then this parameter should be  used  to  configure 
                    it.  Using  this will mean that each computer will 
                    have  to  be  configured individually with its own 
                    name.

                    Example: DHCP.CLIENTNAME=BobsPC
                     
DHCP.PATH.VDHCP     Specifies  the directory that contains VDHCP.386, 
                    which allows DHCP.SMT to pop up  message  windows 
                    under Windows, warning if the client's IP address 
                    expires or is renewed.

                    Example: DHCP.PATH.VDHCP=c:\        


                    ****** End of SMTTCPIP.TXT ******
