Chapter 2. Configuring IRIS HIPPI

This chapter provides instructions and information about configuring the IRIS HIPPI software. The configuration tasks are listed, then described in detail, in the sections of this chapter.

Within this chapter, there is a section that describes how the physical HIPPI boards (hippi0, hippi1, hippi2, and hippi3) are matched to HIPPI network interfaces (hip0, hip1, hip2, and hip3).

Overview of Configuration Steps

Before configuring the IRIS HIPPI software, you need to decide whether or not you want the driver to include support for the IP network stack. The configuration steps are slightly different depending on this decision.

IRIS HIPPI Without IP Support

The following steps configure the IRIS HIPPI driver for use as a non-IP network connection. Complete details for each step are provided in separate sections of this chapter.

  1. Use inst to install the IRIS HIPPI software from the CD-ROM, as explained in the IRIS HIPPI Release Notes. The inst command is documented in the IRIS Software Installation Guide that came with the system.

  2. Optional:
    Edit the /usr/var/sysgen/system/hippi.sm file to EXCLUDE the IP interface.


    Note: If you exclude IP support from the driver, and later you want to use IP, you must redo the configuration steps. If you configure the software with IP, you only need to do the additional configuration steps to add IP functionality later. When the driver is built to support IP, but IP is not configured, some error messages are displayed each time the system is started.


  3. The system is ready to have its IRIS HIPPI hardware installed. When restarted (after the hardware installation), the system asks you to authorize rebuilding of the operating system. Answer yes, to build an operating system that includes the IRIS HIPPI driver. Then, reboot the system to start using the new operating system.


    Note: If the hardware is already installed, rebuild the operating system as described in “Building a New Driver Into the Operating System”.


IRIS HIPPI With IP Support

The following steps configure the IRIS HIPPI driver with support for IP networking. Complete details for each step are provided in separate sections of this chapter.

  1. Use inst to install the IRIS HIPPI software from the CD-ROM, as explained in the IRIS HIPPI Release Notes. The inst command is documented in the IRIS Software Installation Guide that came with the system.

  2. Edit the /usr/var/sysgen/master.d/if_hip file to configure IRIS HIPPI driver parameters.

  3. Verify that the /usr/var/sysgen/system/hippi.sm file has an INCLUDE statement for the IP interface.

  4. Edit the /usr/etc/hippi.imap file to include all the endpoint destination I-fields.

  5. Edit the IP configuration files (/etc/hosts and /etc/config/netif.options) to include IP network connection names and addresses.

  6. Enable IP (that is, write ON into the /etc/config/network file).

  7. The system is ready to have its IRIS HIPPI hardware installed. When restarted (after the hardware installation), the system asks you to authorize rebuilding of the operating system. Answer yes, to build an operating system that includes the IRIS HIPPI driver. Then, reboot the system to start using the new operating system.


    Note: If the hardware is already installed, rebuild the operating system as described in “Building a New Driver Into the Operating System”.


Checking If IRIS HIPPI Software Has Been Installed

Use the command below to verify the version or to check if the IRIS HIPPI software has been installed .

% versions hippi
I HIPPI date IRIS HIPPI, version

Editing the hippi.sm File

The /usr/var/sysgen/system/hippi.sm file tells the system's software which IRIS HIPPI modules to include when it builds the IRIS HIPPI driver into the operating system. One line in this file can be edited to build an IRIS HIPPI driver that does not support IP networking.

  • Original line that builds IP support into the driver:

    INCLUDE: if_hip
    

  • Changed line that builds an IRIS HIPPI driver without IP support:

    EXCLUDE: if_hip
    

If you exclude IP functionality, then decide later that you want IP to function over HIPPI, you must undo this edit, then, rebuild the operating system.


Note: When the driver is built with IP support, but the IP protocol stack is not enabled, each time the system is started some error messages are displayed; the HIPPI functionality is all right.


Editing the if_hip File

The /usr/var/sysgen/master.d/if_hip file configures the IRIS HIPPI driver and board. Driver and board configuration is optional, because all parameters have default settings. The settings in this file affect all IRIS HIPPI boards installed in the system.

The IRIS HIPPI driver and board have very few configurable parameters (for example, the size for the maximum transmission unit and onboard IP checksumming). The specific items vary from release to release, so they are explained fully within the file.

Editing the hippi.imap File

The /usr/etc/hippi.imap file maps hostnames (or IP addresses) to HIPPI I-fields. Optionally, a 6-byte universal IEEE address (called ULA, MAC or Ethernet address) can also be mapped. The file can contain up to 2048 lines.

