This chapter provides instructions for and information about configuring the IRIS HIPPI software and firmware. The section “Overview of Configuration Steps” lists the configuration tasks in the order they should be performed; subsequent sections describe each task in detail. Table 2-1, at the end of this chapter, summarizes all the configurable items and indicates where the instructions for each item are located.
Before configuring the IRIS HIPPI software, decide whether or not you want the IRIS HIPPI driver to include support for the IP network stacks. The configuration steps are slightly different depending on this decision. Then, follow the appropriate set of instructions: “IRIS HIPPI Without IP Support” or “IRIS HIPPI With IP Support”
The following steps configure the HIPPI driver for use as a non-IP network connection. Complete details for each step are provided in separate sections of this chapter.
Use inst or the Toolchest's System > Software Manager 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 online document IRIX Admin: Software Installation and Licensing, which came with the system.
Optional:
Edit the /var/sysgen/master.d/hippi or /var/sysgen/master.d/hps file to change the default configurations for hardware, as explained in “/var/sysgen/master.d/hippi File” or in “/var/sysgen/master.d/hps File”.
Optional:
Edit the /var/sysgen/system/hippi.sm or hippi_s.sm file to exclude the IP interface and dynamic address resolution, as in “/var/sysgen/system/*.sm Files”.
| Note: If you exclude IP or HARP support from the driver, and later you want to use IP or HARP, you will need to redo this configuration step and reboot the system. If you leave the IP or HARP module included, you need to only do the additional IP or HARP configuration steps to add IP or HARP functionality later. Be aware that when the driver is built to support IP or HARP, but IP or HARP is not configured, some error messages will be displayed each time the system is started. |
The system is ready to have its IRIS HIPPI hardware installed. When it restarts (after the hardware installation), it asks you to authorize rebuilding 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 or Reconfigured Driver Into the Operating System”. |
The following steps describe how to configure the IRIS HIPPI driver with support for IP networking. Complete details for each step are provided in separate sections of this chapter.
Use inst or the Toolchest's System > Software Manager to install the IRIS HIPPI software from the CD-ROM, as explained in the IRIS HIPPI Release Notes. The inst command is documented in IRIX Admin: Software Installation and Licensing, which came with the system.
Enable IP (that is, write ON into the /etc/config/network file), as explained in “Enable IP Networking”.
Configure address resolution as described in “/usr/etc/ifhip.conf File”. Users that need to use static addressing must edit the /usr/etc/hippi.imap file, as explained in “/usr/etc/hippi.imap File”.
Configure switch addresses to map to the logical addresses in the /usr/etc/ifhip.conf file, as described in “Mapping ifhip.conf Addresses with Switch Ports”.
Edit the IP configuration files (/etc/hosts and /etc/config/netif.options) to include IP network connection names and addresses, as explained in “/etc/config/netif.options File” and “/etc/hosts File”.
Optional:
Edit the /var/sysgen/master.d/if_hip file to configure IRIS HIPPI driver parameters, as explained in “/var/sysgen/master.d/if_hip File”.
Optional:
Edit the /var/sysgen/master.d/harp file to configure IRIX HIPPI HARP parameters, as explained in “/var/sysgen/master.d/harp File”.
Optional:
Edit the /var/sysgen/master.d/hippi or /var/sysgen/master.d/hps file to change the default configurations for hardware, as explained in “/var/sysgen/master.d/hippi File” or in “/var/sysgen/master.d/hps File”.
The system is ready to have its IRIS HIPPI hardware installed. When it restarts (after the hardware installation), it asks you to authorize rebuilding 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 or Reconfigured Driver Into the Operating System”.The section “How HIPPI Ports Are Assigned to IP Interfaces” describes how the physical HIPPI boards (hippi0, hippi1, hippi2, and hippi3) are matched to IP–over–HIPPI network interfaces (hip0, hip1, hip2, and hip3). |
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 |
The files /var/sysgen/system/hippi.sm or /var/sysgen/system/hippi_s.sm tell the system's software which IRIS HIPPI modules to include when building the IRIS HIPPI driver into the operating system. The default file builds IP networking, dynamic address resolution (HARP), and (when available) BYPASS functionality into the driver.
If you exclude IP, HARP, or BYPASS functionality, then decide later that you want to include the functionality, you must undo your edit(s), then rebuild (with autoconfig) the operating system.
Edit one of the following files, depending on whether the board uses copper or fiber:
hippi.sm when a copper-based IRIS HIPPI board for Challenge or Onyx is installed
hippi_s.sm when a fiber-based HIPPI-Serial board for Origin or Onyx2 is installed
| Caution: Do not delete any entries in this file. The operating system (kernel) cannot link properly unless each entry exists, either as an INCLUDE or EXCLUDE. |
The following line in either the hippi.sm or hippi_s.sm file can be edited to build an IRIS HIPPI driver that does not support IP networking:
| Note: When the driver is built with IP support, but the IP protocol stack is not enabled, some error messages will display each time the system is started; HIPPI still functions. |
The following line in the hippi_s.sm file can be edited to build an IRIS HIPPI driver that does not support HARP functionality:
The /var/sysgen/master.d/hippi file configures the IRIS parallel HIPPI hardware. Hardware configuration is optional, because all parameters have defaults. Settings in this file affect all IRIS HIPPI boards installed in the system. The IRIS HIPPI board has few configurable parameters. Specific items vary from product to product, and are explained in the file.
The /var/sysgen/master.d/if_hip file configures the IRIS HIPPI IP driver. This configuration is optional, because all parameters have defaults. Settings in this file affect all IRIS HIPPI boards installed in the system. There are few configurable parameters (for example, the size for the maximum transmission unit and onboard IP checksumming). Specific items vary from release to release, so they are explained fully within the file.
The /var/sysgen/master.d/harp8 file configures IRIS HIPPI HARP parameters. Configuration is optional, because all parameters have defaults. The settings in this file affect all IRIS HIPPI boards installed in the system. There are few configurable parameters. The specific items vary from release to release, so they are explained fully within the file.
The /var/sysgen/master.d/hippibp file configures the IRIS HIPPI bypass driver. This configuration is optional, because all parameters have defaults. Settings in this file affect all IRIS HIPPI boards installed in the system. There are few configurable parameters. The specific items vary from release to release, so they are explained fully within the file.
The /var/sysgen/master.d/hps file configures the IRIS HIPPI serial driver. Configuration is optional, because all parameters have defaults. The settings in this file affect all HIPPI boards installed in the system. Configurable parameters are explained within the file.
This section describes how network addresses are dynamically mapped (resolved) to physical addresses in a HIPPI fabric. This section assumes that the reader is familiar with the standard Internet ARP (RFC 826, Ethernet Address Resolution Protocol) and Inverse ARP (RFC 1293, Inverse Address Resolution Protocol).
In the /usr/etc/ifhip.conf file, you specify the HARP server and the local host address. This file is read by ifhipconfig(1m) during system startup. It is run (called by /etc/init.d/hippi) before the network start-up script (/etc/init.d/network) so that these assignments are ready before ifconfig(1m) brings up the logical interfaces.
Using HARP is optional. The default ifhip.conf configuration file does not specify a server, and HARP is not used. In this case all HIPPI hardware addresses must be specified in the /usr/etc/hippi.imap file.
Select hosts within each logical IP subnet (LIS) to perform the HARP server function. The following guidelines should be followed in selecting this system:
The system and its HIPPI fabric connection must be available (operational) whenever any member of the LIS wants to access another IP host over HIPPI.
The system should not be used for lengthy or infinite data transfers over its HIPPI fabric connection. The link to the HARP server must become available frequently so that client requests can get through in a timely manner. In most cases, the amount of traffic on the system's HIPPI link does not affect performance; large numbers of small-sized datagrams or data movements do not present a problem, whereas even one lengthy transfer could negatively affect many members of the LIS.
The HARP server has only a small overhead, little more than the clients, so this is not a major consideration in choosing the server.
Here is an example of a ifhip.conf file; words in bold must be typed as they appear:
hip0 arpserver 0x07000FE0 FF:FF:FF:FF:FF:FF myhipaddr 0x07000006 |
In this example, 0x07000FE0 is the recommended address of the HARP server. The actual address of the host must be entered in the ifhip.conf file. In the example above, the host is a client connected to the switch at a port configured as logical address 6.
Here is an example of a HARP server's ifhip.conf file with the default HARP server address as well as the ULA hard-coded into ifhip.conf:
hip0 arpserver 0x07000FE0 08:00:63:41:42:43 myhipaddr 0x07000FE0 |
In this case the ULA of the server was previously determined with the hipcntl getmac command. In any case the ULA is an optional field.
There must be one line (entry) for each IRIS HIPPI port that supports IP. The HIPPI-LE module obtains this information during startup from the ifhip.conf file; it obtains this information only during startup and stores it. Subsequent changes to and reloading of the ifhip.conf file (for example, ifhipconfig new_entry) do not affect the HIPPI–LE module's stored values. To change these values, you must edit the file and restart networking with /usr/etc/network stop and /usr/etc/network start, configure the interface(s) down and up again with /usr/etc/ifconfig, or reboot the system.
Once you have decided on your server (and client) addresses, be sure to configure the switch ports appropriately. For example, if you are using the recommended HARP server address of 0x07000FE0, and the host is connected to switch port 00, you should configure the switch port 00 to map to logical address 0x07000FE0. If you are not using the recommended HARP server address of 0x07000FE0, configure the HARP server switch port to the correct default logical address which you have specified in /usr/etc/ifhip.conf.
You can configure more than one host to be the HARP server in an LIS to give added reliability. If one HARP server goes down or becomes unavailable for any reason, the clients will automatically use another HARP server. When the server again becomes available, the clients will recognize its return and use it as necessary.[6]
To specify multiple HARP servers, add an additional line of logical address and ULA for the backup HARP server. For example, here is the contents of a ifhip.conf file for an LIS with backup HARP server:
hip0 arpserver 0x07000FE0 08:00:69:04:62:a7 arpserver 0x07000001 08:00:69:04:79:86
hip0 myhipaddr 0x07000007
|
Figure 2-1 illustrates a part of an LIS in which two HARP servers, a client, and switch are configured.
You can configure a hippi.imap file if you have an endpoint within the HIPPI fabric that does not dynamically configure an address at system startup. These might be systems with older software, for example. The entries can be placed into the hippi.imap file that the HARP software automatically loads into the kernel-resident database when it starts, or the entry can be added directly to the database by using the hipmap command.
The /usr/etc/hippi.imap file maps network connection names (or “inet” addresses) to HIPPI I-fields and universal LAN MAC (ULA) addresses.[7] It contains an entry for each remote (destination) endpoint. For endpoints on which the HIPPI hardware that does not store a hardware address[8] , a 6-byte IEEE address (called a ULA or MAC address) can also be mapped. The file can contain up to 1301 lines (mappings).
| Note: The I-field can be set to any value supported by each system's implementation; both endpoints can even use the same value. IRIS HIPPI supports all values, including 0x00000000. |
To load this file into memory or change the loaded table's contents, follow instructions in “Change the Static ARP Table That Maps IP Addresses to I-fields”.
Each time the HIPPI-LE module is about to program the HIPPI subsystem to issue a connection request, it obtains values for the I-field and ULA of its destination from the HARP lookup table. The lookup table maps IP addresses or network connection names to HIPPI addresses. This table is generated at startup time when clients register (see “HARP Registration Phase”) and, optionally, from the hippi.imap file. The HARP table can be modified in real time with the hipmap command. HIPPI clients usually obtain mappings dynamically by means of the HARP protocol (see “HARP Operation Phase”).
Each I-field is a 32-bit value. Each line (entry) in the file can have either of the formats illustrated below:
name 0xXXXXXXXX
name is the network connection name 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 address format for port1 |
x.x.x.x 0xXXXXXXXX
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 address format |
Each ULA is a 48-bit value. To assign a ULA, the line (entry) in the file must have the format illustrated below:
name 0xXXXXXXXX XX:XX:XX:XX:XX:XX
name is the network connection name or the IP address as described in the two examples above, 0xXXXXXXXX is the 32-bit I-field in hexadecimal notation, and XX:XX:XX:XX:XX:XX is the 48-bit ULA (MAC address) in hexadecimal notation. The following lines are examples:
hippi-goofy 0x01000001 05:A6:70:9B:FF:8E 223.9.1.241 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, if logical addressing is used, the source's address.
Figure 2-2 is a template that can be used for developing each 32-bit I-field for a logical addressed environment; Figure 2-3 is for developing source addressed I-fields. The templates show the values that Silicon Graphics recommends for use by the IRIS HIPPI-LE upper layer protocol.
To configure the IP networking interfaces, edit the files /etc/config/network, /etc/config/netif.options, /etc/hosts, and /etc/config/ifconfig-#.options files, as described in this section.
The network file starts the IP software. Each time it starts, it uses information from the hosts and netif.options files to configure the IP interfaces.
| Note: For additional details about enabling the IP networking software and configuring network interfaces, refer to the IRIX Admin: Networking and Mail, which is available online through IRIS InSight or in hardcopy. |
To have the IP network software automatically start operating 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 or use the command chkconfig network on.
| Note: Enabling IP networking does not result in IP over HIPPI; it only enables the IP software within the operating system to operate over whatever drivers are available to service it. The other IP configuration files associate the IP stack with specific drivers. |
The /etc/config/netif.options file maps local network connection names (or IP addresses) to IRIS HIPPI network interfaces (for example, hip0, hip1, and so on.). There must be a two-line entry for each IRIS HIPPI port 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 name or IP address in this file must also be in the /etc/hosts file; the name or IP address in the netif.options must match exactly the name or IP address in the hosts file.
Systems that function as a client or server for bootp should configure Ethernet as their primary network interface. HIPPI cannot be the primary interface. 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 network interfaces, an FDDI interface (that is, xpi0), and a primary Ethernet interface. If this system's hostname is goofy, these IRIS HIPPI entries work with the examples of /etc/hosts file entries in the next section.
if1name=et0 if1addr=$HOSTNAME if2name=xpi0 if2addr=fddi-$HOSTNAME if3name=hip0 if3addr=hippi1-$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. |
The /etc/hosts file maps names to network-layer IP addresses. There must be one entry for each IRIS HIPPI port that is to support IP traffic. The entries must be similar to the examples below, which illustrate four IRIS HIPPI interfaces for a system whose hostname is goofy:
223.9.1.2 hippi1-goofy.toons.com hippi1-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 |
| Note: A local /etc/hosts file must exist and must contain the local IRIS HIPPI network interfaces, even when the site uses NIS or DNS. |
Each /etc/config/ifconfig-#.options file configures one IP interface. The # in the filename matches the numeral in the if#name entry in the netif.options file. Each instance of this file is optional; however, to obtain optimal performance on an IRIS HIPPI interface, the size of the windows (that is, the amount of outstanding and in_transit data) for sending and receiving TCP/IP datagrams) must match the window size used on remote systems. If possible, the IRIS HIPPI default value (524288 bytes) should be configured on all the HIPPI interfaces within the HIPPI fabric. If this default cannot be used throughout the fabric, you must create a file named ifconfig-#.options for the IRIS HIPPI interface and set the TCP windows value to the value selected for the HIPPI fabric.
To configure the TCP window size (in bytes), create a file named ifconfig-#.options for the IRIS HIPPI interface and place these lines in the file:
sspace nnnnnn rspace nnnnnn |
nnnnnn is any value, divisible by 1024, between 1024 and 524288.
| Note: For large-sized TCP windows to work, the tcp_winscale and tcp_tsecho variables in the /var/sysgen/master.d/bsd file must each be set to 1 (their defaults). |
If the memory used by TCP/IP applications is an issue, you can obtain nearly full performance by using 262144 (256 * 1024), instead of the default 524288 (512 * 1024).
For a complete description of the IP parameters that can be configured in this file, see the ifconfig(1M) man page.
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.
For the IRIS HIPPI subsystem to be functional, the IRIX operating system (kernel) that is currently on the system must be rebuilt to include the IRIS HIPPI driver. When changes are made to any of the following files, or when new IRIS HIPPI software is installed, it is necessary to rebuild the operating system:
/var/sysgen/ioconfig/hippi
/var/sysgen/master.d/harp
/var/sysgen/master.d/hippi
/var/sysgen/master.d/hippibp
/var/sysgen/master.d/hps
/var/sysgen/master.d/if_hip
/var/sysgen/system/hippi.sm
/var/sysgen/system/hippi_s.sm
The three sets of instructions below each build a new operating system and start it running. It is not important which set of instructions is 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 name configuring hip1 as name |
Instruction Set 2
% su Password: thepassword # /etc/shutdown |
When the system shuts down, restart it. When the question about automatically reconfiguring the operating system 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:
/sbin/init 0
/etc/halt
/etc/reboot
Table 2-1 lists all IRIS HIPPI's configurable items, and summarizes the following for each item: whether configuration for the item is optional or required, what the default setting is, and where the configuration instructions for each item reside.
Table 2-1. Alphabetic Summary of HIPPI Configuration Items
Item | Configuration Required/Optional | Default Setting | Location of Instructions |
|---|---|---|---|
Bypass module (build it into or exclude it from IRIS HIPPI driver; module is not built into driver by default) | O | Not included | |
Driver | O | See MTU and TCP/UDP checksum | |
HARP module (build it into or exclude it from IRIS HIPPI driver; by default it is included) | O | Included | |
Hardware | O | See file | |
Address resolution mechanism: |
|
| |
I-field for a HIPPI port: |
|
| |
ULA for a HIPPI port: |
|
| |
IP address to IP network connection name mappings | R for IP traffic | None exists | |
IP module (build it into or exclude it from IRIS HIPPI driver; by default it is included) | O | Included | |
IP network interface | R for IP traffic | None exists | |
IP networking: enable/disable | R for IP traffic | Disabled | |
IP–over–HIPPI: list of configuration steps | R for IP traffic | None exists | |
Maximum transmission unit (MTU) size | O | 65280 | |
TCP + UDP checksums in hardware | O | Enabled | |
TCP window size | O | 524288 bytes |
[6] Multiple HARP servers in conjunction with Silicon Graphics optional IRIS FailSafe product allow you to construct a high-availability network.
[7] Network connection names are sometimes, inaccurately, called hostnames. For example, a system with a hostname of goofy might have network connection names of hippi1-goofy, hippi2-goofy, and gateway-goofy.
[8] The IRIS HIPPI boards for the CHALLENGE and Onyx platforms do not store ULA (MAC) addresses.