============================
R E L E A S E    N O T E S
============================

QLogic qfle3f VMware ESX Native Driver for ESXi6.5
Copyright (c) 2016 QLogic Corporation
All rights reserved

ESXi 6.5 : 1.0.45.3
======================
Enhancements:
-------------
1. Cleanup NPIV logs.
2. Change debug level of a print that is flooding.

Fixes:
-------
1. CQ100676: Correctly wait for fabric cleanup.

ESXi 6.5 : 1.0.45.2
======================
Enhancements:
-------------
None.

Fixes:
-------
1. CQ95115: Lockup issue in qfle3fQuiesceDevice.
2. CQ99714: Flogi with Brocade 8000 FCoE Switch takes longer time to get successful.

ESXi 6.5 : 1.0.45.1
======================
Enhancements:
-------------
1. Update Makefile and scons for ESX-6.7 DDK support.

Fixes:
-------
1. CQ98683: Fix PSOD during reboot test.
2. CQ99487: Fix for incorrect link status.

ESXi 6.5 : 1.0.45.0
======================
Enhancements:
-------------
1. Add capability to change module parameters dynamically.

Fixes:
-------
1. CQ97385: E3 Native FCoE Driver with NPIV:PSOD during VM power On with NPIV enabled
2. CQ97967: Fix for Driver unload with NPIV.
3. CQ98237: APD during profile connection add/remove test.

ESXi 6.5 : 1.0.44.0
======================
Enhancements:
-------------
1. Adding back the default vlan id support.

Fixes:
-------
1. None.

ESXi 6.5 : 1.0.43.0
======================
Enhancements:
-------------
1. Removing the default vlan id support.

Fixes:
-------
1. CQ97723: ESX6.5: Server PSOD when running Uplink add/remove test "_ReleaseFabricReference"..

ESXi 6.5 : 1.0.42.0
======================
Enhancements:
-------------
1. Serialize access to fabric DS(physical & virtual)

Fixes:
-------
None.

ESXi 6.5 : 1.0.41.0
======================
Enhancements:
-------------
1. Fix reference count (-1) when explicit Logo is issued.
2. Display Physical/Virtual info under keyval

Fixes:
-------
1. CQ97663: NPIV ports do not login after a port toggle.
2. CQ97722: E3 Native FCoE Driver with NPIV:PSOD While Powering on VMs With NPIV Enabled

ESXi 6.5 : 1.0.40.0
======================
Enhancements:
-------------
1. Added support for default vlan id.

Fixes:
-------
1. CQ96969: Correctly assign wwnn/wwpn in get_port_info.
2. CQ96535: Fix for driver unload fails.

ESXi 6.5 : 1.0.39.0
======================
Fixes:
-------
1. Revert "qfle3f: Moved some debug logs to higher level."

ESXi 6.5 : 1.0.38.0
======================

Enhancements:
-------------
1. Added NPIV support for application.

Fixes:
-------
1. CQ97198: E3 Native FCOE:I/O error observed on continuous LUN reset test.
2. CQ96754: Fix for long  term Ethernet Shut/noshut test.
3. CQ96703: Fix for Long term ethernet shut/noshut fail.
4. CQ97236: FCOE:I/O error observed on target reset test.

ESXi 6.5 : 1.0.37.0
======================

Enhancements:
-------------
None.

Fixes:
-------
CQ96632: Fix for overnight NPIV creation/Deletion Test fails.

ESXi 6.5 : 1.0.36.0
======================

Enhancements:
-------------
None.

Fixes:
-------
1. CQ96342: Fix for PSOD while rebooting VM with NPIV.

2. CQ94090: System reboot/shutdown while NPIV port active.


ESXi 6.5 : 1.0.35.0
======================

Enhancements:
-------------
None.

Fixes:
-------
1. CQ95478: Fix for PSOD while resetting VM.

2. CQ95677: Implement els_logo for vport correctly.

3. CQ95568: PSOD while running uplink port remove/add.

ESXi 6.5 : 1.0.34.0
======================

Enhancements:
-------------
None.

Fixes:
-------
1. CQ95890: APD seen on ESXi 6.5 systems during direct-attach uplink add/remove test

