Fibre Channel QLA Driver for Solaris SPARC and x86 Platforms This software license applies only to QLogic customers. QLogic Corporation. All rights reserved. Table of Contents 1. OS Support 2. Software Requirements 2.1 QLogic HBA Device Driver Package 2.2 Optional QLogic Software Packages 3. Supported Features 4. Installing the Driver 4.1 Installing the Driver for the First Time on the System 4.2 Updating the Driver on the System 4.3 QLogic FC-IP Driver 5. Removing the Driver 5.1 Package Pre-Removal 5.2 Files to be Backed Up 5.3 Package Removal 6. Driver Parameters 6.1 Driver Parameter Descriptions 6.2 Persistent Name Binding 6.3 Target Masking 6.4 LUN Masking 6.5 Failover 6.6 FC-SP Security (QLA2300 Only) 7. Frequently Asked Questions 8. Contacting Support 1. OS Support The QLogic Solaris driver packages contain drivers that support the following versions of Solaris: ● ● SPARC platform package (qla2300.sparc_pkg.Z): ❍ Solaris 2.6 ❍ Solaris 7 ❍ Solaris 8 ❍ Solaris 9 ❍ Solaris 10 x86 platform package (qla2300.i386_pkg.Z): ❍ Solaris 9 ❍ Solaris 10 2. Software Requirements Sun SPARC Platform: Sun Solaris operating system (2.6, 7, 8, 9, or 10). The appropriate OS version SPARC Solaris cluster patch set, available from Sun at: http://www.sunsolve.sun.com For Solaris 8 and 9, the Solaris SAN Foundation patches, available from Sun at: http://www.sun.com/storage/san (follow the download link, and download the file: SAN_x.y_install_it.tar.Z where x.y is the Sun version number, i.e., "4.4". The latest QLogic HBA driver package (i.e., qla2300.sparc_pkg.Z), available from http://qlogic.com/support/ drivers_software.asp. Sun x86 Platform: ● Sun Solaris 9 or 10 operating system for x86 platform. ● The appropriate x86 Solaris cluster patch set, available from Sun at: http://www.sunsolve.sun.com ● The latest QLogic HBA driver package (i.e., qla2300.i386_pkg.Z), available from http://qlogic.com/support/ drivers_software.asp. 2.1 QLogic HBA Device Driver Package It is highly recommended that you obtain the latest QLogic HBA Device driver package from the QLogic web site (www.QLogic.com) before proceeding with the installation of the driver. It is also recommended that you obtain the latest readme.txt (this file) for any updates. The qla2300.<platform>_pkg.Z (where <platform> is either sparc or i386. NOTE: This package supports all 2-Gb and 4-Gb HBAs stated in the release notes. The QLogic QLA200 adapter is only supported on the Sun Solaris x86 platform. Each driver package is a compressed package format file which contains: ● The QLA2300 Solaris driver and utilities. ● The Solaris SNIA 1.0 libraries. You may choose to install just the driver, or libraries, or both depending on your requirements. Note that the SNIA libraries, depending on the platform, may have more that one version you may install. 2.2 Optional QLogic Software Packages QLogic provides optional software which assists the user in configuring and monitoring their local HBA's and HBA's within the SAN: QLogic SANsurfer HBA Manager, or the QLogic SANsurfer Command Line Interface utility. For further information, please see the QLogic website (www.QLogic.com). 3. Supported Features The QLA2300 driver supports the following features: ● Extended LUN support ● Point-To-Point F port, FL port, N port and Arbitrated Loop configurations ● Fibre Channel Tape support ● Enhanced Loop ID support (2048 Loop IDs) in F port configuration (ISP6312 only supports 8 loop ID's) ● Full-duplex operation in loop configuration ● Persistent Name Binding support ● SNIA 1.0 support ● ● 2 Gigabit per second data rate (QLA2310, QLA2340, QLA2342, QLA2344, QCP2340, QCP2342, QSB2340, and QSB2342) 4 Gigabit per second data rate (QLA2440, QLA2460, QLA2462, QLE2440, QLE2460, QLE2462, QEM2462, QLE2464, and QLE220) ● Failover support ● Beacon support (except QLA200 and QLA210) ● ECHO support ● Dynamic Update of driver parameters ● Driver update without reboot ● HBA bus architectures: PCI, PCI-E, cPCI, and Sbus ● Chipsets: ISP2300, ISP2310, ISP2312, ISP2322, ISP2422, ISP2432 (SPARC & x86) ● Chipsets: SP212, SP222, SP232 (x86 only) NOTE: Documentation for the driver utilities, which includes the command line dynamic update utility, qlreconfig, is included with the driver and is installed into the directory specified during installation (the default directory is: / opt/QLogic_Corporation/drvutil). 4. Installing the Driver This section is divided into several subsections, please review each of them and decide which section applies to your installation. 4.1 Installing the Driver for the First Time on the System Theses installation procedures assume that you have downloaded the correct driver package into an installation directory on the machine where the driver is to be installed, and that you are logged on and have superuser privileges. 4.1.1 New SPARC Platform Installation NOTE: When installing the HBA and driver for the first time you should install the driver FIRST, and then install the HBA into the system. This allows Solaris to correctly bind the qla2300 driver to the QLogic HBA. Failure to do so will require an additional system reboot after the driver is loaded. If there are QLogic HBAs already installed in the system, an additional reboot will be required if the system has the native Solaris driver (qlc) already installed on the system. The native Solaris driver (qlc) detects and attaches to the QLogic HBA. A reboot allows the QLogic driver to attach to the adapter first, thus preventing the native Solaris driver from attaching to the adapter. 1. Uncompress the driver package: uncompress qla2300.sparc_pkg.Z 2. Package add the driver: pkgadd -d ./qla2300.sparc_pkg 3. Select the QLA2300 driver package (option 1). 4. Answer the pkgadd queries. You may relocate the driver utilities and conf file backup directories when prompted to suit your system requirements. 5. Depending on the system configuration and HBA installation, one of the following will apply: ❍ If the QLogic HBA(s) have not yet been installed, the driver will load but fail to attach. Shutdown the system and install the QLogic HBA(s). When the system is rebooted, the driver attaches to the QLogic HBA's, and the storage is then available for use. Check the /var/adm/messages file for more detailed device and adapter information. ❍ ❍ If the QLogic HBA's were installed before the driver installation AND the native Solaris driver has already attached to the QLogic HBA's, then a reboot of the system is required to allow the QLogic driver to attach to the HBA. If the QLogic HBA's were installed before the driver installation and the native Solaris driver is NOT installed on the system, then the driver will dynamically attach and a reboot of the machine is not required for the driver attachment. 6. Please refer to the driver configuration parameters for any further customization (i.e. persistent binding), or install the QLogic SANblade Manager, or the QLogic SANblade command line utility for configuration assistance and HBA monitoring functionality. 4.1.2 New x86 Platform Installation 1. Uncompress the driver package: uncompress qla2300.i386_pkg.Z 2. Package add the driver: pkgadd -d ./qla2300.i386_pkg 3. Select the QLA2300 driver package (option 1). 4. Answer the pkgadd queries. You may relocate the driver utilities and conf file backup directories from their default locations when prompted to better suit your system requirements. NOTE: If you created a x86 boot device using the QLA2300 driver, a conflicting message is displayed for several driver files -- this is expected and it is safe to accept the conflicting files to be reloaded. 5. As the QLogic HBA has not yet been installed, the driver will load but fail to attach. Shutdown the system and install the QLogic HBA(s). When the system is rebooted, the driver attaches to the QLogic HBA's, and the storage is available for use. You may check the /var/adm/messages file for more detailed device and adapter information. 6. Please refer to the driver configuration parameters for any further customization (i.e., persistent binding), or install the QLogic SANsurfer HBA Manager, or the QLogic SANsurfer command line utility for HBA configuration and HBA monitoring functionality. 4.2 Updating the Driver on the System This section assumes that you currently have a previous QLA2300 driver package installed your machine. In order to install the new driver package you must first uninstall the currently installed QLA2300 driver package -- see section 5. After completing section 5, you can return here to continue with the installation of the new driver. The updating driver sections assume that you have downloaded the correct driver package into an installation directory on the machine where the driver is to be installed, and that you are logged on and have superuser privileges. 4.2.1 Updating the SPARC Platform Driver 1. Uninstall the current QLA2300 driver (see section 5). 2. Uncompress the driver package: uncompress qla2300.sparc_pkg.Z 3. Package add the driver: pkgadd -d ./qla2300.sparc_pkg 4. Select the QLA2300 driver package (option 1). 5. Answer the pkgadd queries. You may relocate the driver utilities and conf file backup directories from their default locations when prompted to better suit your system requirements. 6. The driver is then dynamically attached and loaded. The devices are available for use. You may check the / var/adm/messages file for more detailed device and adapter information. NOTE: As discussed in section 5, if you uninstalled the 4.14 driver (or earlier), you must reboot your system to install the 4.15 driver (or later). After installing the 4.15 driver (or later), the install script dynamically unloads and reloads the drivers. 7. Please refer to the driver configuration parameters for any further customization (i.e., persistent binding), or install the QLogic SANsurfer HBA Manager, or the QLogic SANsurfer command line utility for HBA configuration and adapter monitoring functionality. 4.2.2 Updating the x86 Platform Driver 1. Uninstall the current QLA2300 driver (see section 5). 2. Uncompress the driver package: uncompress qla2300.i386_pkg.Z 3. Package add the driver: pkgadd -d ./qla2300.i386_pkg 4. Select the QLA2300 driver package (option 1). 5. Answer the pkgadd queries. You may relocate the driver utilities and conf file backup directories from their default locations when prompted to better suit your system requirements. 6. The driver is then dynamically attached and loaded. The devices are available for use. You may check the / var/adm/messages file for more detailed device and adapter information. NOTE: As discussed in section 5, if you uninstalled the 4.14 driver (or earlier), you must reboot your system to install the 4.15 driver (or later). After installing the 4.15 driver (or later), the install script dynamically unloads and reloads the drivers. 7. Please refer to the driver configuration parameters for any further customization (i.e. persistent binding), or install the QLogic SANsurfer HBA Manager, or the QLogic SANsurfer command line utility for HBA configuration and HBA monitoring functionality. 4.3 QLogic FC-IP Driver 4.3.1 Installing the QLogic FC-IP Driver 1. Login to your Solaris system as root. 2. Locate the first instance number of the qla2300 driver used for FC-IP installed. If the instance number is other than zero, then FC-IP driver configuration file needs to be changed from the default. Change the instance number to match that of the qla2300 driver. File: q3ip.conf name="q3ip" parent="pseudo" instance=0; 3. Type the following command to add the driver to Solaris: add_drv q3ip This completes the FC-IP Driver Installation. 4.3.2 Configuring the QLogic FC-IP Driver Decide which instance number of the QLogic HBA adapter driver you want to run IP on. This is used to plumb the IP. In the following examples adapter HBA instance 0 is used. 1. Type the following commands to plumb the IP: devfsadm ifconfig q3ip0 plumb NOTE: You can create a hostname file in the /etc directory for the QLogic FC-IP driver. It contains the hostname given to the host that the QLogic FC-IP is connected to. This name must have a corresponding IP address in the /etc/hosts file that is a different subnet than other ethernet adapters on the system. For example: hostname.q3ip0 2. Restart the system -- reboot with the -r option. 5. Removing the Driver The driver's "Dynamic Unload" (or "no-reboot driver") functionality was introduced with the 4.15 driver, which allows the driver to be unloaded from the system without requiring a system reboot. Previous driver versions (i.e., 4.14 and earlier), still require a reboot in order to remove them from the system memory. 5.1 Package Pre-Removal Before installing the new driver, you must remove previous versions of the driver. To remove the QLogic HBA driver package, run the pkgrm command as follows: 1. Login as root. 2. Determine driver package name. The qla2300 pre 4.12 driver package names are as follows: OS Pkg name Solaris 2.6 QLA2300-1 Solaris 7 QLA2300-2 Solaris 8-9 QLA2300-3 The qla2300 4.12 and later driver package names are as follows: OS Pkg name All Solaris versions QLA2300 NOTE: An old driver package is considered "conflicting" with the new driver package (e.g., the old driver package QLA2300-3 "conflicts" with new driver package name QLA2300 -- the old package must be removed prior to installing the new package). 3. To confirm the installation of the current driver, use the pkginfo command: pkginfo <package name> For example: pkginfo QLA2300-3 OR pkginfo QLA2300 4. Stop any utilities which are using the QLogic QLA2300 driver, (i.e., any 3rd party applications which use the QLogic SNIA APIs). 5. Unmount any partitions which use the QLogic QLA2300 driver. 6. Stop any IO going to raw partitions. 5.2 Files to be Backed Up Starting with Solaris driver version 4.07 a backup of the qla2300.conf file is automatically generated during the package removal. If you are uninstalling an earlier version of the driver it is highly recommended that you manually make a backup copy of the /kernel/drv/qla2300.conf file for future reference. For driver versions between 4.07 and 4.14 the backup file is created in the /kernel/drv directory. For driver versions 4.15 and later, the backup file is created in the /opt/QLogic_Corporation/confbkup directory, (unless the default directory is overridden during the driver installation). The format of the backup file is: qla2x00.conf_yymmddhhmmss where: yy = year (00 - 99) mm = month (01 - 12) dd = day (01 - 31) hh = hour (00 - 23) mm = minutes (00 - 59) ss = seconds (00 - 59) and the yymmddhhmmss is the timestamp denoting when the backup qla2300.conf file was created. NOTE: A backup qla2300.conf is NOT created if the current qla2300.conf file is the same as the previous backup qla2300.conf file. If a qla2300.conf backup file does not exist, then a backup file is created. 5.3 Package Removal Once the correct package name has been determined, the driver package can then be removed from the system. 1. Type the following command: pkgrm <driver package name> 2. Answer the pkgrm queries. One of the following applies to the package removal: ❍ When uninstalling the 4.15 driver (or later), the driver binary is dynamically removed from system memory. You must stop all IO, unmount partitions, stop all applications that use the QLogic SNIA api's, and if FC-IP is configured, (i.e., plumbed), it must be unconfigured. NOTE: If the driver uninstall process is unable to remove the driver for some reason (i.e., partitions still mounted, SNIA API's being used, IO is active, or IP is active, etc.), a warning is displayed saying that the dynamic unload cannot be completed. You have 15 seconds to type a control-c (^c) to terminate the pkgrm (which is safe to do). You can then correct the problem and re-run the pkgrm. If you do NOT type control-c (^c) within the 15 seconds, the pkgrm continues the uninstall process; however, it prevents you from loading a new driver dynamically if the old driver binary is still running. To workaround this, you must reboot your system. ❍ When removing a 4.14 (or earlier) driver, one of the following applies: ■ If you are planning to install (or update) the QLogic driver, you may postpone the reboot which will remove the 4.14 (or earlier) driver binary, until after the installation of the updated QLogic driver (as instructed during the installation section). You may now return to the installation section of this readme. ■ If you are not planning to install (or update) the QLogic driver, then in order to remove the driver binary a reboot is required. To properly shutdown processes and reboot the system, see the appropriate Solaris documentation. If you are sure it is safe to reboot the system, type: reboot -- -r After the reboot, if there is NOT a QLogic driver present to attach to the QLogic HBA, the native Solaris driver (qlc) (if installed on the system), will attach and bind to the HBA. Note that this possible configuration is not supported by either QLogic or Sun. 6. Driver Parameters It is possible to specify parameter values on a per instance basis for the QLogic driver. The configuration file containing these parameters is /kernel/drv/qla2300.conf file. At system initialization time, the driver outputs to the console its ID banner which includes its version number and instance number. The drivers ID banner is also preserved in the file /var/adm/messages. The parameter values are applied on a per instance basis using the driver instance number specified in the "hba" field of the parameter. The general format of a driver parameter entry is: hba<instance number>-<parameter name>=<parameter value>; There should be no leading spaces for the actual parameter entries. To specify the link-down-timeout value for driver instance 3, the parameter entry would be the following without the leading spaces: hba3-link-down-timeout=60; On systems containing multiple adapter instances, the value of any specific parameter for instance 0 is applied to an instance if no entry has been made for that instance. In other words, the parameter value specified for instance 0 is also used as the default value. Persistent name binding entries are exempt from this rule. NOTE: In a system configured with a single HBA, the instance number may not be 0 (zero), as the instance number depends on the other configured bus adapter(s) and the kernel's bus scanning procedure. 6.1 Driver Parameter Descriptions Name: Type: Default: Usage: Maximum frame length Integer, bytes; Range: 512, 1024, 2048 2048 (QLA23xx) This field specifies the frame payload length (in bytes) used by the ISP23xx firmware. NOTE: The minimum value is 512 bytes; if this variable is not equal to 512, 1024 or 2048, the ISP23xx defaults to values specified above. Entry: hba0-max-frame-length=2048; Name: Execution throttle Type: Usage: Integer, commands; Range: 1 - 65535; Default: 16 This field specifies the maximum number of commands sent per LUN by the ISP23xx firmware. NOTE: Exceeding device capabilities causes unneeded command retries that impact performance. Entry: hba0-execution-throttle=16; Name: Type: Usage: Login retry count Integer, count; Range: 0 - 255; Default: 1 This field specifies the maximum number of retry attempts for the firmware when the login into a device fails. NOTE: Large values may cause long delays during initialization and device reconfiguration. Entry: hba0-login-retry-count=8; Name: Enable adapter hard loop ID Type: Usage: Integer, flag; Range: 0 (disable), 1 (enable); Default: 0 This field allows the setting of adapters hard loop ID on the fibre channel bus. NOTE: May be necessary on some bus configurations where devices fail to appear. Entry: hba0-enable-adapter-hard-loop-ID=0; Name: Adapter hard loop ID Type: Usage: Integer, ID; Range: 0-125; Default: 0 This field specifies the adapters hard loop ID to be used on the Fibre Channel bus. NOTE: This field takes effect only when adapter hard loop ID is enabled Entry: hba0-adapter-hard-loop-ID=0; Name: Enable LIP reset Type: Usage: Integer, flag; Range: 0 (disable), 1 (enable); Default: 0 This field enables the adapter to issue a LIP reset during Fibre Channel reset. Entry: hba0-enable-LIP-reset=0; Name: Type: Usage: Enable LIP full login Integer, flag; Range: 0 (disable), 1 (enable); Default: 1 This field enables the adapter to issue a LIP full login reset during Fibre Channel reset. Entry: hba0-enable-LIP-full-login=1 Name: Enable LIP target reset Type: Usage: Integer, flag; Range: 0 (disable), 1 (enable); Default: 0 This field enables the adapter to issue a LIP target reset during Fibre Channel reset. Entry: hba0-enable-target-reset=0; Name: Reset delay Type: Usage: Integer, seconds; Range: 0 - 255; Default: 5 This field specifies the delay after a reset before sending commands to the devices on the Fibre Channel bus. Entry: hba0-reset-delay=5; Name: Port down retry count Type: Usage: Integer, count; Range: 0 - 255; Default: 8 This field specifies the amount of command retries to be done when devices are not responding on the Fibre Channel bus. NOTE: Large values may cause long delays for failover software to detect a failing device. Entry: hba0-port-down-retry-count=8; Name: Port down retry delay Type: Integer, count; Range 0 - 255; Default: 0 Usage: Amount of time to delay between port down retries. NOTE: Large values may cause long delays for failover software to detect a failing device. May also cause upper layer driver or applications to timeout the IO's. Entry: hba0-port-down-retry-delay=0; Name: Maximum LUNs per Target Type: Usage: Integer, count; Range: 1 - 256; Default: 8 Maximum number of LUNs to scan for, if the target does not support SCSI Report LUNs command. NOTE: Large values may cause long delays during boot. Entry: hba0-maximum-luns-per-target=8; Name: Connection options Type: Usage: Integer, mode; Range: 0 - 2; Default: 2 0 = loop only 1 = point-to-point only 2 = loop preferred, else point-to-point This field specifies the connection mode the driver firmware uses. When connecting the HBA to a switch port with auto- mode sensing capability (a G port), it is recommended that this parameter be set to either 0 or 1, not 2. Setting this parameter to 2 when connected to a G port on a switch may result in device lost or system hang. Entry: hba0-connection-options=2; Name: FC tape support Type: Usage: Integer, flag; Range: 0 (disable), 1 (enable); Default: 1 This field enables/disables the Fibre Channel tape support. Entry: hba0-fc-tape=1; Name: Fibre Channel Data Rate Option (QLA2300 only) Integer, mode; Range: 0-2; Default: 2 0 = 1 gigabit/second Type: 1 = 2 gigabit/second 2 = Auto-negotiate 3 = 4 gigabit/second Usage: This field specifies the data rate which the driver uses. Entry: hba0-fc-data-rate=2; Name: PCI latency timer Type: Usage: Integer, bytes; Range: 0x8 - 0xF8; Default: 0x40 This register specifies the minimum number of PCI clocks that the adapter has on the PCI bus when bursting data. In multiples of 8 bytes. Entry: hba0-pci-latency-timer=0x40; Name: PCI-X Maximum Memory Read Byte Count Type: Usage: Integer, bytes; Range: 0, 128, 256, 512, 1024, 2048, 4096 Default: 0 system default This register specifies the maximum byte count that the adapter can specify in the attribute phase of a initiated burst memory read commands. Entry: hba0-pci-x-max-memory-read-byte-count=0; Name: Link down error Type: Usage: Integer, flag; Range: 0 (disable), 1 (enable); Default: 1 This field disables the driver error reporting during link down conditions. Entry: hba0-link-down-error=1; Name: Link down timeout Type: Integer, seconds; Range: 0 - 240; Default: 60 Usage: This field specifies the amount of time the driver waits for a Fibre Channel loop to come up before reporting the failure. NOTE: Small values may report transient errors that should be ignored. Entry: hba0-link-down-timeout=60; Name: Dynamic device support Type: Usage: Entry: Integer, flags; Range: 0, 1, 2, 4, 8 Default: 0 -- Dynamic device support enabled. This field enables and/or disables the driver from dynamically adding and dynamically configuring new devices. hba0-disable-dynamic-device-support=0; NOTE: The field is composed of the following values: 0 --> Dynamic device support enabled for all types of devices. 1 --> Dynamic device support disabled for all types of devices. 2 --> Dynamic device support disabled for disk devices only. 4 --> Dynamic device support disabled for tape devices only. 8 --> Dynamic device support disabled for ses devices only. User also needs to remove the driver's entry in the corresponding sd. conf, st.conf, and ses.conf file (i.e., parent="qla2x00"...), and populate the file (i.e., sd.conf) with the appropriate entries -- the machine needs to be rebooted to take effect. If disabling specific device types, the values 2, 4, and 8 can be combined (e.g., to disable tape and ses, the value would be 12 (8+4)). Note that if any of the device specific flag values are used, it is invalid to combine them with the "disable all types" value. Name: Persistent binding only option Integer, mode; Range: 0-1; Default: 0 Type: 0 = Reports to OS discovery of binded and non-binded devices 1 = Reports to OS discovery of persistent binded devices only NOTE: This entry is ignored when qla-mpconfig parameter is found. Entry: hba0-persistent-binding-configuration=0; Name: Persistent binding by port ID Type: Integer, flag; Range: 0 (disable), 1 (enable); Default: 0 Usage: This field enables binding by port ID instead of node/port names. When enabled, a target can be replaced with a new device, and the new device appears to the OS as the same target id. NOTE: Use this option with caution. Enabling this feature prevents the driver from rebinding devices which may have been swapped, removed, etc., on the fabric switch. If this option is enabled and devices on the switch are inadvertently switched (i.e., cables are swapped), the incorrect data is sent to the devices. Entry: hba0-persistent-binding-by-port-ID=0; Name: Fast Error Reporting Type: Usage: Integer, flag; Range: 0 (disable), 1 (enable); Default: 0 This field enables fast driver error reporting to Solaris. Entry: hba0-fast-error-reporting=0; Name: Enable SBUS initialization for Xilink download Type: Usage: Integer, flag; Range: 0 (disable), 1 (enable); Default: 0 This field enables SBUS board initialization by the driver for use with the Xilink emulator. Entry: hba0-xilinx-mode=0; Name: Enable extended logging Type: Usage: Integer, flag; Range: 0 (disable), 1 (enable); Default: 0 This field enables logging of driver detected events occurring either in the driver or fibre channel bus. Events are logged in Solaris /var/adm/ messages file. Entry: hba0-extended-logging=0; Name: Queue full retry count Type: Usage: Integer, count. Range: 0 - 255. Default: 16 This field specified the number of times to retry a SCSI queue full error. Entry: hba0-queue-full-retry-count=16; Name: Queue Full Retry Delay Type: Usage: Integer, seconds. Range: 0 - 255 seconds. Default: 2 This field specifies the amount of time to delay after a SCSI queue full error before starting any new I/O commands. Entry: hba0-queue-full-retry-delay=2; Name: Enable DH-CHAP security protocols (QLA2300 only) Type: Usage: Integer, flag; Range: 0 (disable), 1 (enable); Default: 0 This field enables Fibre Channel security protocol DH-CHAP. Entry: hba0-security-protocols=0; Name: Fabric-Device Management Interface (FDMI) support. Type: Usage: Integer, flag; Range: 0 (disable), 1 (enable); Default: 0 This field enables/disables the FDMI support. Entry: hba0-FDMI-support=0; Name: SCSI targets Type: Usage: Integer, comma separated list; Range: 0-255 To limit the target scan and speed up the boot process this list specifies the targets that are contained in the SANsurfer HBA Manager. Entry: SCSI-targets="88,2,92,72"; Name: Last multi-path ID Type: Integer, count. Range: 0 - 255 Usage: To limit the target multi-path ID scan and speed up the boot process this specifies the last multi-path ID contained in the SANsurfer HBA manager configuration. Entry: last-mp-id=255; Name: VPD support Type: Usage: Integer, flag; Range: 0 (disable), 1 (enable); Default: 0 Uses the device VPD data in failover configurations to help identify devices. Entry: hba0-VPD-support=0; Name: Enable Flash Load Type: Usage: Integer, flag; Range: 0 (disable), 1 (enable); Default: 0 This field enables the loading of RISC firmware from the flash chip instead of from the driver. Only ISP24xx Entry: hba0-enable-flash-load=0; Name: Advance Interrupt Framework support Type: Usage: Entry: Integer, flag; Range: 0 (disable), 1 (enable); Default: 0 Enables the use of AIF for OS levels that have support. hba0-AIF-support=0; 6.1.1 Q2IP/Q3IP Parameter Description Maximum number of receive buffers. Type: Integer, count; Range: 64 - 65535; Default: 256 Usage: This field specifies the number of receive buffers available for incoming IP packets. Entry: hba0-ip-buffers=256; Maximum Transfer Unit (MTU)/ receive buffer size. Type: Integer, bytes; Range: 1500 - 65256; Default: 1500 Usage: This field specifies the maximum size of IP packets. Entry: hba0-ip-mtu-size=1500; Enable extended logging. Type: Integer, flag; Range: 0 (disable), 1 (enable); Default: 0 Usage: This field enables logging of driver detected events occurring either in the driver or fibre channel bus. Events are logged in Solaris /var/adm/ messages file. Entry: hba0-extended-logging=0; Hard-coded NVRAM values The following firmware option values are hard-coded in the driver: ● Enabled Node Name option ● Enabled Full Login after LIP ● Disabled Stop PortQ on Full Status ● Enabled PDBC notify ● Enabled Target Inquiry Data for disabled LUNs ● Enabled ADISC ● Disabled Disable Initiator Mode ● Disabled Enable Target Mode ● Enabled Fairness in loop arbitration 6.2 Persistent Name Binding Persistent Name Binding support is available for target devices. This support is provided for users to associate a specified device World Wide Port Name (WWPN) to a specified SCSI target ID. For driver version earlier than 4.15, it is implemented through both the /kernel/drv/sd.conf and /kernel/drv/ qla2300.conf files. The matching between the target device port, the SCSI target ID, and the adapter driver instance happens inside /kernel/drv/qla2300.conf. For driver versions 4.15 and later, the driver dynamically discovers targets, so no entries in the sd.conf or st.conf files are required. Note that if you disable dynamic discovery of devices (via the hbaX-disable-dynamic-devicesupport parameter), you must populate the sd.conf and st.conf files as noted above for pre-4.15 drivers. The Persistent Name Binding support for target devices associates a SCSI target ID to a specified device World Wide Port Name or port ID. If port ID binding is specified it takes precedent over World Wide Port Name binding. In other words, this entry changes the target ID of the specified device to the number specified in the entry. To enable persistent binding by WWPN, lines of the following format should be added in the qla2300.conf file for each target device: hba<#>-SCSI-target-id-<#>-fibre-channel-port-name="<device WWPN>"; For example, to associate the following WWPN with target ID 2 on adapter instance 1, the entry is: hba1-SCSI-target-id-2-fibre-channel-port-name="2100002037004ac9"; To enable persistent binding by port ID, lines of the following format should be added in the qla2300.conf file: hba<#>-SCSI-target-id-<#>-port-id="<device port ID>"; For example, to associate the following port ID with target ID 2 on adapter instance 1, the entry is: hba1-SCSI-target-id-2-port-id="10031e"; The current effective mapping between device WWPN or port ID and SCSI ID of the target devices detected by a particular adapter instance can be found in the /var/adm/messages file. The information looks similar to this: qla2300: qla2300: qla2300: qla2300: qla2300: hba1-SCSI-target-id-2-fibre-channel-node-name="2000002037004ac9"; hba1-SCSI-target-id-2-fibre-channel-port-name="2000002037004ac9"; hba1-SCSI-target-id-2-port- id="10031e"; hba1-SCSI-target-id-3-fibre-channel-node-name="2000002037004ac7"; hba1-SCSI-target-id-3-fibre-channel-port-name="2000002037004ac7"; qla2300: hba1-SCSI-target-id-3-port-id="10031f"; IMPORTANT ● Unlike other parameter entries in the qla2300.conf file, values indicated in persistent name binding entries for instance 0 do not apply to other instances when there are no entries for the other instances. ● Persistent Name Binding entries are optional entries in the qla2300.conf file. These entries do not dictate which devices are scanned by the driver, and do not perform any device masking. Absence of this entry for any given device name or SCSI ID does not direct the driver to perform any type of device masking. ● For target devices, if no Persistent Name Binding entries are specified, the default SCSI target IDs assigned are the loop ID of the devices. Please refer to the FAQ section for which default SCSI target IDs are assigned to fabric devices. ● Note that the types of persistent binding entries listed above are not used when persistent binding information has been entered via the QLogic GUI or CLI utilities. To verify this in the qla2300.conf, search for the string qla-mp-config-required. If this string exists, then the previous persistent binding entries will be ignored. CAUTION: Use extreme caution when the devices are shared among multiple adapters. It is strongly recommended that all target devices be bound with all adapter instances so that the devices show up in a pre-determinable way. A shared device which is bound on one adapter instance but unbound on another adapter instance may show up at a SCSI target ID which is unexpected by the user for the unbound adapter instance, which may lead to possible data corruption on the device if the user unknowingly writes to the unexpected device. 6.3 Target Masking The Persistent Binding Configuration option is used to allow only the targets that are persistent bound to be seen by the OS. See section 6.1 on how to persistent bind a target and persistent bind all targets that are to be seen by the OS. Then enable the Persistent Binding Configuration option to mask off the targets that are not to be seen. This parameter takes effect upon reboot or on a dynamic update (see utility readme file in the /opt/QLogic_Corporation/ drvutil directory). 6.4 LUN Masking The driver reports in the /var/adm/messages file the LUNs that are enabled. The text in the messages look similar to this: Jul 23 12:01:38 qla2300: qla2300-hba0-SCSI-target-id-0-lun-0-enable; To mask a LUN just copy the following portion of the text to the configuration file: hba0-SCSI-target-id-0-lun-0-enable; Then change the enable word to disable, resulting in the following string: hba0-SCSI-target-id-0-lun-0-disable; This parameter takes effect upon reboot or on a dynamic update (see utility readme file in the /opt/ QLogic_Corporation/drvutil directory). 6.5 Failover Use the QLogic SANsurfer Manager application to enable and control the driver's ability to perform failover. Persistent binding are enforced only when the driver has not been configured by QLogic SANsurfer Manager application; otherwise, the configuration that QLogic SANsurfer Manager sets is used. 6.6 FC-SP Security You can use the hbaN-security-protocols parameter to enable the driver's ability to perform DH-CHAP security protocols on a per adapter. The security protocol used is DH-CHAP (Diffie Hellman - Challenge Handshake Authentication Protocol). DH-CHAP with a NULL DH exchange is currently support for bidirectional authentication. Hashing algorithm used is MD5, which has been ported from "RSA Data Security, Inc. MD5 Message-Digest Algorithm". User must set the security keys for the HBA and device (ex. switch). Security keys must be 128 bits long, which is the size of the hashing algorithm used. User must also associate the device node name with the security key for the driver. This is done through the driver configuration file as a string containing the node name and security key for a device. At minimum there would be at least two keys one for the adapter and one for the device. If there were a switch between the device and the adapter there would have to be a key for it also. Boot is not currently supported with security paths. Security Key string = "WorldWideNodeName,SecurityKey"; Security Key Parameter Example: Device-0-security-key="200000c0dd00c6be,88776655443322118877665544332211"; Device-1-security-key="200000e08b05a164,11223344556677881122334455667788"; 7. Frequently Asked Questions Q: I installed an additional QLogic adapter in a system with a preexisting QLogic adapter, which is controlled by the SUN qlc (leadville) driver. Why is the second adapter failing to attach? A: If you installed the additional adapter before installing the QLogic driver, initially both adapters are controlled by Sun's qlc driver. When the QLogic driver is installed it indicates that driver has installed but failed to attach. This is OK, since the second QLogic adapter is being temporarily controlled by Sun's qlc driver. The QLogic adapter attaches itself to the second adapter after another reboot is done with the reconfigure (-r) option. Q: How are SCSI target ID's assigned for fabric devices? A: For devices on switches, if the adapter connection is F_Port then the target ID's start at zero, but if the connection is FL_Port then the target ID's start at 129 and go up to 254. Q: Why do some of the devices connected to a switch fail to show up and how can I fix this? A: Some switches have known firmware problems that prevent the driver from detecting devices on the first try. To work around this problem, you should add Persistent Name Binding entries for the devices connected to the switch. This forces the driver to perform retries when the specified devices are not found during the fabric configuration process. Q: The Persistent Name Binding entries are not working. Why does the driver see devices that I did not specify? A: Persistent Name Binding entries do not direct the driver to perform any type of device masking. For detailed information on how to perform device masking, please contact QLogic technical support directly. Q: The Persistent Name Binding entries are not working. Why does the driver still assign other IDs to the devices I specified? A: For Persistent Name Binding entries to work properly, there must not be any conflict between the device names specified in the entries and the boot device name stored in the NVRAM. If there are still problems after the conflicts are resolved, please contact QLogic technical support. 8. Contacting Support Please feel free to contact your QLogic approved reseller or QLogic Technical Support at any phase of integration for assistance. QLogic Technical Support can be reached by the following methods: Web: http://support.qlogic.com North America Contact Information Email: email@example.com Phone: (952) 932-4040 Support contact information for other regions of the world is available at the QLogic website: http://support.qlogic.com Go to Top © Copyright 2006. All rights reserved worldwide. QLogic, the QLogic logo, and the Powered by QLogic logo are registered trademarks of QLogic Corporation. All other brand and product names are trademarks or registered trademarks of their respective owners.