                        ===========
                        R E A D M E
                        ===========
             
	     QLogic Control Suite (QCS) Graphical User Interface (GUI)
			for Linux

                Copyright (c) 2020 Marvell Semiconductor Inc.
                         All rights reserved.

Table of Contents
-----------------

    1. Introduction
    2. Requirements
    3. Scope    
    4. Installation
    5. Uninstall
    6. Limitation
	7. Additional Notes
    8. Third Party Software License
    9. Q & A



1. Introduction:
================
QCS is a GUI application that allows user to manage QLogic network adapters. 
It has the ability to show infomration and statistics, configure 
the driver properties and manage the storage devices.

QCS requires the appropriate QLMAPI module and device 
driver in order to work correctly. QCS can also be used to manage 
network adapters on local and remote computer systems.


2. Requirements:
================
    
    1. Appropriate device driver for the NIC is installed on the 
       system that is to be managed by this utility.
    2. For managing iscsi on Linux hosts, open-iscsi is required to be installed on the Linux host.
    3. For linux, managing LUN related info [ for iSCSI/FCoE ] 'sg3_utils' package required to be installed.


3. Scope:
=========
Supported Operating Systems

    - SUSE Linux Enterprise Server(SLES) 10 32 and 64 bit
    - SUSE Linux Enterprise Server(SLES) 11 32 and 64 bit
    - SUSE Linux Enterprise Server(SLES) 12 32 and 64 bit
    - Redhat Enterprise Linux Redhat 5 32 and 64 bit
    - Redhat Enterprise Linux Redhat 6 32 and 64 bit
    - Redhat Enterprise Linux Redhat 7 32 and 64 bit


4. Installation:
================
    1. On the system with QLogic Network Adapters, install
       the appropriate driver package using the driver installer.
       
    2. On the system with QLogic Network Adapters, its dependent components like sg3_utils

    3. Install the RPM package as: 
          % rpm -i QCS-{version}.{arch}.rpm


5. Uninstall - RPM package
==============
    
    To uninstall RPM package as:
       % rpm -e QCS


6. Limitations
================

    1. DCBNL is supported for inbox drivers for RHEL 6.2 and SLES 11SP2 and later.
    2. DCBX is not supported on Red Hat 5 and SuSE 10 due to lack of kernal support.
    3. iSCSI Initiator Statistics is not available because it's not available in user
       space.
    4. iSCSI DataDigest login option is not supported by Red Hat.
    5. iSCSI MPIO login option is not available. MPIO for Linux iSCSI operates 
       different than Windows. For Linux, two iSCSI sessions need to be established
       to the same target LUN first. Then the multipathd, needs to be started so the 
       SCSI layer would treat the device mapper disk as one disk. This has nothing to 
       do with actual iSCSI login procedure, So there is no MPIO option during login.
    6. ISCSI offload features are not available on SuSE 10 due to lack of kernal support.
    7. iSCSI iSNS Server enumeration, refresh and deletion are not available. These are Windows
       features. There is no equivalent on Linux system.
    8. No Configuration is available if the device interface is down.
    9. iSCSI Ping Test, Network test, On Chip CPU test, Cable analysis are not supported currently.
   10. Loopback Phy, Loopback MAC tests are not supported currently on Multi-function mode.
   11. While Launching QCScli on RHEL 8 RC2 we see “Failed to open device” messages on console.
       This is E4 driver issue which is fixed in latest driver version 8.38.4.0 onwards



7. Additional Notes:
==============
    1. Recommended Bandwidth setting for 25G/40G/100G adapters
		- For 25G/40G/100G adapters, if DCBX/ETS are used, setting of bandwidth to 0 on storage functions is the best practice.
	2. QCS Help - If the help dialog doesn't open, make sure the language resources directory is located in the
	   same directory as the QCS binary.
	3. Cannot mix incompatible Qt Library issue.  To fix this, execute the following commands in a terminal window:
		- Type "env | grep QT"
		- For each QT variable that displays, type "export <QT_VARIABLE>=". For example: "export QTDIR="
		- Now run QCS
	4.	iSCSI Ping Test: 
		This test may fail/pass based on the real time network traffic and bandwidth.
		If few pings are successful and few fail, it could be expected.
		If the ping test fails repeatedly, this can be an issue.

        5. Known issue for BCM57810 and BCM57840-based adapter and Workaround:
           Some of the most recent kernels (for example in SLES15) has a security feature to prevent 
           user space access to physical memory above 1MB (IIRC). Due to which "firmmare upgrade tool"
           may not function properly. There are couple of workaround:
                 A. At boot time: Add iomem=relaxed in kernel command line during boot time.
                 B. Update grub.cfg file: 
                   - add iomem=relaxed at the end for GRUB_CMDLINE_LINUX_DEFAULT parameter in file 
                              /etc/default/grub.cfg (based on the distro, location of grub.cfg may vary)
                   - run cmd grub2-mkconfig -o /boot/grub2/grub.cfg
                   - reboot the server to take effect