Each time the HIPPI-LE upper layer protocol (ULP) module is about to program the HIPPI subsystem's source channel to issue a connection request, it obtains the I-field for its destination from a lookup table that has been loaded into memory at startup time. The lookup table maps IP addresses or hostnames to HIPPI I-fields. This table is generated (at startup time) from the hippi.imap file and can be modified in real time with the hipmap command.

Each I-field is a 32-bit value. Each line (entry) in the file can have any of the formats illustrated below:

  • hostname 0xXXXXXXXX

    where hostname is the name of a system as listed in the /etc/hosts file and 0xXXXXXXXX is the 32-bit I-field, in hexadecimal notation. The following line is an example of this format:

    hippi-goofy 0x01000001	#source adddress format for port1
    

  • x.x.x.x 0xXXXXXXXX

    where x.x.x.x is the IP address in dotted decimal notation, and 0xXXXXXXXX is the 32-bit I-field in hexadecimal notation. The following line is an example of this format:

    223.9.1.18 0x07001002	#logical adddress format
    

  • hostname 0xXXXXXXXXXX:XX:XX:XX:XX:XX

    where hostname is the name of a system as listed in the /etc/hosts file, 0xXXXXXXXX is the 32-bit I-field in hexadecimal format, and XX:XX:XX:XX:XX:XX is the 48-bit ULA in hexadecimal notation. The following line is an example of this format:

    hippi-goofy 0x01000001 05:A6:70:9B:FF:8E
    

  • x.x.x.x 0xXXXXXXXXXX:XX:XX:XX:XX:XX

    where x.x.x.x is the IP address in dotted decimal notation, 0xXXXXXXXX is the I-field (32-bits in hexadecimal format), and XX:XX:XX:XX:XX:XX is the ULA (48-bits in hexadecimal notation). The following line is an example of this format:

    223.9.1.18 0x01000001 05:A6:70:9B:FF:8E
    

The IRIS HIPPI software does not check or verify these values. It is the system administrator's responsibility to ensure that each entry is both valid and correct. The I-field value must be the exact I-field for use in the connection request; for example, it must contain the desired settings for the camp-on bit and the source's address bits.

Figure 2-1 is a template that can be used for developing each 32-bit I-field. The template shows the values that SGI recommends for use by the IRIS HIPPI-LE upper layer protocol.


Note: If the IRIS HIPPI source is connected directly to another HIPPI endpoint (no switch is involved), the single I-field value for the destination host can be 0x00000000.

Figure 2-1. Template for Creating I-fields With Recommended Values


If IRIS HIPPI is already functioning, and you want to load a new hippi.imap file into memory, the following command can be invoked:

# /usr/etc/hipmap -f /usr/etc/hippi.imap

Editing the IP Configuration Files

To configure the IP networking interfaces, edit the /etc/hosts and /etc/config/netif.options files, as explained below.

Each time the IP software starts, it uses information from these two files to configure the IP interfaces.


Note: For additional details about enabling the IP networking software and configuring network interfaces, refer to the IRIX Site Administrator's Guide, which is available online through IRIS Insight™ or in hardcopy.


The /etc/hosts File

The /etc/hosts file maps hostnames to network-layer IP addresses. There must be one entry for each IRIS HIPPI board. The entries should be similar to the examples below, which illustrates four IRIS HIPPI interfaces for a system whose hostname is goofy.:

223.9.1.2   hippi-goofy.toons.com   hippi-goofy
223.9.2.4   hippi2-goofy.toons.com  hippi2-goofy
223.9.3.16  hippi3-goofy.toons.com  hippi3-goofy
223.9.4.32  hippi4-goofy.toons.com  hippi4-goofy

The /etc/config/netif.options File

The /etc/config/netif.options file maps local hostnames (or IP addresses) to IRIS HIPPI boards (for example, hip0, hip1, etc.). There must be a two-line entry for each IRIS HIPPI board that services the IP network stack. The first entry (if1addr and if1name) defines the primary interface; in most situations, the primary interface should be Ethernet or FDDI. Each hostname or IP address in this file must also be in the /etc/hosts file; the hostnames or IP addresses in the two files must be identical.

Systems that function as a client or server for bootp should configure Ethernet as their primary network interfaces. Any system that functions as a client or server for NFS, NIS, or other client/server program should configure the network interface over which the client/server functions occur as the primary network interface.

The example below illustrates a system with three IRIS HIPPI interfaces, an FDDI interface (that is, ipg0), and a primary Ethernet interface. If this system's hostname is goofy, these IRIS HIPPI entries interwork with the examples of /etc/hosts file entries shown above.