ESXi 6.5 : 1.0.33.0
======================

Enhancements:
-------------
None.

Fixes:
-------
1. CQ95478: Fix for PSOD while resetting VM with NPIV enabled.

2. CQ95380: ESXi 6.5 guests become inaccessible during direct-attach uplink add/remove test

3. CQ93920: PSODed while running Eth shut/noshut test overnight with 32 Virtual ports and IOs

ESXi 6.5 : 1.0.32.0
======================

Enhancements:
-------------
None.

Fixes:
-------
1. Fix for linkstate not showing correctly.

2. CQ94976: Fix for PSOD during direct-attach uplink cable pulls.

ESXi 6.5 : 1.0.31.0
======================

Enhancements:
-------------
1. Add ql_fcoe_debug_level to key value pair.

Fixes:
-------
1.	CQ93920: E3 Native FCoE Driver with NPIV:PSODed while running Eth
    shut/noshut test  overnight with 32 Virtual ports and  IOs

    PROBLEM DESCRIPTION:
        There are two problems here:
        1. Paths are not become active even after the link
           has been up for 2-3 minutes.
        2. Intermittently NPIV creation is failing.

    SOLUTION:
        Fix to the first problem is to check whether we need to wakeup
        the scsi-scan world in the notifyIOAllowed() callback.
        Also, if the IO is not yet allowed, do not remove the
        rports from the scsi-scan list instead hold reference across
        the scsi-scan world. Same is true for the qfle3f_remotePortDelete
        call.

        For the second problem, NPIV rport need to assigned
        same vmk_targetID as it's corresponding physical port.

2.	 CQ93920 Part 1: E3 Native FCoE Driver with NPIV:PSODed while running Eth
    shut/noshut test  overnight with 32 Virtual ports and  IOs

    PROBLEM DESCRIPTION:
        As now the reference counting on the Fabric and Session has been
        dealt with. We are seeing scenario where Sess and/or Fabric gets
        destroyed and we are still holding a pointer to the deleted
        structure, resulting in system panics.

    SOLUTION:
        Firsty, use the SAFE version of iterating through the Session List.
        Secondly, obtain a reference counter before scheduling the
        RportEvHandlerWork and release it at the end of RportEvHandlerWork.

3.	Fixing the locking mechanism around the Tx frame.

    PROBLEM DESCRIPTION:
        We still end up in a situation were multiple threads
        are trying to send FIP/FCoE frame resulting in
        PendingCommandList corruption.

    SOLUTION:
        Create a PerProcessorContextLock and not a per Queue
        lock.

4.	 Fixing the pkt alloc retry logic.

    PROBLEM DESCRIPTION:
        The current retry logic is broken and does not
        honor the 10 retry limit.

    SOLUTION:
        Fixing the logic to honor the 10 retry limit.
        Also, checking the correct return status to
        determine if the vmk_PktAllocForDMAEngine()
        call has failed.

5.	CQ95428: Fix for PSOD during Reboot.

    PROBLEM DESCRIPTION:
    Driver is  not initialize the some resources for the link down port.
    But during QuiesceDevice we are trying to free these resources which cause PSOD
    the system.

    SOLUTION:
    Add check before freeing the unallocated resources.


ESXi 6.5 : 1.0.30.0
=======================

Enhancements:
-------------
1. Fixing print messages.

Fixes:
-------
1. Problem: NPIV port getting creatd with zero wwpn and wwnn.

   Cause: Before creating the NPIV ports, driver is not
          checking whether the entry is valid or not.

  Change: Check whether the wwpn and wwnn is valid for a NPIV
          entry.

2. Problem: Driver unload not happening.

   Cause: While driver unload, driver heap is not getting destroyed
          on the account that it is not empty.

   Change: When destroying target structure, release all the relevant
           memory.

3. Problem: CQ93302: FCOE port status becomes "Link down" after
            running port toggle with 2/60 timeout

   Cause: When max. FIP Vlan Disc Tries is reached, Fabric structure is not
          getting freed, resulting in host port going into a halt state and
          not able to login to the switch. The Fabric controller session is
          incorrectly holding the last Fabric structure reference.

   Change: Decrement the reference once Fabric has exhaused the max
           FIPVlanRetries count(Both on the Session and the Fabric).
           Also, improving the handling of the CVL. Now, we don't call
           StartFabricDiscovery ourself, but let the state of the
           Fabric controller session handle that for us.

