2.4. ICP_IP Devices

Note: The information in this section is included in the Freeway User's Guide and is reproduced here because the Message Switch is particularly useful with ICP_IP devices.

The ICP_IP devices which have been added to Freeway's capabilities behave similarly to any ordinary ICP device (ICP6000, ICP2432, etc.). The desired configuration of an ICP_IP device must be specified in the boot configuration file (this is the file which is specified as the "Configuration File Name" field of the Freeway boot parameters). An example configuration file containing ICP_IP configuration specifications is provided with the Freeway software release (called bootcfg.ip). See that file for a description of the configuration options which have been added to support ICP_IP.

The steps required to use the new ICP_IP devices are:

  1. Edit bootcfg.ip to change the IP addresses as appropriate for your system.

    • All references to "" should be changed to the IP address of your Freeway system

    • All references to "" should be changed to the IP address of a system (or systems) which will send or receive IP packets to or from your Freeway system

    • If you plan to use the second ethernet interface, all references to "" and "" must also be changed

  2. Change the following boot parameters for your Freeway system:

    • Change the "FREEWAY Server Name" and "FREEWAY Inet Address" to tell the Freeway system where it is configured in your network.

    • Change the "Boot Server Name" and "Boot Server Inet Address" to specify a machine from which the Freeway boot directory can be accessed.

    • Change the "System Boot Directory" to point to your Freeway boot directory.

    • Change the "System Boot File Name" to the name of your Freeway image.

    • Change the "Configuration File Name" to bootcfg.ip.

  3. Reboot Freeway.

  4. The new ICP_IP devices can now be used in either raw or normal mode by any client application, simply by specifying the appropriate ICP name in the call to dlOpen. For example, if Freeway is configured as shown in the supplied bootcfg.ip file, a call to dlOpen for a port definition with BoardNo set to 3 will use a socket configured as specified in icp3 in bootcfg.ip.

    The mapping looks like this:

    • The dlOpen function is called with a session name. For example: server0icp3port4

    • The session name is matched to a section in the DLI configuration file, and the appropriate BoardNo and PortNo values are saved. For example:

                        BoardNo = 3
                        PortNo = 4
    • The BoardNo, appended to the ascii string "icp", is used to find the device specified in the Freeway boot configuration file. The device specifies the type of data transfer to be used, local and foreign IP addresses, base port numbers, etc. The PortNo from the DLI configuration file is added to the local_port_base and foreign_port_base fields from the boot configuration file to generate the port numbers used for this IP device.

      For example:

                        device = icp3
                        type = sock_dgram
                        local address = ANY
                        local port = 0x2130 + 4 = 0x2134
                        foreign address =
                        foreign port = 0x2130 + 4 = 0x2134
    • To test an ICP_IP link, you may run the "makeloop" script on a UNIX machine to compile the loopback test programs. This script and the accompanying loopback.c source file reside in the directory freeway/client/test/iploop. These programs perform the same function for ICP_IP links as the physical loopback cables perform for real wired FMP links; they take data being sent to one ICP_IP link and return it to the next adjacent ICP_IP link.

      • Make sure the Freeway system has an ICP_IP device pointing to the UNIX machine where the test program is running, (change the foreign_address to the IP address of the machine where the test program is running) then run any normal test program (for example, fmpalp).

      • The loopback test programs correspond to the ICP_IP devices as configured in the supplied bootcfg.ip file:

                                     server0icp1port0 (and port1) tcploop2110 
                                     server0icp1port2 (and port3) tcploop2112 
                                     server0icp1port4 (and port5) tcploop2114
                                     server0icp2port0 (and port1) tcploop2120 
                                     server0icp2port2 (and port3) tcploop2122 
                                     server0icp2port4 (and port5) tcploop2124
                                     server0icp3port0 (and port1) udploop2130 
                                     server0icp3port2 (and port3) udploop2132 
                                     server0icp3port4 (and port5) udploop2134
                                     server0icp4port0 (and port1) mcastloop2140 
                                     server0icp4port2 (and port3) mcastloop2142 
                                     server0icp4port4 (and port5) mcastloop2144

        Note: The mcastxxxx programs must be compiled and run on a multicast-capable machine, and are necessary only for testing a multicast-capable Freeway.

        For example, if you set foreign_address for icp3 to the IP address of a machine running udploop2134, you can run fmpalp on any client machine (with the "server" field in fmpaltcfg pointing to your Freeway), select "3" when asked for the "ICP board on which to run test", select "4" when asked for the "Even port number", and fmpalp will run normally. The data will be going from fmpalp on your client machine, to Freeway, out the ICP_IP device to the machine running udploop2134, back to Freeway on the alternate-numbered ICP_IP link, then back to fmpalp on your client machine.