Interfaces Setup 1.14 (18 Dec 2002)
================

Introduction
------------

IFSetup is used to configure the interfaces used by the TCP/IP network
stack built into RISC OS.

Together with the Routing setup tool and the Resolver setup tool, they
replace the functionality as the old !InetSetup application (which in
turn replaced !Internet and !BootNet in earlier versions of the OS).

Extensive interactive help is available - press the Help button in
Configure's main menu.


Auto-configuration
------------------

When the machine starts, interfaces may be automatically configured to use
particular addresses. This facility may be useful if you wish to change
interfaces without having to reconfigure your network settings.

There are four modes of auto-configuration :
  None    - No auto-configuration is performed.
  Static  - A static address will be configured, together with a DNS
            entry from CMOS.
  Freeway - An address based upon the ethernet card installed will be
            configured.
  Dynamic - A dynamic address will be obtained from a DHCP server.

Presently a default route is only created by the Dynamic configuration
option.


Troubleshooting
---------------
You may find that some interfaces are greyed out. This will be because some
required software has not been found in your ROMs or in your System
application. If this is the case, an 'information' button will be provided,
giving more detailed information on the drivers which are required.


Technical details
-----------------

IFSetup is hardwired with details of common network interfaces. To add an
unknown interface to InetSetup's interface list, place a detection program in
!Boot.Resources.Configure.!IFSetup.AutoSense. All files in this AutoSense
directory are run before the InetSetup application starts. Your program
should detect the presence of an interface (independently of its driver
module being present - it may be unplugged), and for each interface present
set a system variable

  InetSetup$Driver$<location>

<Location> is not significant, but is presented to the user in InetSetup,
with underscores converted to spaces. Example locations are "NIC", "Slot_4"
and "Econet".

The variable should be set to

    <description>:<unit>:<driver module>[:<version>[:<module filename>[:P]]]
      
where

      description = human-readable description of interface, eg
                    "Ethernet III"
      unit = DCI-4 driver name, eg "ea0"
      driver module = name of driver module, eg "Ether3"
      version = minimum version required for DCI 4.02 support, eg "4.21".
                If omitted, it is assumed that any version will do.
      module filename = filename of driver module in System:Modules.Network,
                        eg "Ether3-16". If omitted, it will not attempt to
                        softload the module should it not be present in
                        ROM.
      P : if present, the interface is a point-to-point interface (PPP).

The required version numbers for the core networking modules are specified in
InetSetup's Messages file. If, for example, you have Net 6.18 in ROM, but
require Net 6.19, then you must set v_Net to 6.19 in the Messages file,
otherwise InetSetup, when used, will RMInsert the Net from the ROM, and not
cause the new Net module to be loaded on startup.

InetSetup currently generates the files <Choices$Hardware>.Internet.Interfaces,
and <Boot$Hardware$ToBeLoaded>.SetUpNet. The other files in the
Hardware choices Internet directory are modified by other network components.