4. Problem: CQ94976: ESXi 6.5 U1 PSOD during direct-attach uplink cable pulls

   Cause: PSOD is happening because of the unprotected way driver
          is sending non-offloaded FIP and FCoE frames.

   Change: Acquire a lock around the Submit call for non-offloaded
           FIP and FCoE frames.

ESXi 6.5 : 1.0.29.0
=======================

Enhancements:
-------------
None.

Fixes:
-------
1. Problem: CQ92908: Build 37 Native drivers PSOD while booting

   Cause: The PSOD was coming because FLOGI was getting
        LS_RJT and its retry was zero.
        If retry is zero, callback is called with
        failure status and NULL pointer for pkt and header.

  Change: Only access the packet after we have checked the status.

2. Problem: CQ94354: Fixing the print statement error.

   Cause: There is a mismatch between the structure shared between
          qfle3f and qcnic drivers.

   Change: Bring the shared structured in sync.

None.
ESXi 6.5 : 1.0.28.0
=======================

Enhancements:
-------------
1. Reduce logging in qfle3f_findTargetByConnectionID.

2. Cleanup during vport delete.

Fixes:
-------
None.


ESXi 6.5 : 1.0.27.0
=======================

Enhancements:
-------------
None.

Fixes:
-------

1. Problem: CQ93683: FIX for PCPU lockup.

   Cause: Too many log messages.

   Change: Use appropriate log level.

2. Problem: CQ93684: PSOD due to instance bit vector exhaust.

   Cause: Bit vector is getting exhaused due to increase in
          NPIV ports creation deletion.

   Change: While deleting a NPIV ports, free up all the
           resources related to bit vectors.

3. Problem: CQ93817 Excessive logging of "qedfc_find_qfle3fHBA..." msgs in
vmkernel.log

   Cause: Message logged under default log.

   Change: Use appropriate log level.

ESXi 6.5 : 1.0.26.0
=======================

Enhancements:
-------------
1. CQ91372: Added FCF information and VLAN info for API.

2. Added support for NPIV.

Fixes:
-------

1. Problem: CQ92244: Driver is not able to login to fabric.

   Cause: Due to local timer report lun command was timeout and login failed.

   Change: Remove IO's local timer.

2. Problem: CQ93088: PSOD while running vfc shut/noshut.

   Cause: When a rport is put in scsi-scan list no reference is taken (on the rport).

   Change: Change is to take a reference when we put the rport in the scsi-scan list
           and then release it in the scsi-scan thread.

ESXi 6.5 : 1.0.25.0
=======================

Enhancements:
-------------
1. Default Dev loss timeout value decreased to 2 seconds.
   Can be changed using module parameter.

2. Changing queue depth to value of 32 and max sector value to 512.

Fixes:
-------
1. Problem: StreeSPFailover Test failing.

   Cause: In the virtual reset task Management handling, driver was not setting
          appropriate IORequest flags, causing the IO to get stuck in the driver.

   Change: Set appropriate flags in the IORequest before processing it in virtual
           reset task Management handling.

ESXi 6.5 : 1.0.24.0
=======================

Enhancements:
-------------
1. Add support for second level lun id.

Fixes:
-------
1. Problem: PR#1757931 - PSOD DLM_malloc Heap_AlignWithTimeoutAndRA Fil3_FileIO Fil3_FileIOWithRetry

   Cause: In eh_abort, driver is calling scsi->done() for a IO for which cleanup is pending.
          As the IO is outstanding with the firmware, it may do DMA associated with the IO.
          This may lead to heap corruption.

   Change: Do not complete the IO for which cleanup is still pending. Return failure from
           eh_abort and let the SCSI-ml retry the IO.

2. Correctly set max_lun to 0xffff.

	scsi host's max_lun old value would prevent higher lun-ids from being presented
	to OS. So we remove this restriction and let ESX decide on max number of luns
	to be supported.

