                              Release Notes
                      QLogic's ESX FCoE Offload Driver

                           QLogic Corporation

                    Copyright (c) 2015 QLogic Corporation
                          All rights reserved


bnx2fc 1.712.50.v[50,55,60].7 (Jul. 27, 2015)
====================================
	FIX
	-----------
	1. Problem: CQ80873: Qlogic NX2 Drivers causing PSOD on ESX6.

	Cause:Due to change-list@286580 some of the old code was enabled, which
	caused PSOD.

	Change: Added these code to new preprocessor macro.

bnx2fc 1.712.50.v[50,55,60].6 (Jul. 17, 2015)
====================================
	Enhancements
    ------------
	1. BNX2FC: Added support to get physical port number
			in ioctl interface.

	FIX
	------------
	1. Problem: CQ80724: PSOD running IOVP test: Unloading bnx2fc.

	Cause:  While invoking FDMI thread we did not populate any lport

	Change: Added check for lport in the FDMI thread.

bnx2fc 1.712.50.v[50,55,60].5 (Jun. 26, 2015)
====================================
	Enhancements
        ------------
	1. IOCTL support to collect fcoe port statistics is added.


bnx2fc 1.712.50.v[50,55,60].4 (May. 28, 2015)
====================================
	Enhancements
        ------------
	1. Problem: CQ79737: Unable to create VMs in VMware VVOL container

	Cause: Copy paste error while porting the VVOL feature on FCoE.
 
	Change: Duplicate statement removed. 

	2. Problem: PSOD during IOCTL feature testing. 

	Cause: lp_port pointer accessed without checking its validity. 
 
	Change: NULL condition check added before accessing lp_port pointer.	

	3. Problem: CQ79574: Driver Show Linkspeed unknown.

	Cause: Driver did not have support for 20G data rate.

	Change: Add support for 20G data rate.


bnx2fc 1.712.50.v[50,55,60].3 (May. 12, 2015)
====================================
	Enhancements
    ------------
	1. BNX2FC: Additional IOCTL support (scsi_passthru cmd )for BNX2FC.

bnx2fc 1.712.50.v[50,55,60].2 (Apr. 06, 2015)
====================================
	Enhancements
        ------------
	Problem: CQ79228: PSOD running IOVP test case DDV::RescanIO ESXi 6.0

	Cause:  While sending FDMI related FC Frame, if FC exchange was
		not send, driver is freeing the corresponding FC frame.
		This causes PSOD as frame is already been freed by libfc.

	Change: While sending FDMI related FC Frame, driver should not
		free frame when sending the frame does not complete.
		That is already taken care by libfc.	

bnx2fc 1.712.50.v[50,55,60].1 (Apr. 06, 2015)
====================================
	Enhancements
	------------
    1. Second Level LUN addressing support added. 
	2. Changed driver version from 712.40 to 712.50 for OEM project.

bnx2fc 1.712.40.v[50,55].1 (Feb. 28, 2015)
====================================
	Enhancements
	------------
    1. Changed driver version from 712.30 to 712.40 for OEM project.

bnx2fc 1.712.30.v[50,55].4 (Feb. 25, 2015)
====================================
	Enhancements
	------------
	1. Problem: CQ78104: PSOD while running HeavyIOScheduleAlgorithm
			     in IOVP

	   Cause: Driver is not cancelling the queued up VLAN related
		  delayed work on link down events. This causes
		  multiple delayed work to be scheduled at the same time.

	   Change: Ensure that, at any given time, only one VLAN related
		   delayed work is scheduled. Also cancelling the VLAN
		   related delayed work on LINK DOWN.

bnx2fc 1.712.30.v[50,55].3 (Feb. 16, 2015)
====================================
	Enhancements
	------------
	1. BNX2FC: Added FDMI/FDMI2 support.

bnx2fc 1.712.30.v[50,55].2 (Feb. 16, 2015)
====================================
	Enhancements
	------------
	1. BNX2FC: Added initial IOCTL support for BNX2FC.

bnx2fc 1.712.30.v[50,55].1 (Jan. 12, 2015)
====================================
   Enhancements
   ------------
   1. Changed driver version from 712.10 to 712.30 for OEM project.

bnx2fc 1.712.10.v[50,55].3 (Dec. 16, 2014)
====================================
   Enhancements
   ------------
   1. Problem: CQ77127: In a IBM switch environment, HBA may not able to find
			the fabric using FIP VLAN Discovery.

      Cause: Driver initiates VLAN discovery, which is performed by libfcoe.
	     If the FCF does not support VLAN discovery, it would silently
	     discard the request. Thereby no fabric would be discovered.
	     If no VLANs are discovered, then all FCoE and FIP traffic
	     will use VLAN ID 1002.

      Change: Monitor VLAN Discovery and in case of failure, fallback
	      to default VLAN 1002. Keep on altering between them
	      until a fabric is found.

bnx2fc 1.712.10.v[50,55].2 (Nov. 24, 2014)
====================================
   Enhancements
   ------------
   1. Changes: Rebranded Changes.
   Fix
   ---
   1. Problem: CQ76639: Rebranding- Driver modules namespace field
			 shown "Broadcom" wording.

      Change:     Corrected the namespace.


bnx2fc 1.712.10.v[50,55].1 (Oct. 28, 2014)
====================================
   Enhancements
   ------------
   1. Changed driver version from 710.70 to 712.10 for OEM project.

bnx2fc 1.710.70.v[50,55].4 (Oct. 16, 2014)
====================================
   Enhancements
   ------------
   1. Rebrabded form Broadcom -> QLogic

bnx2fc 1.710.70.v[50,55].3 (Oct. 08, 2014)
====================================
   Fix
   ---
   1. Problem: CQ75785 - Underrun and overrun residue not propagated to midlayer.

      Cause: Regression: Incorrect underrun and overrun fcp-flags check which
	  causes driver not to populate the correct residue.

      Change: Corrected the check for underrun/overrun conditions.

