IBM FAStT Host Adapter Driver and IBM FAStT FC-2 Host Bus Adapter Driver version 6.50Z for NetWare Last Update: 04/07/2004 =================================================== Contents -------- 1. OS Support 2. Supported Features 3. Release History 4. Creating the Driver Diskette 5. Host Adapter configuration 5.1 Update IBM FAStT Host Adapter BIOS 5.2 Configure the NOVRAM settings for the IBM FAStT Host Adapter 6. Installing the Driver 6.1. Initial OS installation with the QLogic Controller as Boot 6.2. Initial OS installation with the QLogic Controller as Add-On 6.3. Adding the QLogic Controller to the Existing OS 6.3.1. Adding the Driver for the First Time 6.3.2. Adding Additional QLogic QLA2x00 Controller 6.4. Updating the Existing QLogic Driver 7. NetWare Failover 8. Install FAStT_MSJ 9. Removing the Driver 10. Driver Optional Parameters 10.1. System Parameters 11. Known Issues and Limitations 12. Additional Notes 12.1. PCI Hot Plug 12.2. 256 LUN Support 12.3. Server Memory Recommendations 12.4 Debug Driver Information 13. Diskette Content 14. WEB Sites and Support Phone Number 15. Trademarks and Notices 16. Disclaimer ====================================================================== 1. OS Support ------------- NetWare 6 Support Pack 3 Netware 6.5 Support Pack 1.1 ====================================================================== 2. Supported Features --------------------- * NetWare Multi-Processor Compliance * NetWare PCI Hot Plug Compliance * Driver 256 LUN Support * Driver Adapter/Lun Failover * Driver DMI and QMS Support ====================================================================== 3. Release History ------------------ QL2x00.HAM version 6.50z -- 08/14/03 * 2300 RISC 3.02.13 TP updated. * 2200 RISC 2.02.06 TP updated. * 2100 RISC 1.19.24 TP unchanged. * Added FC-4 registration for nodename (RNN_ID). * Added FC-4 registration for symbolic nodename (RSNN_NN). * Added test to do FC-4 registrations only on link up. * Added test for last path gone before returning AEN hacb. * Added read to flush cache if spurious interrupts detected. * Added removal of call to post hacb for invalid ms iosb. * Added mask out of adapter nodename when copied from portname. * Added pci subsystem vendor id known vendors list extension. * Added spinlock for adapter restart. QL2x00.HAM version 6.50y -- 05/23/03 * 2300 RISC 3.02.11 TP updated. * 2200 RISC 2.02.05 TP updated. * 2100 RISC 1.19.24 TP unchanged. * Added debug prints when removing a dcb. * Added lun scan in progress mutex for each lun. * Added lun scan allocate/deallocate spinlock for each lun. * Added correction to ioctls for getting nvram data. QL2x00.HAM version 6.50x 05/01/03 * 2300 RISC 3.02.09 TP unchanged. * 2200 RISC 2.02.04 TP unchanged. * 2100 RISC 1.19.24 TP unchanged. * This version is required for Nakoma (NW6.5) beta 3 and up. * Changed HAM_Return_Port_Info() to return the device port id. QL2x00.HAM version 6.50w 04/23/03 * 2300 RISC 3.02.09 TP updated. * 2200 RISC 2.02.04 TP updated. * 2100 RISC 1.19.24 TP unchanged. * This version is required for Nakoma (NW6.5) beta 3 and up. * Added reading memory preloaded config file (see line above). * Added routine to return adapter port info. * Added turn on of interrupt safe execute flag. * Added default rscn processing by gnnft. * Added adapter reset on risc paused in isr. * Added registering adapter FC-4 feature as initiator. * Added 8014 port update global/specific port processing. * Added reading of link down timeout period from nvram. * Added fix for reading null portname from config file. Version 6.50v 02/21/03 * 2300 RISC 3.01.18 TP unchanged. * 2200 RISC 2.02.03 TP unchanged. * 2100 RISC 1.19.24 TP unchanged. * On iosb completion 29h, query name server and login present ports. Version 6.50u 01/24/03 * 2300 RISC 3.01.18 TP unchanged. * 2200 RISC 2.02.03 TP unchanged. * 2100 RISC 1.19.24 TP unchanged. * Removed ZIO polling and support functions. Version 6.50t 12/17/02 * 2300 RISC 3.01.18 TP updated. * 2200 RISC 2.02.03 TP unchanged. * 2100 RISC 1.19.24 TP unchanged. * Build using Metrowerks nlm compiler and linker. * Use OS supplied function to map virtual addresses to physical. * Fixed addition of pci function number to adapter nodename. * Simplified port relogin/timeout on non-internal incomplete. * Added flag to loopback ioctl to allow point-point F-Port echo. * Added driver load avoidance on isp hung detection. * Added register of adapter as SCSI FC-4 type. * Added 23xx ZIO interrupt delay load line option. * Added 23xx ZIO interrupt support. Version 6.50s 08/16/02 * 2300 RISC 3.01.13 TP updated. * 2200 RISC 2.02.03 TP unchanged. * 2100 RISC 1.19.24 TP updated. * Added CT passthru ioctl. * Added maxluns load option. * Added portdown timeout option. * Added failback delay option. * Added linking of xdc file to makefile. * Added combined driver build option to makefile. * Added ioctl buffer length check when reading nvram. * Added new load options to ddi files. Version 6.50r 07/11/02 * 2300 RISC 3.01.12 TP updated. * 2200 RISC 2.02.03 TP unchanged. * 2100 RISC 1.19.23 TP unchanged. * Added extra debug print for mailbox command retries. * Added retry to timed out mailbox commands. * Added serial number prefix to vendor ioctl. * Added device wwnn to identify device function. * Added device revision to identify device function. * Added device entire product to identify device function. * Added code to return ioctl lun bit info even if no port. * Added load option to force scsi inquiry during lun scan. * Added ioctl for fibre echo/loopback test. * Added login for ports quietly logged out by firmware. Version 6.50q 05/22/02 * 2300 RISC 3.01.08 TP updated. * 2200 RISC 2.02.03 TP updated. * 2100 RISC 1.19.23 TP updated. * Removed scsi start unit command during lun scan. * Added additional test for dirty abort on active hacb. * Added modified qualification of rscn device marking. * Added preferred portname copy during non-configured state. * Added string conversion to ioctl idenitfy device. Version 6.50p 05/09/02 * 2300 RISC 3.01.07 TP updated. * 2200 RISC 2.02.02 TP unchanged. * 2100 RISC 1.19.22 TP unchanged. * Removed non-simple scsi queue tagging. * Removed exclusion of login of strange looking ports. * Added stricter qualification of rscn device marking. * Added queueing of fabric rscn on loop/link up. * Added retry denial on scsi 2.04/xx sense condition (xx not 01). * Relocated active array spinlock in interrupt service routine. * Corrected vendor ioctl loop timeout status and port login status. * Added active array spin lock/unlock during hacb abort. * Added call to return device aen hacbs on device structure deallocate. * Added call to return device disappear aen hacbs on loop/port timeout. * Added adapter instance aen hacb queue. * Added exclusion of start unit on inactive lun. * Added exclusion of login of strange looking ports. * Added fabric port login retry on already used loop id. * Added swapped port login handling for fabric port timing out. * Added extra test for invalid device handle in ExecuteScsiHacb(). * Fixed ioctl for known port summary when device port is timed out. ====================================================================== 4. Creating the Driver Diskette ------------------------------- 1. Download the IBM FAStT Host Adapter Device Driver: - Refer to the IBM website at http://www.pc.ibm.com and locate the IBM FAStT Host Adapter Device Driver. Click "Link to driver." 2. If prompted with "What would you like to do with this file?” choose "Save this program to disk". 3. Specify a temporary location on your hard drive and download the IBM FAStT Host Adapter device driver. 4. Insert a blank diskette in the diskette drive. Run the self-extracting file you just downloaded specifying A:\ for "Unzip To Folder:” ======================================================================= 5. Host Adapter configuration ------------------------------ 5.1 Update IBM FAStT Host Adapter BIOS -------------------------------------- The adapter BIOS can be updated by booting the server to the BIOS update diskette, available from the IBM Support website, then run the following commands: flasutil /f /l This will update the IBM FAStT Host Adapters or IBM FAStT FC-2 Host Bus Adapters in this server. Note: The FAStT adapter BIOS update program will only update like adapters. If you have a server that contains IBM FAStT Host Adapters and IBM FAStT FC-2 Host Bus Adapters you may only update one adapter type at a time. ====================================================================== 5.2 Configure the NOVRAM settings for the IBM FAStT Host Adapter ---------------------------------------------------------------- All the settings should maintain the IBM defaults except the following. - Advanced Adapter Settings LUNs per target - 32 1. As the host boots, press CTRL-Q when prompted Press for Fast!Util. 2. After the Fast!Util program loads, the display will depend on whether there are multiple IBM FAStT Adapters installed: If there are multiple IBM FAStT Adapters, a list of addresses occupied by those Host Adapters will appear. Using the arrow keys, select the desired adapter and press ENTER. The Fast!Util Options menu will then appear. For further information refer to the IBM FAStT Host Adapter publication. ====================================================================== 6. Installing the Driver ------------------------ This section is divided into the following four sections. · Initial operating system installation with the IBM FAStT Host Adapter as Boot · Initial operating system installation with the IBM FAStT Host Adapter as Add-on · Adding the IBM FAStT Host Adapter to the existing operating system · Updating the existing IBM FAStT Host Adapter Device Driver ====================================================================== 6.1. Initial OS installation with the IBM FAStT Host Adapter as Boot -------------------------------------------------------------------- Perform the following steps to initially install NetWare on a Fibre Channel (FC) disk drive attached to the IBM FAStT Host Adapter. 1. Enable the BIOS on the IBM FAStT Host adapter, and select the FC as the boot device. 2. If you haven't already done so, install DOS on the boot disk. 3. Follow the standard NetWare instructions to begin the installation. 4. When prompted to "Choose Storage Drivers - Disk Drivers", press to install an unlisted driver. 5. Insert the IBM FAStT Host Adapter driver diskette and press to specify the path to the QLogic HAM driver: A:\NETWARE 6. Press to select the QLogic HAM driver. 7. Follow the standard NetWare installation procedure and complete the installation. ====================================================================== 6.2. Initial OS installation with the IBM FAStT Host Adapter as Add-On ---------------------------------------------------------------------- Perform the following steps to install Netware and the IBM FAStT Host Adapter driver on the device not attached to the IBM FAStT Host Adapter. Same as section 6.1, except that at step 1, the IBM FAStT Host Adapter BIOS should be disabled. ====================================================================== 6.3. Adding the IBM FAStT Host Adapter to the Existing OS --------------------------------------------------------- Perform the following steps to add the driver to the existing NetWare system. 6.3.1. Adding the Driver for the First Time ------------------------------------------- For NetWare 6.0 1. From the NetWare server prompt, load the appropriate NetWare program: LOAD NWCONFIG 2. Select "Driver options" from the main menu. 3. Select "Configure disk and storage device drivers". 4. Select "Select an additional driver". 5. Press to install an unlisted driver. 6. Insert the IBM FAStT Host Adapter driver diskette and press to specify the path to the HAM driver: A:\NETWARE 7. Press to select the QLogic HAM driver and select "Yes" to copy the driver from the diskette to the server directory. 8. At the server console type: Load edit c:\nwserver\startup.ncf The load statement for the IBM FAStT Host Adapter should read as follows if Novell NetWare's multi-pathing and LSIMPE.CDM is used for multi-path failover: LOAD QL2200.HAM SLOT=n /LUNS /ALLPATHS /PORTNAMES /XRETRY=400 or LOAD QL2300.HAM SLOT=n /LUNS /ALLPATHS /PORTNAMES /XRETRY=400 For NetWare 6.5: 1. From the NetWare server prompt, load the appropriate NetWare program: LOAD HDETECT 2. Select and press . 3. Select and press . 4. Select the storage adapters and press . 5. Select and press . 6. Press to install an unlisted driver. 7. Insert the IBM FAStT Host Adapter driver diskette and press to specify the path to the QLogic HAM driver: A:\NETWARE 8. Press to select the QLogic HAM driver. 9. Select and press to load the new driver. 10. Press to exit the installation. ====================================================================== 6.3.2. Adding Additional IBM FAStT Host Adapter ----------------------------------------------- To support multiple adapters, add one LOAD command per adapter to your STARTUP.NCF file (LOAD QL2x00.HAM SLOT=n). The "SLOT=n" command line parameter is provided for specifying which adapter to configure for each load instance. If the driver is loaded manually from the server prompt and there are multiple adapters, the user will be required to pick a slot number from a list. The IBM FAStT Host Adapter driver reads the onboard NVRAM and supports all of the customized configuration parameters for the adapter and the attached Fibre Channel devices. Use the key combination during boot to access the adapter's configuration options. ====================================================================== 6.4. Updating the Existing IBM FAStT Host Adapter Driver -------------------------------------------------------- Perform the following steps if the driver is already installed and you want to install an updated version of the driver. For NetWare 6.0: 1. From the NetWare server prompt, load the appropriate NetWare program: LOAD NWCONFIG 2. Select "Driver options" from the main menu. 3. Select "Configure disk and storage device drivers". 4. Select "Deselect a selected driver". 5. Choose the QL2x00 HAM driver 6. Select "Select an additional driver". 7. Press to install an unlisted driver. 8. Insert the IBM FAStT Host Adapter driver diskette and press to specify the path to the HAM driver: A:\NETWARE 9. Press to select the QLogic HAM driver and select "Yes" to copy the driver from the diskette to the server directory. 10. Select "Select/Modify drivers parameter". 11. Insert the Slot Number and press . 12. Select "Save parameters and load driver". For NetWare 6.5: 1. From the NetWare server prompt, load the appropriate NetWare program: LOAD HDETECT 2. Select and press . 3. Select and press . 4. Select the storage adapters and press . 5. Select and press . 6. Press to install an unlisted driver. 7. Insert the IBM FAStT Host Adapter driver diskette and press to specify the path to the QLogic HAM driver: A:\NETWARE 8. Press to select the QLogic HAM driver. 9. Select and press to load the new driver. 10. Press to exit the installation. ====================================================================== 7. NetWare Failover ------------------- IMPORTANT: The IBMSAN driver is the supported multi-path failover/failback driver for Novell NetWare 6.0 with Support Pack 2 or earlier. IBMSAN can be downloaded from the FAStT Support Website: http://www.ibm.com/storage/support/fastt. Please refer to the IBMSAN readme included in the IBMSAN package for installation instructions. For the native NetWare Failover, you must use Novell NetWare 6.0 with Support Pack 3 or higher. In Storage Manager select the 'NetWare Failover' Host Type. NetWare 6.0 with Support Pack 4 and NetWare 6.5 with Support Pack 1.1 come with the latest drivers and do not have to be updated. NOTE: Do not use the drivers that are available with Support Pack 3. Download the following 3 files and place in c:\nwserver on the NetWare server. Download the newest LSIMPE.CDM from http://support.novell.com : TID# 2966837 and follow the installation instructions in the Novell TID. Download the updated NWPA.NLM from http://support.novell.com : TID # 2966596 and follow the installation instructions in the Novell TID. Download the newer MM.NLM from http://support.novell.com : TID# 2966389 and follow the installation instructions in the Novell TID. Edit the STARTUP.NCF for the following: Add 'SET MULTI-PATH SUPPORT = ON' Add 'Load LSIMPE.CDM' before the SCSIHD.CDM driver Add the 'AEN' command line option to SCSIHD.CDM, expl: 'Load SCSIHD.CDM AEN' Your STARTUP.NCF file should look somewhat like the following: SET Multi-path Support = ON LOAD MPS14.PSM LOAD IDECD.CDM LOAD LSIMPE.CDM LOAD SCSIHD.CDM AEN LOAD IDEATA.HAM PORT=1F0 INT=E LOAD ADPT160M.HAM SLOT=10010 LOAD ADPT160M.HAM SLOT=10011 LOAD QL2300.HAM SLOT=4 /LUNS /allpaths /portnames /xretry=400 LOAD QL2300.HAM SLOT=5 /LUNS /allpaths /portnames /xretry=400 Disable all other multi-path support. For example, when using QLogic adapters, load the driver with '/luns /allpaths /portnames'. The 'allpaths' option disables the QLogic failover support. Startup the server. If your configuration is correct you will not need to set the failover priorities for your LUNs, the LSIMPE.CDM driver will configure these. Use the multi-path documentation to verify the failover devices. This documentation is available from http://support.novell.com/cgi- bin/search/searchtid.cgi?/10070244.htm ====================================================================== 8. Install FAStT_MSJ -------------------- If FAStT_MSJ for WIN32/NetWare is not currently installed you should install it now. FAStT_MSJ and the qlremote agent are needed for Fibre path diagnostics. See the FAStT_MSJ publications for instructions on the installation procedure for FAStT_MSJ and the qlremote agent for WIN32 / NetWare. ====================================================================== 9. Removing the Driver ---------------------- For NetWare 6.0 1. From the NetWare server prompt, load the appropriate NetWare program: LOAD NWCONFIG 2. Select "Driver options" from the main menu. 3. Select "Configure disk and storage device drivers". 4. Select "Deselect a selected driver". For NetWare 6.5: 1. From the NetWare server prompt, load the appropriate NetWare program: LOAD HDETECT 2. Select and press . 3. Select and press . 4. Select the storage adapters and press . 5. Select and press . 6. Select the correct driver and press . ====================================================================== 10. Driver Optional Parameters ------------------------------ The HAM driver has two types of optional parameters: 1. System parameters (specified at driver load time) 2. NVRAM parameters (stored in the adapter nvram) These are described in the following subsections. ====================================================================== 10.1. System Parameters ----------------------- Driver optional system parameters are specified on the driver load line. There are two types of driver opional parameters: 1. Global - the parameter acts on all driver instances. 2. Instance - the parameter acts only on the individual driver instance in which it is specified. NOTE: "QL2x00" below refers to one of the following: 2300, 2200. The exception to this is the configuration file "QL2x00.CFG" where the "x" character is literal. SLOT=n (Instance) Specifies to NetWare the PCI slot number n of the adapter for which to load this driver instance. LOAD QL2x00.HAM SLOT=3 /LUNS (Instance) Specifies to NetWare to scan for all luns during the load of this driver instance (otherwise NetWare will only scan for lun zero devices); this is required for all RAID susbsystems. LOAD QL2x00.HAM SLOT=3 /LUNS /ALLPATHS (Global) Disables failover and reports to NetWare all devices on all adapter paths; this is required when failover is being handled by an upper layer driver or CDM such as Novell NetWare's multi-pathing. LOAD QL2x00.HAM SLOT=3 /LUNS /ALLPATHS /PORTNAMES (Global) Internally tracks devices by portname rather than nodename; this is required when storage luns do not have a 1:1 correspondence across portnames. LOAD QL2x00.HAM SLOT=3 /LUNS /PORTNAMES /GNNFT (Instance) Uses a single GNNFT rather than a GAN sequence to query the fabric name server. LOAD QL2x00.HAM SLOT=3 /LUNS /GNNFT /XRETRY This will extend the retry count for any I/O command that experiences failure with one of the following SK/ASC/ASCQ codes: 2/04/01 6/8B/02 /CONSOLE (Global) Sends system alerts to the server console when failover and failback events occur. LOAD QL2x00.HAM SLOT=3 /LUNS /CONSOLE ====================================================================== 11. Known Issues and Limitations -------------------------------- - The Storage Manager Agent should be unloaded when not used for system configuration. When the Storage Manager Agent is loaded and a fibre path suffers a failure it is possible for the NetWare server to abend. The Storage Manager Agent can be unloaded by following these steps. 1. At the server console type: java -show look for the line "devmgr.versioned.agent.AgentServer.......................QQQ" where QQQ is the process id. 2. At the server console type: java -killQQQ where QQQ is the process id from the java -show command.. - NetWare 6 may install the following in your 'startup.ncf' file" LOAD QLCSFTE.CDM You must either remove or comment this line out of your startup.ncf file for use with the IBM FAStT Storage Subsystems. ====================================================================== 12. Additional Notes -------------------- 12.1. PCI Hot Plug ------------------ NOTE: This procedure addresses only the driver-related portion of the PCI Hot Swap operation. The server must have PCI slots that are capable of being powered up and down independently. Depending on the server platform, this entire operation may be controlled by a platform specific software module supplied by the platform vendor. In such a case, these commands are issued directly to the driver and do not require the operator to enter them. The IBM Netfinity PCI Hot Plug System Bus Driver for Novell NetWare V5.1 can be downloaded from the IBM Support Site for your specific server model at http://www.pc.ibm.com/support/us. PCI Hot Plug works by unloading a specific instance of the driver associated with a specific host adapter. It allows a failed adapter to be removed and replaced by an adapter of the same type without disrupting the operation of other adapters of the same type. The steps necessary to perform a hot swap operation are listed below. 1. Type "List Devices" or "List Storage Adapters" at the server console. You will see a list similar to this example: [V591-A0-D0:0] SCSI HARD DISK [V591-A0-D1:0] SCSI HARD DISK [V591-A1-D3:0] SCSI HARD DISK [V591-A1-D4:0] SCSI HARD DISK 2. If it were desired to remove host adapter instance 0 controlling the first two hard drives, the operator would enter the following command: REMOVE STORAGE ADAPTER A0 3. After the host adapter has been replaced, the operator would make the new adapter operational by loading another instance of the driver using the normal load command syntax. For example: LOAD QL2x00.HAM SLOT=3 ====================================================================== 12.2. 256 LUN Support --------------------- To find all LUNS, load the driver with the /LUNS qualifier. For example: LOAD QL2x00.HAM SLOT=3 /LUNS Or, if the driver is already loaded, use the command SCAN ALL LUNS at the server console prompt to find all LUNS (new and existing LUNS). ** To set the LUNs Per Target parameter: 1. Reboot the hardware, and do CTRL - Q when QL2x00 banner appears. 2. Select the desired adapter. 3. Select Configuration Settings. 4. Select Advanced Adapter Settings. 5. Select LUNs Per Target and change the LUNs Range. 6. Press ESC twice and select Save. 7. Press ESC again and select Reboot. ====================================================================== 12.3 Server Memory Recommendations ---------------------------------- In general, at least 256MB of memory is recommended. For large numbers of large volumes, in excess of 512MB is required. ====================================================================== 12.4 Debug Driver Information ------------------------------ This package also includes the debug version of the QL2100 and QL2200 adapter driver. These drivers are identified as ql2100d.HAM and ql2200d.HAM. The debug driver provides additional driver information that is dumped to an additional console screen. The format for the debug information is as follows. HAM DRIVER DEBUG SCREEN ======================= Every 1 second: A0=0/1234 <0,0> {0,0} 5678 A1=0/1234 <0,0> {0,0} 5678 A0 adapter instance index 0 A1 adapter instance index 1 0/1234 0 unresolved interrupts / 1234 total number of interrupts <0,0> 0 io command timeouts ,0 mailbox command timeouts {0,0} 0 io commands in pending queue structures , 0 io commands currently executing on fibre 5678 5678 seconds since last interrupt occurred Notes: a. Unresolved interrupt is when the isp indicates that it has an interrupt pending, but when the driver reads the completion registers it finds no work to do. b. The total number of io commands outstanding from Netware is the sum x+y of the numbers inside braces {x,y}. Every 10 seconds: FindTimedOutCommands(An): Searching... An adapter instance index n This indicates that the driver is searching for any IO commands that have not completed and have expired their timeout counter; when none are found, nothing is printed; otherwise the timed out IO commands are identified and then requeued for retry. ====================================================================== 13. Diskette Content -------------------- \NETWARE\QL2300.DDI Driver installation description file \NETWARE\QL2300.HAM NetWare HAM driver for supporting the IBM FAStT FC-2 Host Adapter \NETWARE\i2xNW650Zreadme.TXT This file ====================================================================== 14. WEB Sites and Support Phone Number -------------------------------------- 14.1 IBM TotalStorage™ Disk Storage Systems Technical Support web site: http://www.ibm.com/storage/support/fastt 14.2 IBM Support Web Site: http://www.ibm.com/pc/support 14.3 IBM TotalStorage™ Marketing Web Site: http://www.storage.ibm.com/hardsoft/disk/fastt/index.html 14.4 If you have any questions about this update, or problem applying the update go to the following Help Center World Telephone Numbers URL: http://www.ibm.com/planetwide ====================================================================== 15. Trademarks and Notices -------------------------- 15.1 The following terms are trademarks of the IBM Corporation in the United States or other countries or both: IBM TotalStorage™ the e-business logo xSeries HelpCenter Linux is a registered trademark of Linus Torvalds. Microsoft, Windows, and Windows NT are trademarks of Microsoft Corporation in the United States, other countries, or both. Java and all Java-based trademarks and logos are trademarks or registered trademarks of Sun Microsystems, Inc. in the United states, other countries, or both. UNIX is a registered trademark of The Open Group in the United States and other countries. Other company, product, and service names may be trademarks or service marks of others. ====================================================================== 16. Disclaimer -------------- 16.1 THIS DOCUMENT IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. IBM DISCLAIMS ALL WARRANTIES, WHETHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR PURPOSE AND MERCHANTABILITY WITH RESPECT TO THE INFORMATION IN THIS DOCUMENT. BY FURNISHING THIS DOCUMENT, IBM GRANTS NO LICENSES TO ANY PATENTS OR COPYRIGHTS. 16.2 Note to Government Users Note to U.S. Government Users -- Documentation related to restricted rights -- Use, duplication or disclosure is subject to restrictions set forth in GSA ADP Schedule Contract with IBM Corporation.