3.	Problem: CQ90868: IOVP test failing.

	Cause:	IOVP DDV tests loaded real world system where there is a possibility of
			memory allocation failures at random points in time,
	   		and they want the drivers to be resilient to withstand short term memory
	   		allocation failures. And due to this random memory failures driver is not
	   		able to recovered after getting CVL FIP.

	Change:
	   		When a memory allocation fails, driver retry to allocate a finite no.
	   		of times.

ESXi 6.5 : 1.0.23.0
=======================

Enhancements:
-------------
None.

Fixes:
-------
1. qfle3f: Correcting FC_ID for application support.


ESXi 6.5 : 1.0.22.0
=======================

Enhancements:
-------------
None.

Fixes:
-------
1. CQ91633: Correcting the reporting of the link state.

ESXi 6.5 : 1.0.21.0
=======================

Enhancements:
-------------
None.

Fixes:
-------
1. Consistent Link State across various vmk Interfaces.

ESXi 6.5 : 1.0.20.0
=======================

Enhancements:
-------------
None.

Fixes:
-------
CQ91504: Fix Target login failure.

ESXi 6.5 : 1.0.19.0
=======================

Enhancements:
-------------
None.

Fixes:
-------
1. CQ90911: 12ESXi65:Flogi fails using qfle3 native drivers.
2. qfle3f: Fix for PSOD while running application.

ESXi 6.5 : 1.0.18.0
=======================

Enhancements:
-------------
None.

Fixes:
-------
1. CQ89442: Add support for module unload.
2. CQ90868:  PSOD while running DDV test case.

ESXi 6.5 : 1.0.17.0
=======================

Enhancements:
-------------
None.

Fixes:
-------
1. Reverting: CQ89442: qfle3f: Add support for unload qfle3f.

   When hba ports are up, this is causing system reboot/shutdown
   process to hang.

ESXi 6.5 : 1.0.16.0
=======================

Enhancements:
-------------
None.

Fixes:
-------
1. CQ89442: qfle3f: Add support for unload qfle3f.

   Able to unload qfle3f driver when link was down.

2. Problem: CQ90533 - E3 FCoE Native : PSOD observed while running
        Stress_SP failover.

   Cause:
       When a work event, related to a physical port, gets fired after
       the link down event, it might end up accessing null pointers.

   Change:
       When a link down event happens, all the scheduled work should
       be cancelled synchronously. Driver should wait for them to be cancelled or
       to be completely executed.

ESXi 6.5 : 1.0.15.0
=======================

Enhancements:
-------------
None.

Fixes:
-------
None.

ESXi 6.5 : 1.0.14.0
=======================

Enhancements:
-------------
None.

Fixes:
-------
1. Problem: CQ89684: Fabric login fails with qfle3 native drivers in
        certain environments.

    Cause:
        In certain environment, driver is trying to do FIP VLAN discovery,
        which is not successful, leading to FCoE link being down.
        In this mode, driver should not be doing FIP VLAN discovery,
        as it is the responsibility of the firmware.

    Change:
        When in this specific environment, following actions need to be taken.
        - No FIP discovery by the driver.
        - No attaching of VLAN tag to outgoing frames.
        - While offloading target session, reset vlan_flag.

        Additional Changes:
        - Printing FIP related information in the vmkMgmt command line.

2. Problem: CQ89145: Driver Model name does not correctly appear under vSphere GUI.

    Cause:
        Driver register HBA as FC adapter.

    SOLUTION:
        1> reverts commit cb7476c59d502b2096f0eb83b9838d8fafa444cd.
        2> Implement some missing FCoE attribute filelds.
        3> Get vmnic_name after ScsiNotifyIOAllowed completed.


ESXi 6.5 : 1.0.13.0
=======================

Enhancements:
-------------
1. Enhanced the handling of link down event.
2. Added FW version and VLAN ID parameter in the
   vmkmgmt_keyval cmdline output.

Fixes:
-------
1. Problem: CQ89051: Target node name and port name showed ZERO.

    Cause:
        Not setting node name and port name is FC Attributes structure.

    Change:
        Correctly populate node name and port name in getFcTargetAttributes.