bnx2fc 1.710.70.v[50,55].2 (Sep. 22, 2014)
====================================
   Enhancements
   ------------
   1.  Problem: CQ74825 - VMware Windows guests hang for 2+ minutes during FCoE toggle test

       Cause: The test case involves silently dropping IOs (and ABTS) on the 
              wire. When the internal command timeout expires (after 20 secs),
	      the driver issues an ABTS to recover the command. The ABTS
	      timeout is tied to the R_A_TOV (2 * R_A_TOV). The 3PAR storage
	      under test returns a R_A_TOV value of 120 secs, which causes the
              driver to wait for 240 secs before it sends an explicit logout,
	      and logs back into the target (for IOs to resume).
              The Windows VM under test seems to hang during part of this
	      recover process.

       Change: We provide a mechanism (module parameters) by which the default
               R_A_TOV value provided by the target could be overridden by the
	       user/administrator.

       Impact:  ESX FCoE only.

   2.  Problem: After installing the driver, the NIC interface associated with
                the FCoE functionality needs to be triggered for discovery. This
	        is done manually by executing a few commands on the ESX server.

       Cause: The bnx2fc is a dependent FCoE solution wherein the NIC interface
              is used for part of the slow path processing.

       Change: Carry a init script with the driver vib which will be executed
               automatically after the driver is deployed, which executes the
	       required commands on the ESX server.

       Impact:  ESX FCoE only.

   3.  Problem: CQ75568 - ESXi 5.1 PSOD during FCoE switch FC port toggle test

       Cause: Driver was not handling reference counts in the following sequence
              of events: (IO timed out -> SCSI ML kicks off an ABTS -> ABTS
	      timed out -> Cleanup request timeout out or took longer than
	      expected -> SCSI ML retries the EH on the original IO.

       Change: Correct the reference count handling.

       Internal Reference: CR-189.

       Impact:  ESX FCoE only.

   4. Problem: CQ75785 - LUNs are not visible for EMC V-PLEX storage.

      Cause: Driver is incorrectly parsing invalid data and passing on the information
             to the upper levels in the host stack. This is causing the host to not
	     discover VPLEX storage. For some of the SCSI commands (not the cmd with
	     SCSI opcode 0xef but following the cmd with SCSI opcode 0xef) when the
	     status frame is sent from VPLEX target, the SCSI status is Good and the FCP
	     Resid flags are not set (which is correct since the requested data length is
	     transferred) but the FCP_RESID is non zero. However, since the underrun and 
	     overrun bits are NOT set, the value in FCP_RESID is invalid and should not
	     be used by the initiator/host driver.

      Change: The driver has been modified to pass on the FCP_RESID to the SCSI
              mid-layer only when the under-run or the over-run flag is set.

	   Impact:  ESX FCoE only.

bnx2fc 1.710.70.v[50,55].1 (Aug. 28, 2014)
====================================
   Enhancements
   ------------
   1.Release for T7.10c.


bnx2fc 1.710.50.v[50,55].2 (Aug. 06, 2014)
====================================
   Fixes
   ------------
   1. Problem: PSOD/pcpu lockup observed on consecutive fcoe interface removal
               operation. esxcfg-fcoe -r vmhba<no>
      Change: It was observed that even after the fcoe interface was cleaned up,
	          we would receive responses from the network queue.
	          This was due to the fcoe mac filter still set to receive fcoe pkts.
	          Fix is to remove this filter before destroying fcoe interface.


bnx2fc 1.710.50.v[50,55].1 (Jul. 15, 2014)
====================================
   Enhancements
   ------------
   1.Release for T7.10b.
	
bnx2fc 1.710.35.v[50,55].4 (Jul. 03, 2014)
====================================
   Enhancements
   ------------
   1. Change: Rollback the Rebranding changes from Broadcom -> QLogic.

bnx2fc 1.710.35.v[50,55].3 (Jun. 25, 2014)
====================================
   Enhancements
   ------------
  1. Problem: Cont00074054- ESX 51 : Load of <cnic> failed , Load of <bnx2i> failed : missing required namespace.
     Change: Changed 7a in driver version string to 710

bnx2fc 1.7a.35.v[50,55].3 (Jun. 25, 2014)
====================================
   Enhancements
   ------------
   1. Change: Add additional debug info in proc.
   2. Change: Uniform debug statements for bnx2fc.
   3. Change: If a Middle path request is for an ELS command, populate transfer
		length with correct ELS payload size rather than the generic FCP.
   4. Change: Fix for PSOD while running MTU test case.

bnx2fc 1.7a.35.v[50,55].2 (Jun. 05, 2014)
====================================
   Enhancements
   ------------
   1. Change: Rebranded from Broadcom -> QLogic

bnx2fc 1.7a.34.v[50,55].2 (May 13, 2014)
====================================
   Enhancements
   ------------
   1. Change: Treat UFP differently from Multi Function SD.

bnx2fc 1.7a.33.v[50,55].1 (May 7, 2014)
====================================
   Fixes
   -----
   1. Problem: CQ73533 - Avoid spamming log messages (vlan discovery).

       Cause:  Certain debug logs were left under the default debug level.

       Change: Move the debug logs under the appropriate debug level.

       Impact: ESX 5.x FCoE only.

bnx2fc 1.7a.32.v[50,55].2 (May 1, 2014)
====================================
   Enhancements
   ------------
   1. Change: Sync'ed with the latest bnx2x-1.7a.35.v[50,55].1 header files
              and HSI

bnx2fc 1.7a.32.v[50,55].1 (Apr. 23, 2014)
====================================
   Fixes
   -----
   1.  Problem: (CQ73519) IOVP Failure on test
                StorageMgmt::HotAddRemoveTargetZone ESXi 5.0 ESX host.

       Cause:  The source MAC filter was mistakening triggered on SKB's built
               by the bnx2fc driver

       Change: Properly corrected the source MAC address on SKB's built by the
               bnx2fc driver

       Impact: ESX 5.x FCoE only.

bnx2fc 1.7a.31.v[50,55].1 (Apr. 10, 2014)
====================================
   Fixes
   -----
   1. Problem: PR1202513- PSOD seen in libfc/libfcoe when the switch is rebooted
               and stale packets reach the host.
      Change:  5 additional filters have been added to prevent unintended
               packets from reaching libfc/libfcoe

               1.  Filter out invalid packets
                   - eth->dest_mac[3] matches FC frame's D_ID
               2.  Filter out packets that are not from our connected target
                   - In FIP_ST_ENABLED mode
                   - eth->src_mac matches fcoe_ctlr->dest_addr
               3.  Filter out bad FPMA packets that doesn't match our src address
                   (ONLY if the FC frame's D_ID indicates its a packet for us)
                   - FC D_ID is addressed to our lport
                   - eth->dest_mac matches our lport's data_src_addr
               4. From CQ61013, drop incoming ABTS response that has both SEQ/EX
                  CTX set
               5.  Filter out packets where if d_id of the packet doesn't belong to
                   the device when one is already assigned a port_id, only then this
                    packet is dropped

      Impact:  ESX FCoE only.

   2. Problem: PR1179570: PSOD wrong command from SCSI-ML sent.

      Change:  Print the HBA's when inititating a TMF when the link is not
               ready.
      Impact:  ESX FCoE only.

   3.  Problem: ESX host experiences BUG_ON panic when running fabric switch
                reboot test.

       Cause:  In eh_abort handler, if an ABTS is already active due to
               internal command timer and the exchange cleanup request times
               out, the io_req will get freed up before the  scsi done call
               is made to the mid layer.  On a subsequent eh_abort call, the
               io_req could be invalid for the command context resulting in
               BUG_ON PSODs.

       Change: Don't decrement reference count twice on the io_req in the
               explicit LOGO path.  Also, return eh_abort with failure status
               if an explicit LOGO is still active on the command.

       Impact: ESX 5.x FCoE only.


bnx2fc 1.7a.30.v[50,55].1 (Feb. 25, 2014)
====================================
   Enhancements
   ------------
   1. Branched for T7.10a

bnx2fc 1.7a.05.v[50,55,60].1 (Feb. 12, 2014)
====================================
   Fixes
   -----
   1. Problem: Potential IOMMU problem (similar to CQ72607).
      Change:  Increase memory allocation for sq, cq, xfrq and confq by
               8 entries.

bnx2fc 1.7a.04.v[50,55,60].1 (Feb. 05, 2014)
====================================
   Fixes
   -----
   1. Problem: CQ72607 - Inbox 2015:  PSOD at Panic_NoSave during 
               target resets with I/O stress.
      Change:  Increase memory allocation for local completion queue (lcq).

bnx2fc 1.7a.03.v[50,55,60].2 (Jan. 30, 2014)
====================================
   Enhancements
   ------------
   1. Change: Sync'ed with the latest bnx2x-1.7a.07.v[50,55].1 header files
              and HSI

bnx2fc 1.7a.03.v[50,55,60].1 (Jan. 23, 2014)
====================================
   Fixes
   -----
   1. Problem: CQ72395 - Inbox 2015: PSOD at PanicInit@Kernnel 
               during FCoE Interface discovery.
      Change:  bnx2fc creates dummy PCI device to be bound to
               storage adapter as bnx2x is the primary owner of
               577xx/578xx PCI devices. So it is required to
               bind this dummy device and the real pci_dev to
               get proper DMA mappings
      Impact:  ESX6.0 FCoE only.

   Enhancements
   ------------
   1. Change: Sync'ed with the latest bnx2x-1.7a.06.v[50,55].2 header files
              and HSI


bnx2fc 1.7a.02.v[50,55].1 (Dec. 20, 2013)
====================================
   Enhancements
   ------------
   1. Corrected driver version to allow future upgrades to occur.

   2. Unify the error logging to use the new macro BNX2FC_ERR()

   3. Optimize code for non-error paths

bnx2fc 1.710.01.v[50,55].1 (Oct. 10, 2013)
====================================
   Enhancements
   ------------
   1. Branched for T7.10

bnx2fc 1.78.75.v[50,55].1 (Oct. 8, 2013)
====================================
   Enhancements
   ------------
   1. Branched for T7.8c

   2. Coverity cleanup. 

bnx2fc 1.78.51.v[50,55].1 (Sept. 26, 2013)
====================================
   Enhancements
   ------------
   1. Change:  Compiled against ESX 5.5 Build 1331820.

      Impact:  ESX5.5 only


bnx2fc 1.78.51.v[50,55].1 (Sept. 10, 2013)
====================================
   Fixes
   -----
   1. Problem: CQ70655 : PSOD seen in bnx2fc_fip_recv() during
               I/O with failover.  The CVL workaround assumed
               there was space in the SKB for the insertion
               of another CVL. 
      Change:  Check to see if there is enough space in the SKB
               if not then allocate a new SKB which will have
               enough space.
      Impact:  ESX FCoE only.

   2. Problem: CQ70825 : Host failed to boot with driver
               bundle version 50.78.52
      Change:  The offset for offload the doorbells have changed
               with bnx2x-1.78.52.  The bnx2fc driver has been
               updated to reflect the new offsets.

   Enhancements
   ------------
   1. Change:  Use the proper DMA API to map memory rather then 
               virt_to_phys() macro.

   2. Change:  Sync'ed with the latest cnic_if.h header files

   3. Change:  Compiled against ESX 5.5 Build 1302513.

      Impact:  ESX5.5 only


bnx2fc 1.78.50.v55.3 (Aug 27, 2013)
====================================
   Fixes
   -----
   1. Problem: (CQ70631) Update the VMWARE_ESX_DDK_VERSION with
               correct ESX5.5 version.

      Change:  In the bnx2fc.sc file the VMWARE_ESX_DDK_VERSION is
               now set correctly for ESX5.5

      Impact:  ESX only.


bnx2fc 1.78.50.v55.2 (Aug 13, 2013)
====================================
   Enhancements
   ------------
   1. Change:  Compiled against ESX 5.5 Build 1260114

      Impact:  ESX5.5 only

bnx2fc 1.78.50.v[50,55].1 (Aug 1, 2013)
====================================
   Enhancements
   ------------
   1. Branched to T7.8a

bnx2fc 1.78.15.v55.2 (July 02, 2013)
====================================
   Enhancements
   ------------
   1. Change:  Compiled against ESX 5.5 Build 1198610

      Impact:  ESX5.5 only

bnx2fc 1.78.16.v[50,55].1 (June 28, 2013)
====================================
   Fixes
   -----
   1. Problem: CQ69902 : CVL workaround implemented in CQ69589
               is not enabled by default.
      Change:  bnx2fc module parameter, bnx2fc_enable_cvl_fix, is
               now enabled by default.
      Impact:  ESX FCoE only.


bnx2fc 1.78.15.v[50,55].1 (June 20, 2013)
====================================
   Fixes
   -----
   1. Problem: CQ69589 : Mishandled FCF change resulting in IO
               failures
      Cause:   Because the CVL has no Vx_Port descriptor, VMware 
               ignores it; this is a known issue.  VMware
               continues to send FKAs while the VC module
               continues to send CVLs.  Ultimately, this issue
               results in IO failure.
      Change:  Fake the Vx_Port descriptor
      Impact:  ESX FCoE only.

   Enhancements
   ------------
   1. Change:  Compiled against ESX 5.5 Build 1168834

      Impact:  ESX5.5 only

   2. Change:  Mark the FCoE Queues's as allocated because the
               Linux CNA layer has already initialized the queues.
 

bnx2fc 1.78.14.v[50,55].1 (June 3, 2013)
====================================
   Fixes
   -----
   1. Problem: CQ69334 : Stateless Ready shown as false for Broadcom
               packages
      Cause:   Stateless ready flag was not properly marked in the
               descriptor.xml file used during build.
      Change:  Explicitly set the '<stateless-ready>' tag to true
      Impact:  ESX 5.5 FCoE only.

   2. Problem: CQ68398 : ESX host is unresponsive when running fabric
               switch reboot tesst
      Cause:   Storage locks were taking because bnx2fc never returned
               from TM callback
      Change:  Change from waiting indefinitely to timeout waiting
               when waiting for TM.  This will allow the vmkernel
               caller's thread from being hung.
      Impact:  ESX 5.x FCoE only.

   Enhancements
   ------------
   1. Change:  Compiled against ESX 5.5 Build 1158824

      Impact:  ESX5.5 only


bnx2fc 1.78.13.v[50,55].1 (May 24, 2013)
====================================
   1. Problem: Since bnx2fc didn't specify dma_boundary in its
               scsi_host_template (leave it as zero), a default
               4G dma_boundary was assigned by vmklinux.

     Cause:   The dma_boundary in Scsi_Host need to be correctly setup
              before calling into scsi_add_host.

     Change:  This change simply resets the dma_boundary in bnx2fc
              Scsi_Host to whatever supported by physical device.

     Impact:  All.

   Enhancements
   ------------
   1. Integrate changes from VMware Code review comments:
      a. set BNX2FC_FLAG_DESTROY_CMPL flag using set_bit()/clear_bit
      b. test BNX2FC_FLAG_DESTROY_CMPL bit in bnx2fc_show_rport()
      c. properly initialize BNX2FC_FLAG_DISABLE_FAILED bit
      d. Properly copy the bnx2fc version string when getting ULP stats.


bnx2fc 1.78.12.v[50,55].1 (May 13, 2013)
====================================
   Fixes
   -----
   1. Problem: CQ68924 : Stateless Ready shown as false for Broadcom
               packages
      Cause:   Stateless ready flag was not properly marked in the
               descriptor.xml file used during build.
      Change:  Explicitly set the '<stateless-ready>' tag to true
      Impact:  ESX 5.x FCoE only.


bnx2fc 1.78.11.v[50,55].1 (Apr 29, 2013)
====================================
   Fixes
   -----
   1. Problem: CQ68327 : vmnic drop packet hba messages
      Cause:   Print message was always logged to alert the user
      Change:  Convert print statement to bnx2fc_dbg() to log packets drop
	       notices due to VLAN ID check failure only when user enables
	       LOG_FRAME debug bit
      Impact:  ESX 5.x FCoE only.

   Enhancements
   ------------
   1. Change: Sync'ed with the latest bnx2x-1.78.17 header files
              and HSI

   2. Change:  Compiled against ESX 5.5 Build 1108855

      Impact:  ESX5.5 only


bnx2fc 1.78.10.v[50,55].2 (Apr. 12, 2013)
====================================
   Enhancements
   ------------
   1. Change:  Compiled against ESX 5.5 Build 1080575

      Impact:  ESX5.5 only

bnx2fc 1.78.10.v[50,55].1 (Feb. 25, 2013)
====================================
   Fixes
   -----
   1. Problem: eh_abort thread was not handling IO completion case
               correctly. 
      Cause:   If IO iscompleted while eh_abort is pending,
               driver will enter explicit logout and then try to issues
               CMD_CLEANUP. As the IO is already completed, FW will not
               responding to CMD_CLEANUP RAMROD which resulting in abort
               thread hanging indefinitely waiting for completion.
      Change:  Consider eh_abort operation successfully completed if IO
               completion is received during eh_abort processing
      Impact:  ESX 5.0/5.5 FCoE only.

   Enhancements
   ------------
   1. Change:  Compiled against ESX 5.5 Build 1023671

      Impact:  ESX5.5 only



bnx2fc 1.78.09.v[50,55].1 (Feb. 15, 2013)
====================================
   Fixes
   -----
   1. Problem: CQ67581:  bnx2fc failed to load
      Cause:   The json file used on ESX 5.0 is specific for ESX5.5
      Change:  Branch bnx2fc.json specifically for ESX5.0 and ESX5.5
      Impact:  ESX 5.0 FCoE only.

bnx2fc 1.78.08.v[50,55].1 (Feb. 13, 2013)
====================================
   Enhancements
   ------------
   1.   CQ66961: Unify FC symbollic name format across OS between adapters

bnx2fc 1.78.07.v50.1 (Feb. 4, 2013)
====================================
   Fixes
   -----
   1. Problem: CQ67581: bnx2fc doesn't automatically load.
      Cause:   The json file is reverted back to the original ESX5.0
               contents
      Change:  Modifed the json file back to the version found in 
               bnx2fc-1.78.04.v50.1


bnx2fc 1.78.06.v50.1 (Jan 31, 2013)
====================================
   Fixes
   -----
   1. Problem: CQ67150: PSOD is seen in bnx2fc_io.c::bnx2fc_initiate_tmf()
      Cause:   rport data is invalid another thread is invalidated the data
      Change:  Access tgt->port->hba only if target is offloaded.
               This is done to protect out-of-band LUN RESET and TARGET RESET
               being exercised while targeting is in the process of offloading

   2. Problem: bnx2fc doesn't automatically load.
      Cause:   The json from the previous change is for future version of
               ESX only
      Change:  Modifed the json file back to the version found in 
               bnx2fc-1.78.04.v50.1

   3. Problem: CQ67417: PSOD when calling bnx2fc_queuecommand()
      Cause:   The free request list is not being properly populated and cleaned 
      Change:  Properly protect the io_req reference count so that the the io_req
               object is destroy and remove from the list correctly


bnx2fc 1.78.05.v50.1 (Jan 14, 2013)
====================================
   Fixes
   -----
   1. Problem: CQ66877: bnx2fc is currently loaded unconditionally.
               This load also happens on machines with no bnx2x devices,
               thereby creating hypervisor bloat.
      Cause:   The json file always loads bnx2fc.
      Change:  Modifed the json file as requested by VMware

bnx2fc 1.78.04.v50.1 (Nov 30, 2012)
====================================
   Fixes
   -----
   1. Problem: CQ66629: "bnx2fc_fip_recv_: vmnic# calling 
               fcoe_ctlr_recv hba" consistently being reported in
               the vmkernel log file
      Cause:   This log message was set with the incorrect log level
      Change:  This message will only appear when the bnx2fc debug log
               bit, LOG_FRAME, is set

   2. Problem: CQ66354 : T7.2: QXCR1001250110: VMware guests hang performing
		IO to 3PAR storage
      Cause:   Task cleanup completion was not signaling the waiting EH ABORT
		thread and this caused it to hang forever
      Change:  Signal waiting thread when task cleanup completes

   Enhancements
   ------------
	Do not attempt task cleanup when connection disable request fails


bnx2fc 1.78.03.v50.1 (Nov 19, 2012)
====================================
   Fixes
   -----
   1. Problem: CQ66569: "bnx2fc_drop_packet_vlan( )" consistently being
               reported in log files
      Cause:   This log message was set with the incorrect log level
      Change:  This message will only appear when the bnx2fc debug log
               bit, LOG_FRAME, is set

   2. Problem: CQ66462 - PLOGI request zero MAC address on destination with
               FCoE uplink from FFA
      Cause:   Missing dupicate MAC descriptor in FIP FLOGI response
      Change:  In this scenario keep 'dest_addr' the same as FCF MAC

   Enhancements
   ------------
   1. Expand the bnx2fc_dbg() macro to include HBA, function and line number


bnx2fc 1.78.02.v50.1 (Oct 29, 2012)
====================================
   Fixes
   -----
   1. Problem: CQ66097 : Brownwood uses "fcoe" driver instead of "bnx2fc" driver
      Cause:   57840 PCI ID not listed in pci id table
      Change:  Add 57840 PCI ID's to relevant table so that bnx2fc can claim
	       the adapter

   2. Problem: CQ65984: No FCoE link after creating FCoE devices on Brownwood
      Cause:   Dupilcate of CQ66097
      Change:  See CQ66097 for change details

   Enhancements
   ------------
   1. Add Initial FFA support

   2. Sync'ed with the latest cnic_if.h header files
      Update cnic_eth_dev and cnic_dev versioning to T7.8


bnx2fc 1.78.01.v50.1 (Oct 18, 2012)
====================================
   Enhancements
   ------------
   1. Sync cnic_if.h header file

bnx2fc 1.78.00 (Sept 27, 2012)
====================================
   Enhancements
   ------------
   1. Branched to T7.8


bnx2fc 1.74.02 (Aug 20, 2012)
====================================
   Fixes
   -----
   1. Problem: CQ64732 : VMware BFS (boot from SAN) - boot port display
               wrong VLAN ID in sysfs
      Cause:   VLAN ID was displayed incorrecly because.  libfcoe is not
               updating 'fip' structure for BFS as there is no VLAN Discovery
      Change:  Properly use the correct VLAN ID value when dumping this
               data via sysfs.

   Enhancements
   ------------
   1. Sync cnic_if.h header file

bnx2fc 1.74.01 (July 16, 2012)
====================================
   Fixes
   -----
   1. Problem: CQ64128 : ESX 5.1 BFS:  Lost paths during I/O with failover
      Cause:   VLAN ID was not set when the session was offloaded
      Change:  Libfcoe obtains VLAN information from the fcoe boot tables
		instead of going through VLAN Discovery process. bnx2fc
		driver was expecting VLAN Discovery completion callback to
		note down the VLAN information. Fix is to keep using
		previously set VLAN ID during fcoe_create() call for
		FCoE boot adapters

   2. Problem: CQ64424 - ESX 5.1: Initiator fail to login to switch after
		VSAN suspend or fcoe disable/enable at switch
      Cause:   Duplicate of CQ64128
      Change:  Check CQ64128

   3. Problem: CQ64651 - Vmware BFS - I/O Stress failed in NOG configuraiton
      Cause:   Duplicate of CQ64128
      Change:  Check CQ64128

   4. Problem: CQ64461 - ESX BFS:  No initiator fabric login after
		disable/enable FCoE from Brocade
      Cause:   Duplicate of CQ64329, open() was not called for CNA netdev
      Change:  Check CQ64329


   Enhancements
   ------------
	None


bnx2fc 1.74.00.v50.2 (June 26, 2012)
====================================
   Enhancements
   ------------
   1. Sync cnic_if.h header file

bnx2fc 1.74.00 (May 30, 2012)
==========================
   Enhancements
   ------------
   1. Enable FCoE Boot

bnx2fc 1.72.51 (Apr 19, 2012)
=============================
   Fixes
   -----
   1. Problem: bnx2fc caused unresolved symbol
      Cause:   used wrong debug macro, BNX2FC_IO_DBG instead of bnx2fc_dbg
      Change:  updated code to use the right debug macro

   Enhancements
   ------------
	None


bnx2fc 1.72.50 (Apr 18, 2012)
=============================
   Fixes
   -----
   1. Problem: FLOGI not retried when receiving bad FLOGI responses.
      Cause:   Frame was being dropped in bnx2fc layer
      Change:  Allow upper layer to handle bad frames and retry FLOGI

   2. Problem: Struck I/O when task management times out.
      Cause:   I/O is not cleaned when the task management IO times out or
		a flush operation is performed while task management IO is
		pending
      Change:  With this change, as part of explicit logout, the IO is
		cleaned up.

   Enhancements
   ------------
	None


bnx2fc 1.72.11 (Mar. 30, 2012)
=============================
   Fixes
   -----
   1. Problem: CQ62401: NCSI Get FCoE Capabilities fields are
               incorrect
      Cause:   The driver was not properly setting the 
               capabilities field which is passed to NCSI
      Change:  Properly set values from the FCoE driver
               to the fcoe_capabilities strcuture
               passed to NCSI

bnx2fc 1.72.10 (Feb. 09, 2012)
==========================
   Enhancements
   ------------
   1. Rearrange structure fields and remove un used ones.

bnx2fc 1.72.9 (Jan. 27, 2012)
==========================
   Enhancements
   ------------
   1. Support FCoE Stats request from cnic - MFW.


bnx2fc 1.72.8 (Jan. 10, 2012)
=============================
   Fixes
   -----
   1. Problem: CQ60765: CNIC-ESX: VNTag: PSOD during error recovery
               test case
      Cause:   There is a deadlock in the vmkernel when calling
               vmklnx_cna_cleanup_queues() without initially
               calling vmklnx_cna_reinit_queues().  
      Change:  To prevent this deadlock, the bnx2fc driver will
               keep the state of the CNA rings and only call
               vmklnx_cna_cleanup_queues() if the CNA rings were
               initialized.

   Enhancements
   ------------
   1. Change: Redefined wmb() to use the proper memory barrier
              instruction


bnx2fc 1.72.7 (Jan. 04, 2012)
==========================
   Enhancements
   ------------
   1. Change: Update copyright headers to 2012

   2. Sync'ed cnic_if.h header file


bnx2fc 1.72.6 (December 20, 2011)
=============================
   Fixes
   -----
   1. Problem: CQ60212: Dropping a session when getting LOGO flooding 
               from a target
      Cause:   When a flood of unsolicited LOGOs are received by the 
               initiator, due to insuficient PLOGI retries, the session
               is dropped. 
      Change:  Increase max_rport_retry_count to 255 in lport config.

  Enhancements
  ============
    1. Code Cleanup in bnx2fc_initiate_tmf()


bnx2fc 1.72.5 (December 12, 2011)
=============================
  Enhancements
  ============
    1. Integrate FCoE boot support related patch from vmware team.

bnx2fc 1.72.4 (December 06, 2011)
=============================
   Fixes
   -----
   1. Problem: (CQ60043) Data Miscompare with request size 2k and smaller
      Cause:   T7.2 Firmware enhancements compatibility.
      Change:  Driver should initialize SGE contentin the RX only section. 

bnx2fc 1.72.3 (December 01, 2011)
=============================
  Enhancements
  ============
    1.  Cleanup bnx2fc_hba structure

bnx2fc 1.72.2 (November 17, 2011)
=============================
  Enhancements
  ============
    1.  Turn on VMK Memory pool.

bnx2fc 1.72.1 (November 14, 2011)
=============================
   Initial Branch

bnx2fc 1.0.1v (November 1, 2011)
=============================
   Fixes
   -----
   1. Problem: PSOD while doing shut/no shut on sanblaze targets.
      Cause:   mp_resp_bd allocation is not properly checked. This
               is causing null dereference at the time of usage.
      Change:  Change mp_req_bd to mp_resp_bd in the condition check. 
      Impact:  ESX FCoE only.

  Enhancements
  ============
    1.  Code cleanup: removed bringup related TODOs.

bnx2fc 1.0.1t (Oct. 19, 2011)
=============================

  Enhancements
  ============
    1.  Removed unnecessary files, bnx2fc_compat.[c,h] and fcoe.h


bnx2fc 1.0.1s (Sept 27, 2011)
=============================
   Fixes
   -----
   1. Problem: (CQ58879) Incorrect WWPN/WWNN Prefixes is seen with
               bnx2fc
      Cause:   The WWPN/WWNN from bnx2x extracted from shared memory
               were not stored by CNIC.
      Change:  WWPN/WWNN bnx2fc can access this information via the
               cnic_dev structure
      Impact:  ESX FCoE only.

   2. Problem: CQ58446 : ESX 5.0 FCoE: sysfs /proc/scsi/bnx2fc show NPIV enable,
		Need to disable NPIV support
      Cause:   Device advertises as NPIV capable to libfc which is then used in
		FLOGI PDU
      Change:  Do not advertise NPIV capabilities in 'lport->does_npiv'
      Impact:  ESX FCoE only.

  Enhancements
  ============
	None


bnx2fc 1.0.1r (Sept 13, 2011)
=============================
    1.  Problem : CQ58445 : ESX 5.0 FCoE : PSOD at FC_rport_Prli during random
		  packet drop with I/O
        Cause	: Bug in fc_remote_port_chkready() causes LLD to accept ELS/SCSI-IO
		  even before 'rport' is completely setup. Implement own function
		  based in Vmware's implementation of vmklnx_fc_remote_port_chkready()
        Changes	: Added function bnx2fc_remote_port_chkready()
	Impact	: ESX FCoE only

  Enhancements
  ============
	None


bnx2fc 1.0.1q (Sept 13, 2011)
=============================

  Enhancements
  ============
    1.  Update README.TXT in Caveat section 'iSCSI and FCoE offload
        coexistence (For ESX 5.0 and greater)'
    2.  Removed BCM57840 support


bnx2fc 1.0.1p (Aug 31, 2011)
=============================

   Enhancements
   ------------
   1. Change: Add eh_bus_reset functionality.


bnx2fc 1.0.1p (Aug 31, 2011)
=============================

   Enhancements
   ------------
   1. Change: Add eh_bus_reset functionality.

bnx2fc 1.0.1o (Aug 29, 2011)
=============================

   Enhancements
   ------------
   1. Change: Updated build files to compile on ESX 5.0 GA (build 469512)


bnx2fc 1.0.1n (Aug 24, 2011)
=============================
    1.  Problem	: CQ58006 : ESX 5.0 Initiator logs out from switch after staying
                  connected for around 24 hrs and dont logback in unless reboot
        Cause	: ESX only issue where the SKB was not properly dropped if the
                  packet had a VLAN not registered to the CNA device.
        Changes	: Properly free the SKB if the VLAN packet is to be dropped
	Impact	: ESX FCoE only

   Merge changes from Linux upstream patches:
   -------------------------------------------
        1. Problem: Race condition between CQ doorbell unmap and IO completion
                    path that arms the CQ which causes a NULL dereference.
    	   Change : Protect the ctx_base with cq_lock, wait for the cQ doorbell
                    to be successfully mapped before arming the CQ and do not
                    count unsolicited CQ completions for free_sqes.

   Enhancements
   ------------
   1. Change: Added VLAN packet drop statistics

bnx2fc 1.0.1m (Aug 18, 2011)
=============================
   Merge changes from Linux upstream patches:
   -------------------------------------------
        1. Change: Add 2.5G link speed reporting for NIC partitioned interfaces.

        2. Problem: scsi_dma_unmap() not invoked on IO completions. 
    	   Change : Do not set io_req->sc_cmd to NULL until bnx2fc_unmap_sg_list() 
                    is called to enable it to unmap the DMA mappings.

        3. Problem: Hold tgt->lock when calling cmd_release.
    	   Change : Add tgt_lock when calling cmd_release if init_mp_req() fails.
	
        4. Problem: Do not arm CQ when there are no CQEs.
    	   Change : Add free_cqes in bnx2fc_port to track outstanding CQEs.  

        5. Change : When there is a single BD for the entire data to be transmitted,
                    use the BD inside the SGL context and set the cached SGE indication
                    in the task context

        6. Problem: Missing KCQEs
    	   Change : _DESTROY_CMPL flag was never cleared, the driver does not wait for
                    firmware destroy completion. Clear the flag after the wait_event.
                 
bnx2fc 1.0.1l (Aug 18, 2011)
=============================
    1.  Problem	: CQ57674 : ESX 5.0 FCoE: Target reset initiated form the visor,
		  results in a LUN reset on the wire
        Cause	: ESX only issues eh_device_reset_handler() for both LUN RESET
		  and TARGET RESET. So driver has to consult sc_cmd->vmkflags to
		  identify which request was issued and based on the flags send
		  LUN RESET TMF Command or TARGET RESET command
        Changes	: Change eh_device_reset_handler() to check for sc_cmd->vmkflags
		  to identify the request and accordingly send LUN RESET TMF
		  Command or TARGET RESET command
	Impact	: 57712 ESX FCoE only

    2.  Problem	: CQ57705 : ESX5.0 FCoE: E3 in NPAR mode never sends VLAN Request.
        Cause	: MF PCI DID was not listed supported pci_device_id table
        Changes	: Added MF DID's to table
	Impact	: 57712 ESX FCoE only

    3.  Problem	: CQ57895 : ESX 5.0 FCoE: sysfs - bnx2fc - link_supported _speed
		  field is unknown
        Cause	: 'link_supported_speeds' is a bit field and not a integer value
        Changes	: handle 'link_supported_speeds' as bit field and accordingly
		  display all supported fields.
	Impact	: 57712 ESX FCoE only

    4.  Problem	: CQ57896 : ESX 5.0 FCoE" Typo Link_speed field in sysfs - bnx2fc
        Cause	: Typo
        Changes	: modified source code to rectify the typo
	Impact	: 57712 ESX FCoE only

   Enhancements
   ------------
   1. Change: Added versioning to the CNIC ULP structure to help futher
              prevent the mismatching and mixing of cnic/bnx2i/bnx2fc
              drivers.


bnx2fc 1.0.1k (Aug 05, 2011)
=============================

    1.  Problem	: CQ57629 : ELost FCoE interface after upgrade to driver 50.70.20
        Cause	: Incorrect cnic_if.h was used with the bnx2fc-1.0.1j label
        Changes	: Created a new label with the proper cnic_if.h file
	Impact	: 57712 ESX FCoE only


bnx2fc 1.0.1j (Aug 04, 2011)
=============================

    1.  Problem	: CQ57474 : ESX 5.0 FCoE: No VLAN request retry after changing
		  VLAN ID on Brocade
        Cause	: Brocade responded to FIP VLAN REQ with VID=4095 which has
		  special significance in ESX and a software bug in current
		  implementation of libfcoe is creating a deadlock. This issue
		  is tracked by PR# 747835
        Changes	: Drop FIP VLAN Notfication frame with VID=4095
	Impact	: 57712 ESX FCoE only

    2.  Problem	: CQ57247 - CNIC-ESX: PSOD removing FCoE hba in ESX5.0 RC on
		  OEM system
        Cause	: bnx2fc was wrongly using fcoe_port instead of bnx2fc_port.
		  Also there is no use 'fcoe' element in this structure,
		  so get rid of allocation and freeing of memory for 'fcoe'.
        Changes	: Do not use 'fcoe_port' and get rid of unused 'port->fcoe'
	Impact	: 57712 ESX FCoE only

    3.  Problem	: CQ57276 - ESX 5.0 FCoE: No restart Fabric Discovery after
		  droppping Discovery Advertisements
        Cause	: FCF refresh and re-discovery happens after 3 DA drops.
		  To make this happen consistently after 2 DA we need to adjust
		  aging calculation parameters within libfcoe
        Changes	: Documented the behavior under "Caveats" section in README.TXT
	Impact	: 57712 ESX FCoE only

    4.  Problem	: CQ56409 - ESX 5.0 FCoE:  Intiator periodically sends out
                  Discovery Solicitation after login is established
        Cause	: Due to no VLAN filtering, Initiator was responding to DA
	          arriving on different VLAN's that the one assigned during
                  VLAN discovery process
        Change:   Added the ability to drop VLAN packets which are not
                  registered to the CNA device.
	Impact	: 57712 ESX FCoE only

    5.  Problem	: Cont00057610 - ESX 5.0 FCoE: ScsiDevice I/O error messages
		  when running I/O
        Cause	: SQ size was configured as 256 with which Max number of
		  SCSI CMDS outstanding per target will be 96. In this particular
		  test I/O stress was run against 6-7 LUNS behind 1 single
		  target with 64 outstanding commands per target. So more often
		  SCSI-ML tried to queue more than 96 commands in which case
		  bnx2fc will return SCSI_MLQUEUE_HOST_BUSY. ESX SCSI-ML does
		  expect LLD to accept everything in queuecommand()
        Change:   Change SQ size to 1024 with which bnx2fc can accpet 384 SCSI
		  commands per target. Also increase MAX_XID to 2048 which will
		  allow each adapter to accept 1024 SCSI commands per HBA
	Impact	: 57712 ESX FCoE only

   Enhancements
   ------------
	None
 
bnx2fc 1.0.1i (July 21, 2011)
============================

    1.  Problem	: CQ56514 - ESX 5.0 FCoE: No FCoE interface link after long 
                  shut/no shut from switch port.
        Cause	: Netevent handler is not starting discovery due to link state
		  check returning not ok during netevent_up handling. 
        Changes	: Changed direct call event handler to workqueue to enable
		  link status polling with 3sec timeout.
	Impact	: 57712 ESX FCoE only

    2.  Problem	: CQ57259 - ESX 5.0 FCoE: Unable to allocate FCoE resources
        Cause	: bnx2fc was reusing the cid and cnic will not reuse the cid
		  till CFC_DELETE is completed.
        Changes	: Do not reuse the fcoe cid immediately as CFC_DELETE is issued
		  2-secs after CONN_TERM is completed. Side effect of reusing is
		  that once a session drops and reconnects, cnic will keep
		  failing FCOE_KWQE_OPCODE_OFFLOAD_CONN1 request until cnic
		  completes CFC_DELETE processing.
	Impact	: 57712 ESX FCoE only

    3.  Problem	: CQ56850 - ESX 5 FCoE T7.0: MTU change takes over 1 minute to
		  response
        Cause	: BNX2FC_FLAG_DESTROY_CMPL bit in hba->flags is not cleared.
		  So first MTU change completes instantaneously where as second
		  and subsequent ones causes issue in cnic and bnx2x because
		  bnx2fc does not wait for FCOE_KWQE_OPCODE_DESTROY KWQE compl.
		  This results in cnic not processing the last kcqe because by
		  then cnic would have cleared CNIC_F_CNIC_UP flags, this flag
		  is cleared immediately after bnx2fc returns from the cnic_stop
	Changes	: Properly handle hba->flags
	Impact	: 57712 ESX FCoE only

   Enhancements
   ------------
	None

bnx2fc 1.0.1h (July 15, 2011)
============================

    1.  Problem	: CQ56918 - ESX 5.0 FCoE: ABTS response after CVL
        Cause	: 2 issues, libfc is not dropping unsolicited ABTS eventhough
		  it doesn't support it and lack of VLAN filter caused tagged
		  frames to be passed up the stack before VLAN Disco completes
        Changes	: Unsoilicited ABTS BLS is dropped in bnx2fc receive routine
	Impact	: 57712 ESX CNA only

    2.  Problem	: CQ56899 - VMware: incorrect response to RLS frame
        Cause	: bnx2fc was not implementing get_lesb() API which forces libfc
		  to initialized stats to it's best of knowledge and set invalid
		  counters to '-1'
        Changes	: Implement get_lesb() API and set irrelevant counters to '0'
	Impact: 57712 ESX CNA only

    3.  Problem	: CQ56967 - ESX 5.0 FCoE: PSOD at bnx2fc_rport_event_handler@<none>+0x701
        Cause	: Session offload path where session resources are freed after
		  rport is logged off. This code path of logging off the rport
		  and reclaiming resources is executed only if we bailing out
		  on connection offload because of some error. This potentially
		  could lead to access rport->rdata after 'rport' memory is
		  freed. Also do not call bnx2fc_free_session_resc() when
		  bnx2fc_init_tgt() fails because by then tgt->cq_lock is not
		  yet initialized, bnx2fc_free_session_resc() could hang trying
		  to acquire tgt->cq_lock spinlock
        Changes	: Free session resources before logging off the 'rport'
	Impact	: 57712 ESX CNA only

    4.  Problem	: Cont00056942 - ESX5.0 FCoE: Host MAC address is all zeros on wire
        Cause	: Use FCoE/FIP MAC address instead of iSCSI MAC from cnic_dev
		  structure as FIP Controller MAC. This is important when device
		  is operating in NPAR mode and only 1 of iSCSI or FCoE feature
		  is enabled.
        Changes	: Use FCoE/FIP MAC address instead of previously picked iSCSI MAC
		  from cnic_dev structure
	Impact	: 57712 ESX CNA only

    5.  Problem	: Cont00057080 - ESX 5.0 FCoE: Not able to login to fabric
		  FIP VLAN ID unavailable
        Cause	: Use FCoE/FIP MAC address instead of iSCSI MAC from cnic_dev
		  structure as FIP Controller MAC. This is important when device
		  is operating in NPAR mode and only 1 of iSCSI or FCoE feature
		  is enabled.
        Changes	: Use FCoE/FIP MAC address instead of previously picked iSCSI MAC
		  from cnic_dev structure
	Impact	: 57712 ESX CNA only


   Enhancements
   ------------
	Converted not so relevant printk()'s to bnx2fc_dbg(). Also initialization code
	is modified to enumerate only FCoE capable 10G devices.


bnx2fc 1.0.1g (July 8, 2011)
============================
   Enhancements
   ------------
   1. Change: Changed static MTU value to set max fc frame size to 2048.

bnx2fc 1.0.1f (July 1, 2011)
============================
   Enhancements
   ------------
   1. Change: Added proc_info support to diaplay hba / lport 
             / shost / rport / scsi_cmd structures. 

bnx2fc 1.0.1e (June 29, 2011)
============================
   Enhancements
   ------------
   1. Change: Added JSON script to the VIB so that the bnx2fc will
              automatically load during system boot.

bnx2fc 1.0.1d (June 24, 2011)
============================
   Fixes:
   ------------
   1. Problem:  CQ56519 -  Repeated shut/no shut on the switch port causes PSOD.

      Change:   Removed unconditional waits in the discovery path to eliminate
                race conditions.

bnx2fc 1.0.1c (June 17, 2011)
============================
   Enhancements
   ------------
   1. Change: Implement Vmk_MemPool scheme for dma memory allocation.

bnx2fc 1.0.1b (June 11, 2011)
============================
   Enhancements
   ------------
   1. Change: Change FCoE L2 Ring (NetQ) reinit logic