if1name=et0
if1addr=$HOSTNAME
if2name=ipg0
if2addr=fddii-$HOSTNAME
if3name=hip0
if3addr=hippi-$HOSTNAME
if4name=hip1
if4addr=hippi2-$HOSTNAME
if5name=hip2
if5addr=hippi3-$HOSTNAME


Note: The use of the $HOSTNAME variable assumes that the system's hostname has been defined in the /etc/sys_id file.


Enabling IP Networking

To automatically enable the IP network stack each time the system is started, edit the /etc/config/network file so that it contains the single word ON or on. If the file is missing, add the file.


Note: Enabling IP networking does not result in IP over HIPPI; it only enables the IP software to operate over whatever drivers are available to service it. (For example, the IP protocols may use Ethernet or FDDI drivers.)


Building a New Driver Into the Operating System

For the IRIS HIPPI subsystem to be functional, the IRIX operating system (kernel) that is currently on the system must be built to include the IRIS HIPPI driver. When changes are made to the hippi.sm or if_hip files, or when new IRIS HIPPI software is installed, it is also necessary to rebuild the operating system to include the changes. This section describes how to rebuild the operating system. All the configuration steps listed in the “Overview of Configuration Steps” must be performed before the operating system is rebuilt.

When the IRIX operating system is rebuilt, it uses values from the /usr/var/sysgen/system/hippi.sm file and the /usr/var/sysgen/master.d/if_hip file to build various configurable parameters into the driver.

The three sets of instructions below each build a new operating system and start it running. It is not important which set of instructions are used.

Instruction Set 1

% su
Password: thepassword
# /etc/init.d/autoconfig
Automatically reconfigure the operating system (y or n)? y
<log on>
% su
Password: thepassword
# /etc/reboot
.....<various messages are displayed on console>...
configuring hip0 as hostname 
configuring hip1 as hostname 

Instruction Set 2

% su
Password: thepassword
# /etc/shutdown

When the system shuts down, restart it. When this question is displayed, answer with yes or y.

Automatically reconfigure the operating system (y or n)? y
<log on>
% su
Password: thepassword
# /etc/shutdown

Instruction Set 3

Use the same sequence as Set 2; however, instead of the /etc/shutdown command, use any of the following:

  • /etc/init 0

  • /etc/halt

  • /etc/reboot

How HIPPI Boards Are Assigned to Interfaces

This section describes the manner in which IRIX assigns an IP network interface (for example, hip0 and IP address 223.9.1.2) to a particular HIPPI board.

With each restart (for example, after a reboot, shutdown, halt, or init command, or a power off), the startup routine probes for hardware installed in the mezzanine I/O adapter slots, and makes a list of all the boards located. The slots are probed in the following order:

  • main IO4 board: I/O adapter slot 5, then 6

  • second IO4 board (if present): I/O adapter slot 2 (only when the FMezz board is long), slot 5, slot 3 (only when the FMezz board is long), slot 6

  • third IO4 board (if present): I/O adapter slot 2 (only when the FMezz board is long), slot 5, slot 3 (only when the FMezz board is long), slot 6

  • fourth IO4 board (if present): I/O adapter slot 2 (only when the FMezz board is long), slot 5, slot 3 (only when the FMezz board is long), slot 6

The list and order of IRIS HIPPI boards that were located by this process can be displayed with the /sbin/hinv command, as shown below. The text hippi# indicates the order: hippi0 is the first board located and hippi1 is the second. In this example, the startup routine located two IRIS HIPPI boards attached to FMezz boards on two different IO4 boards.

% /sbin/hinv
...
HIPPI adapter: hippi0, slot 5 adap 6, firmware version ####
HIPPI adapter: hippi1, slot 3 adap 5, firmware version ####

As the startup routine begins to initialize HIPPI network interfaces, it does the following:

  • Searches the netif.options file for IP over HIPPI interface names (for example, hip0, hip1, hip2, hip3). It orders the interfaces by the number in the associated string if#name. For example, the entries if2name=hip0, if3name=hip1 and if4name=hip2 would be ordered hip0 (first), hip1 (second), and hip2 (third).

  • For each HIPPI network interface name, the startup routine tries to assign a HIPPI board. The first HIPPI interface is assigned to the first board found; the second interface is assigned to the second board; and so on, until the routine runs out of interfaces or boards. For example, using the ordering described above, board hippi0 is assigned interface hip0 and board hippi1 is assigned hip1.


Note: If an installed board is not located due to a loose connection or malfunction, or if hardware is installed or removed, the assignment of HIPPI network interfaces to boards may change. For example, hip0 (from the example above) could be assigned, at a later reboot of the machine, to the second HIPPI board (hippi1) in the system instead of the first, if the first board became loose or dysfunctional.