ESXi 6.5 : 1.0.12.0
=======================

Enhancements:
-------------
1. None.

Fixes:
-------
1. Problem: CQ89726 - ESX65 FCOE connections dropped and did not recover after running I/O.

    Cause:
        FIP Frames passed by the nic driver to us are not being
        freed. As vmk_Pkt for FIP Frame is allocated by the nic driver,
        this memory leak affects nic driver heap.

    Change:
        Free the FIP frame recieved via. nic driver.

ESXi 6.5 : 1.0.11.0
=======================

Enhancements:
-------------
1. None.

Fixes:
-------
1. Problem: CQ89663: PSOD while doing ethernet port up/down.

    Cause:
        qfle3f driver treats 128 as the max number of offloaded
        sessions per port. cnic driver has the value of 1024.
        Because of this discrepancy between qfle3f and cnic driver, cnic
        driver panics when qfle3f driver wraps around conn id after 127.

    Change:
        Two parts to the solution:

        1. Use cnic's API cm_acquire to get a conn_id for a new target
           session. Removing the management of the conn_id from the
           qfle3f driver.
        2. Use QFLE3_FCOE_NUM_CONNECTIONS(defined in cnic_if.h file)
           for the max offloaded session and remove QFLE3F_NUM_MAX_SESS.

2. Problem: Fixing linkup event handling.

    Cause:
        On first link up event, dirver creates ql_fcoe_mgmt
        interface. On subsequent link up events, driver is not doing
        any operation.

    Change:
        On subsequent link up event, driver is now starting
        Fabric Discovery.

ESXi 6.5 : 1.0.10.0
=======================

Enhancements:
-------------
1. None.

Fixes:
-------
1. Problem: Compilation issue.

   Cause: DBG is disabled by default causing issues with compilation
          issues with TRACE_FABRIC_REF.

   Change: Making TRACE_FABRIC_REF a no-op

ESXi 6.5 : 1.0.9.0
=======================

Enhancements:
-------------
1. None.

Fixes:
-------
1. Problem: vfc shut/noshut test would result in loss of LUNs and targets.

   Cause: While handling a RSCN event, getting reference counter on the Fabric
          structure was not working as expected.

   Change: Fix the getting of the reference counter on the Fabric and Session structure.

ESXi 6.5 : 1.0.8.0
=======================

Enhancements:
-------------
1. None.

Fixes:
-------
1. Problem: CQ89299 - E3 native got PSOD qlfcoe-l2-rcv-thread.

   Cause: The Fabric was getting deleted while some LL2 traffic for that fabric
    was still pending.

   Change: Check the Fabric, if its not longer then drop the packet.


ESXi 6.5 : 1.0.7.0
=======================

Enhancements:
-------------
1. None.

Fixes:
-------
1. Problem: CQ89140 - PSOD while running IOs.

   Cause:   Stale world worker threads accessing freed data structure.

   Change:  Delete the relevant worker thread.

2. Additional fixes to short term cable pull issue.

3. Problem: CQ89294 - Storage adapters gives error "Unable to get node: Sysinfo error:".

   Cause:   Driver was registering itself as an FCoE Adapter instead of FC for which
            the OS expects a different feature set.

   Change:  Register the adapter as a FC Adapter.

ESXi 6.5 : 1.0.6.0
=======================

Enhancements:
-------------
1. None.

Fixes:
-------
1. Problem: Cont000Q98140: PSOD with message ql_fcoe_do_singlethread.
            Driver Panics at randomly with the above signature.

   Cause:   When we loose access to the fabric and re-connect, we do not cleanup
            the context completely.

   Change:  When a fabric is removed, delete all the worker threads associated with
            it.

2. Problem: Post short term cable pull, driver fails to login to the fabric.

   Cause:   Driver fails to cleanup the existing session.

   Change:  Delete the session when the remote port gets deleted as a result of a
            link down.

ESXi 6.5 : 1.0.5.0
=======================

Enhancements:
-------------
1. Implement devloss timeout for target. Default value of
   10 seconds.

Fixes:
-------

