Solaris SAN Configuration and Multipathing Guide

Chapter 7 Configuring IPFC SAN Devices

Configuring Internet Protocol over Fibre Channel (IPFC) on the host system describes host recognition of IPFC devices and implementation of IP over FC in a SAN. The IPFC driver is based on RFC 2625 and allows IP traffic to run over FC.

This chapter contains the following topics:

IPFC Considerations

The following table shows the supported features available for IPFC.

Table 7–1 IPFC (NFS/NAS and SNDR)




Yes, with fabric zones only 

Zone type 

Fabric zone with the HBA configured as an F-port point-to-point connection 

Maximum number of device ports per zone 


The following restrictions apply:

Determining Fibre Channel Adapter Port Instances

This section explains how to configure the desired host system for IPFC. It includes the procedures to determine the port instance and to plumb an IPFC instance.

ProcedureTo Determine Port Instances

  1. Determine the HBA PCI adapter slot and the I/O board PCI slot.

    You need this information to perform the calculation in Determining Fibre Channel Adapter Port Instances.

    For example, assume you have an array with an HBA card located in PCI adapter slot 5, and the PCI adapter is in slot 1 of the I/O board.

  2. Determine the instance number.

    1. Search for the fp driver binding name in the /etc/path_to_inst file.

      Note –

      Determine the correct entry by finding the hardware path described in your server hardware manual or Sun System Handbook. The Sun System Handbook is available at

    2. Narrow the search by using the I/O board and slot information from Step 1.

      Note –

      The following method of deriving the Solaris 10 OS device path of an HBA from its physical location in server might not work for all Sun server hardware.

      1. Multiply the PCI adapter slot number by the number of adapter ports.

        For example, if the HBA has two ports, multiply by 2. Using the array with an HBA in the PCI adapter slot 5, multiply 5 by 2 to get 10.

      2. Add the PCI adapter I/O board slot number to the number derived in Step i.

        Using an HBA in PCI adapter slot 5 and PCI slot 1 of the I/O board, add 1 to 10 for a sum of 11.

      3. Convert the number derived in Step ii to hexadecimal.

        The number 11 converts to “b” in hexadecimal.

      4. Search for the fp entry with pci@ hex where hex is the number you derived in Step iii.

        The following table shows the elements of the device path for a PCI single FC network adapter device that has the following path:

        "/pci@b,2000/SUNW,qlc@2/fp@0,0" 7 "fp"

        Entry Item  

        Entry Value  

        Physical Name 


        Instance Number 


        Driver Binding Name 


    3. Manually plumb each FP instance.

      Use the ifconfig interface-number plumb command. In this example, the value of interface-number is fcip7.

      # ifconfig fcip7 plumb

      When the command is successful, a message appears on both the console and in the messages file. For example:

      Sep 13 15:52:30 bytownite ip: ip: joining multicasts failed (7) on fcip0 - 
      will use link layer brocasts for multicast

ProcedureTo Plumb an IPFC Instance

Each FP instance on the system has an entry in /dev/fc. If HBAs have been removed, some stale links might exist. Use this procedure to load and plumb IPFC.

  1. For each entry in /dev/fc, issue a luxadm -e dump_map command to view all the devices that are visible through that HBA port:

    # luxadm -e dump_map /dev/fc/fp0
    Pos  Port_ID Hard_Addr Port WWN         Node WWN         Type
    0    610100  0         210000e08b049f53 200000e08b049f53 0x1f (Unknown Type)
    1    620d02  0         210000e08b02c32a 200000e08b02c32a 0x1f (Unknown Type)
    2    620f00  0         210000e08b03eb4b 200000e08b03eb4b 0x1f (Unknown Type)
    3    620e00  0         210100e08b220713 200100e08b220713 0x1f (Unknown Type,Host Bus Adapter)
    # luxadm -e dump_map /dev/fc/fp1
     No FC devices found. - /dev/fc/fp1
  2. Based on the list of devices, determine which destination HBAs are visible to the remote host with which you want to establish IPFC communications.

    In the example for this procedure, the destination HBAs have port IDs 610100 and 620d02. The originating HBA’s port ID is 620e00.

  3. List the physical path of the originating HBA port from which you can see the destination HBA port, where originating-hba-link is a variable for the link determined in Step 2.

    # ls -l /dev/fc/fp originating-hba-link

    In the following example, 0 is the number for the originating-hba-link:

    # ls -l /dev/fc/fp 0
    lrwxrwxrwx   1 root     root          51 Sep  4 08:23 /dev/fc/fp0 ->
  4. Search the physical path identified in Step 3.

    You must remove the leading ../../devices from the path name output. For example

    # grep pci@8,600000/SUNW,qlc@1/fp@0,0 /etc/path_to_inst 
    "/pci@8,600000/SUNW,qlc@1/fp@0,0" 0 "fp"
  5. Determine the fp instance for the originating HBA port from the output of the command in Step 4.

    The instance number precedes “fp” in the output. In the following example output, the instance number is 0.

    "/pci@8,600000/SUNW,qlc@1/fp@0,0" 0 "fp"
  6. Use the instance number from Step 5 to load IPFC and plumb the IPFC interface.

    In this example, the instance is 0.

    # ifconfig fcip 0 plumb

Invoking and Configuring IPFC

Immediately upon installation, start IPFC manually with the ifconfig command. You can configure the host so that on subsequent reboot, the IPFC network interface starts automatically. This section describes the procedures to start a network interface manually and to configure the host for automatic plumbing upon reboot.

ProcedureTo Start a Network Interface Manually

Use this procedure when you want to plumb IPFC with specific netmask values and get the IPFC interface up and running.

  1. Use the ifconfig command with the appropriate interface.

    Ask your network administrator for an appropriate IP address and netmask information. For example, to enable an IPFC interface associated with fp instance 0 and an IP address of, type:

    # touch /etc/notrouter
    # ifconfig fcip0 inet netmask up

    The ifconfig command is described in more detail in the ifconfig(1M) man page.

  2. Use the command ifconfig -a to verify that the network is functioning.

    The output of ifconfig -a should look like this:

    lo0: flags=1000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
    inet netmask ff000000
    fcip0: flags=1001843<UP,BROADCAST,RUNNING,MULTICAST,MULTI_BCAST,IPv4> mtu 1500 index 2
    inet netmask ffffff00 broadcast ether 0:e0:8b:1:3c:f7
    hme0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 3
    inet netmask ffffff00 broadcast
    ether 8:0:20:fc:e9:49

ProcedureTo Configure the Host for Automatic Plumbing Upon Reboot

Each network interface must have an /etc/hostname.interface file defining the name of the IP address associated with it. For example, IPFC network interface fcip0 has a file named /etc/hostname.fcip0.

  1. Manually create a /etc/hostname.interface file that contains a single line that identifies the host name or interface IP address.

  2. Make any additional entries to the /etc/inet/hosts file.

    The Solaris 10 OS installation program creates the /etc/inet/hosts file with minimum entries. You must manually make additional entries with a text editor. See the hosts(4) man page for additional information.

    The /etc/inet/hosts file contains the hosts database. This file contains the host names and the primary network interface IP addresses, as well as the IP addresses of other network interfaces attached to the system and of any other network interfaces that the machine must know about.

    The following example shows an etc/inet/host file.      localhost     loghost   sun1     #This is the local host name fcip0 #Interface to network
  3. Edit the /etc/nsswitch.conf file so that all uncommented entries have the word files before any other name service.

    The /etc/nsswitch.conf specifies which name service to use for a particular machine. The following code shows an example of an /etc/nsswitch.conf file.

    hosts: files nis