8. Third Party Software License
===============================

Portions of this software contain third party code subject to the following conditions:

License of libxml2

/* Except where otherwise noted in the source code (e.g. the files hash.c,
 * list.c and the trio files, which are covered by a similar licence but
 * with different Copyright notices) all the files are:
 * 
 *  Copyright (C) 1998-2003 Daniel Veillard.  All Rights Reserved.
 * 
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is fur-
 * nished to do so, subject to the following conditions:
 * 
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 * 
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT-
 * NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
 * DANIEL VEILLARD BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
 * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON-
 * NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 * 
 * Except as contained in this notice, the name of Daniel Veillard shall not
 * be used in advertising or otherwise to promote the sale, use or other deal-
 * ings in this Software without prior written authorization from him.
 */


License of libcurl

/* COPYRIGHT AND PERMISSION NOTICE
 * 
 * Copyright (c) 1996 - 2010, Daniel Stenberg, <daniel@haxx.se>.
 * 
 * All rights reserved.
 *  
 * Permission to use, copy, modify, and distribute this software for any purpose
 * with or without fee is hereby granted, provided that the above copyright
 * notice and this permission notice appear in all copies.
 
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN
 * NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
 * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
 * OR OTHER DEALINGS IN THE SOFTWARE.
 
 * Except as contained in this notice, the name of a copyright holder shall not
 * be used in advertising or otherwise to promote the sale, use or other dealings
 * in this Software without prior written authorization of the copyright holder.
 */

License of Qt

/* We use Qt under LGPL license
 * The GNU Lesser General Public License, or LGPL, is a free software license 
 * written and copyrighted by the Free Software Foundation which means that its 
 * terms cannot be modified. It was designed as a compromise between the 
 * strong-copyleft GNU General Public License, and permissive open source 
 * licenses such as the BSD and MIT licenses. The LGPL license requires that 
 * the LGPL-licensed libraries and any derivative works therof need to be licensed 
 * to downstream recipients under the terms of the LGPL.  The LGPL does permit users 
 * to license software programs that merely link with the LGPL licensed library 
 * under different license terms provided certain requirements are met. In essence 
 * this means that Qt users may create proprietary applications that dynamically 
 * link to the LGPL-licensed Qt libraries provided he or she adheres to the 
 * requirements of the LGPL.
 */


License of Putty

/*******************************************************************************
* PuTTY is copyright 1997-2011 Simon Tatham.
* 
* Portions copyright Robert de Bath, Joris van Rantwijk, Delian
* Delchev, Andreas Schultz, Jeroen Massar, Wez Furlong, Nicolas Barry,
* Justin Bradford, Ben Harris, Malcolm Smith, Ahmad Khalifa, Markus
* Kuhn, Colin Watson, and CORE SDI S.A.

* Permission is hereby granted, free of charge, to any person
* obtaining a copy of this software and associated documentation files
* (the "Software"), to deal in the Software without restriction,
* including without limitation the rights to use, copy, modify, merge,
* publish, distribute, sublicense, and/or sell copies of the Software,
* and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:

* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.

* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT.  IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE
* FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
* CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
* 
*******************************************************************************/

License of qPutty

/*******************************************************************************
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:

* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.

* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
* 
*******************************************************************************/

9. Q & A
==========

  1. Why QCS shows "Another instance of the QCS client appears to be running 
     on this system?
		Only one instance of the QCS client can be running at a 
        time. If you are sure that no other QCS client is running, then a previous 
        instance may have quit unexpectedly. Refer to the Troubleshooting section 
        in the online help for instructions on clearing the previous instance."
        message?

		This message displays if you try to run a second instance of QCS. If you 
        receive this message but are certain that no instance of QCS is currently 
        running, a previous instance of QCS may have quit unexpectedly. To clear 
        that instance, remove the file "/dev/shm/sem.Global-QCS-{C50398EE-84A7-
        4bc3-9F6E-25A69603B9C0}.".