1. Problem: Cont00089132 - ESXi 6.5 E3 Native FCoE: potential fix for
            PSOD with 1.0.9 bundle on qlfe3f and qcnic makes only
            port target discovery.

   Cause:   Incase the target is again rediscovered, target flags are
            being reseted resulting in target state getting corrupted.

   Change:  Correctly reset the target flags and also implement a devloss
            timeout for the targets.

2. Problem: Virtual reset result in system panic.

   Cause:   After a IO is aborted, as part of virtual reset, it is not
            being placed in the ioRetireQueue before releasing the reference
            on the IO.

   Change:  When removing IO from the active queue, reset the on_active_queue flags.
            Also, place the IO in the ioRetireQueue before releasing the
            reference on the IO.


ESXi 6.5 : 1.0.4.0
=======================

Enhancements:
-------------
1. Init delayed_work item to avoid stale use.


ESXi 6.5 : 1.0.3.0
=======================

Fixes:
-------

1. Problem: MTU change on the vSwitch results in system panic.

   Cause:   In case of MTU change, driver gets Quiesce Device
            call, which was not implemented.

   Change:  Implement the quiesce device function call, so
            that driver can stop sending and recieving FCoE frames.
            Also, call FCoE Destroy RAMROD.

2. Problem: System PSOD on system reboot.

   Cause:   flag being used for FCoE Func destroy completion is
            uninitialized.

   Change:  Not to zero out the flag being used for FCoE Func destroy.

3. Problem: PSOD when system is up for long period of time.

   Cause:   Driver is not freeing the resources allocated during
            handing of incoming frames. This memory leak is the
            reason for the PSOD due to driver heap memory
            being completely utilized.

   Change:  After incoming frame handing has been completed, free all
            the allocated resources.

ESXi 6.5 : 1.0.2.0
=======================

Fixes:
-------

1. Problem: During bootup time, system panics.

   Cause:   cnic_if.h file is not synced with the latest qcnic
            driver, resulting is system panic.

   Change:  Sync cnic_if.h file with the latest qcnic driver.


ESXi 6.5 : 1.0.1.0
=======================

Enhancements:
-------------
1. Protecting targetOffloadlist using a single lock.
   targetOffloadList is now only being protected using hba_mutex.

2. Providing stats required for user-space application.

Fixes:
-------

1. Problem: Targets going offline and luns not accessable.

   Cause:   In FIP Adv. frame FP flag is not set for Enode FKA,
            leading to CVL being issued by the switch.

   Change:  Properly set FP flag for Enode FKA.

2. Problem: PSOD while driver load with qlnativefc driver also installed.

   Cause:   The vmkMgmt interface name for the module parameters is same
            as that of qlnativefc driver. This causes the call the create
            vmMgmt to fail.

   Change:  Change the name from MOD_PARAM to MOD_PARAM_FCOE.


3. Problem: Under certain circumstances, switch is sending CVL frame.

   Cause:   Driver is not sending FKA frames from the FPMA. This prompts
            switch to sending CVL frame.

   Change:  Making sure that driver sends the FKA from the FPMA every 90
            seconds.

4. CQ87480 - Multiple VMware issues during the FC uplink toggle test.

   Cause:   When a session is onloaded, driver waits for 3 seconds after
            session disable RAMROD, for all IO's to be cleanup. When this timeout
            expires, driver sends session destroy RAMROD. Incase, some IO's are still
            pending, session destroy RAMROD request results in FW assert.

   Change:  After session disable RAMROD request wait for all IO's to be
            cleaned up before sending session destroy RAMROD.


ESXi 6.5 : 1.0.0.0
=======================

Enhancements:
-------------
1. None.

Fixes:
-------
1. Problem: Under certain circumstances, switch is sending CVL frame.

   Cause:   Driver is not sending FKA frames from the FPMA. This prompts
            switch to sending CVL frame.

   Change:  Making sure that driver sends the FKA from the FPMA every 90
            seconds.

ESXi 6.5 : 0.0.0.10
=======================

Enhancements:
-------------
1. Target Reset supported.

Fixes:
------
1. PSOD on VM with RDM disk was powered on.

ESXi 6.5 : 0.0.0.9
=======================

Enhancements:
-------------
1. Initial version.

Fixes:
------
None.

