08.11.2014 Views

Firmware for QLA405x iSCSI HBAs Release Notes - QLogic

Firmware for QLA405x iSCSI HBAs Release Notes - QLogic

Firmware for QLA405x iSCSI HBAs Release Notes - QLogic

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Firmware</strong> <strong>for</strong> <strong>QLA405x</strong> <strong>iSCSI</strong> <strong>HBAs</strong><br />

<strong>Firmware</strong> Version: 2.0.0.62<br />

Supported <strong>HBAs</strong>: QLA4050, QLA4050C, QLA4052C<br />

1. Overview<br />

2. General <strong>Notes</strong><br />

3. Changes and Fixes<br />

4. Known Issues<br />

5. Trademarks<br />

6. Notices<br />

7. Additional In<strong>for</strong>mation<br />

8. Contacting Support<br />

Table of Contents<br />

1. Overview<br />

This document covers changes implemented between version 2.0.0.7 and 2.0.0.62 of the ISP4022 firmware<br />

that supports the QLA4050, QLA4050C, and QLA4052C <strong>HBAs</strong>.<br />

2. General <strong>Notes</strong><br />

●<br />

●<br />

<strong>QLogic</strong> HBA drivers currently support up to 64 targets.<br />

Configuring <strong>iSCSI</strong> in strict mode will en<strong>for</strong>ce <strong>iSCSI</strong> RFC compliance.<br />

3. Changes and Fixes<br />

Between Versions 02.00.00.61 and 02.00.00.62<br />

●<br />

Initiator only. Workaround <strong>for</strong> Solaris driver <strong>for</strong> future <strong>QLogic</strong> initiator HBA management software<br />

enhancements to SendTargets discovery.<br />

Between Versions 02.00.00.45 and 02.00.00.61<br />

●<br />

Initiator only. Added firmware support <strong>for</strong> future <strong>QLogic</strong> initiator HBA management software<br />

enhancements to SendTargets discovery.<br />

●<br />

For the <strong>QLogic</strong> initiator <strong>HBAs</strong>, added support to reassemble Login and Text PDUs with the continue<br />

flag set. The reassembly does not apply to passthru IOCBs, which the host must reassemble.<br />

Changed discovery sessions to advertise a 16K or smaller MaxRecvDataSegmentLength. Maximum<br />

total byte count when reassembling continuation PDUs is 64K.<br />

<strong>Firmware</strong> <strong>for</strong> <strong>QLA405x</strong> <strong>iSCSI</strong> <strong>HBAs</strong> <strong>Release</strong> <strong>Notes</strong> 1 of 5


●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

Target only. Fixed a problem with received PDU counts in target connection mode <strong>for</strong> Login, Text,<br />

Logout, and Task Management Request PDUs received with the Immediate flag set.<br />

For the <strong>QLogic</strong> initiator <strong>HBAs</strong>, fixed parsing problem with large Text PDUs, such as SendTargets<br />

responses.<br />

Initiator only. Changed default ISID value <strong>for</strong> DDB Entries, so each port has a unique default ISID<br />

value, based on the MAC address. Added code to upgrade existing DDBs that were configured with the<br />

old default ISID, to use the new default ISID instead. DDBs with non-Default ISID values are<br />

unchanged. The new Default ISID has the OUI <strong>for</strong>mat, with the <strong>QLogic</strong> OUI, and a 24-bit qualifier<br />

whose least significant 21 bits match those in the port's MAC address, and most significant 3 bits are<br />

reserved <strong>for</strong> MPIO.<br />

Removed previous workaround <strong>for</strong> fiber link negotiation issue because the workaround caused link<br />

issues.<br />

Dropped polling timer from 100ms to 25ms in the firmware to catch retransmission scenarios which<br />

need to be transitioned into New Reno.<br />

The ISP40xx previously supported configuring DataPDUInOrder and DataSequenceInOrder. The<br />

default configuration is No <strong>for</strong> both.<br />

❍ With DataPDUInOrder, No permits the data PDUs within sequences to be in any order. Yes requires<br />

the data PDUs within sequences to be at continuously increasing addresses; it <strong>for</strong>bids overlays.<br />

❍ With DataSequenceInOrder, No indicates that Data Sequences (a sequence of Data-In or Data-Out<br />

PDUs that end with F bit set to 1) may be transferred in any order. Yes requires the data<br />

sequences to be transferred using continuously non-decreasing sequence offsets.<br />

Prior to this fix, if the ISP40xx received data in any order, with non-increasing addresses or overlays,<br />

the data would not be placed correctly into host memory.<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

To fix this problem, changed the firmware to: (1) always set the firmware configuration to Yes <strong>for</strong><br />

DataPDUInOrder and DataSequenceInOrder (regardless of what the driver sets these values to via<br />

the Initialize <strong>Firmware</strong> mailbox command 0060h, Set Device Database mailbox command 0063h, or<br />

Flash) and (2) detect any out-of-order data PDUs and fail the corresponding CTIO Type 3 IOCB or<br />

Command Type 3 IOCB back to the driver with a status error 0036h (PDU out of order).<br />

Initiator only. <strong>Firmware</strong> was falsely generating an 0x8002 ASSERT when parsing a large SendTargets<br />

response. This problem can occur during the parsing of a large Text PDU, such as a large<br />

SendTargets response, which the firmware loads into a chain of multiple internal buffers. The<br />

problem occurred after copying the final key=value from the last buffer in the chain. The firmware<br />

freed the buffer and set its pointer to NULL, but then mistakenly attempted to validate some of the<br />

fields in the buffer header using the NULL pointer. This fix modified the firmware to not make any<br />

assertions after the buffer pointer has been set to NULL. The ASSERTs should only be per<strong>for</strong>med on<br />

active buffers.<br />

Fixed an issue where SYN retransmit timers occurred too frequently. This issue was introduced in build<br />

2.0.0.38 with the fix <strong>for</strong> ER46569.<br />

Fixed a potential case that retained a buffer in target connection mode when the target driver closes a<br />

new connection immediately after receiving an ATIO6 (<strong>for</strong> login command) and posting a CTIO6 (to<br />

retrieve the login payload). This problem occurred while attempting to generate 128 simultaneous<br />

logins with the sequence described above. In this case, the firmware stopped sending the<br />

Connection Closed AEN indicating connection closure.<br />

Removed iqBufStats flag <strong>for</strong> pendingRP, and changed code to check RP Count against the threshold<br />

instead of checking the flag.<br />

Fixed case where iscsi keepalive (nopin) timer wasn't getting reset when receiving a tcp-ack <strong>for</strong> a<br />

datain pdu or scsi response pdu in target mode.<br />

Near simultaneous ping requests on both ports exposed a timing window that prevented one of the<br />

requests from completing. This fix causes the second request to return with a 0x4005 error since only<br />

one request is allowed to be outstanding at a time.<br />

Fixed a problem where a 0x4002 completion occurred on a mailbox command IOCB. This fix cleans up<br />

semaphore handling between the request queue handler and the mailbox handler.<br />

<strong>Firmware</strong> <strong>for</strong> <strong>QLA405x</strong> <strong>iSCSI</strong> <strong>HBAs</strong> <strong>Release</strong> <strong>Notes</strong> 2 of 5


●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

Fixed race condition in session mode where slowpath inbound PDUs (<strong>for</strong> example, NOP-outs,<br />

TaskMgmtCmds, and TextCmds) may get processed out of order, causing the firmware to drop the<br />

PDU because the cmdSN of the inbound PDU does not match the expCmdSN. Also fixed case (caused by<br />

the above fix) where the firmware rejected a taskmgmt command by sending an <strong>iSCSI</strong> Reject PDU.<br />

Fixed an issue where an initiator driver was getting transport errors and/or mailbox timeouts when<br />

using host DSD lists due to firmware running out of internal RP structures. Modified firmware to preallocate<br />

continuation RPs <strong>for</strong> host DSD lists. The RPs are pre-allocated when receiving a Cmd Type3,<br />

CTIO3 with host DSD lists (instead of Continuation IOCBs) or a Passthru Type 1 IOCB from the host.<br />

Initiator abortTask response may contain invalid mbox[1] value, causing the driver to misinterpret<br />

mbox[2] and [3] as maxCmdSn and expCmdSn values.<br />

If target session mode receives a taskmgmt command with the immediate flag set in the PDU header,<br />

the firmware does not set the immediate bit in the ImmediateNotifyAck IOCB posted to the target<br />

driver.<br />

Initiator posting taskmgmt with immed.flag set may queue up the command <strong>for</strong>ever and eventually<br />

timeout. The change in 2.0.0.52 is a supplement to the 2.0.0.51 change. This change guarantees that<br />

taskmgmt mailbox commands are sent in the same order as they are queued to the SCSI Request<br />

Queue (when sent via mailbox IOCBs).<br />

If we get a NULL local ncb on a create, load the NCB via the hash parameters <strong>for</strong> debugging.<br />

Fixed an issue with improper results <strong>for</strong> ping command.<br />

● Fixed an issue where the firmware hit an assert due to running out of buffers. This occurred in a<br />

stress test environment when the initiator task had a lot of things queued up, which blocked other<br />

tasks from running. The fix frees up the CPU in this scenario to allow other tasks to run on the<br />

available resources.<br />

● Fixed an issue that occurred when running I/Os between 2 ports and removing the cable <strong>for</strong> 5<br />

seconds, then plugging it back in. The driver received a Status (Entry Type 3) IOCB with a completed<br />

handle and no command (Entry Type 0x19) with that handle currently outstanding to firmware. A<br />

mailbox IOCB completed incorrectly to the host as a status type 0 response, in handling a TKM<br />

mailbox IOCB.<br />

● Modified Flash Write mailbox command to allow up to 512KB when writing BIOS section (instead of<br />

128KB previously).<br />

● Fixed a return an error that occurred if the host issues a second ping mailbox command, while the<br />

first ping request is still outstanding.<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

Fixed an issue with Marvell Phy where the firmware was not properly negotiating to half duplex mode.<br />

Cleaned up <strong>for</strong> ER46278 fixed in revision 2.0.0.32. Changed logic that could have given a false<br />

positive.<br />

Fixed an issue where the firmware stopped responding to the host after the ASIC received immediate<br />

data which was not in a multiple of 4-byte lengths.<br />

Fixed a problem introduced in build 2.0.0.47 with the fix <strong>for</strong> ER48078. The fix caused the Set Device<br />

Database mailbox command to return a bad status in certain cases.<br />

ATIO3 could have been posted to wrong host function in SNACK and error cases (<strong>for</strong> example, data<br />

digest error or payload too large).<br />

When DHCP server was unreachable, DHCP was failing at the rebinding phase resulting in lease lost.<br />

Added intermediate completion option to ping. This will allow the ping mailbox command to return<br />

immediately rather than waiting <strong>for</strong> a ping response.<br />

Fixed AEN 8002 in target connection mode, which can occur if the target driver is in the process of<br />

logging in the iscsi session (when the connection is up, but not logged in yet), and driver issues a<br />

connection close mailbox command (0x56) to send a TCP-RST, followed by issuing another connection<br />

close mailbox command (0x56) to send a FIN.<br />

Handle mal-<strong>for</strong>med tcp options (with an invalid TCP Option length of 0 or a length larger than the<br />

overall frame) on TCP SYN's.<br />

Enabled Handle AHS spanning more than 64 bytes when digests.<br />

FreeDDB mailbox command outgoing mailbox 4 register should return connState, not deviceState.<br />

<strong>Firmware</strong> <strong>for</strong> <strong>QLA405x</strong> <strong>iSCSI</strong> <strong>HBAs</strong> <strong>Release</strong> <strong>Notes</strong> 3 of 5


Between Versions 2.0.0.19 and 2.0.0.45<br />

●<br />

●<br />

●<br />

Enabled target and initiator <strong>iSCSI</strong> firmware tracing <strong>for</strong> field debugging purposes.<br />

Changed code to preserve the VLAN when receiving ARP request.<br />

Changed debug text in the IOCB to better indicate an IOCBs source (affects DEBUG firmware only).<br />

● With TCP timestamps disabled, improved per<strong>for</strong>mance on connections that experience significant<br />

packet loss on the network.<br />

● Added support <strong>for</strong> booting over <strong>iSCSI</strong> using DHCP.<br />

● Fixed a system error that could occur after receiving an unsolicited (or late) ping reply at the same<br />

time the HBA was in the process of sending a ping request.<br />

● Created a workaround <strong>for</strong> fiber link auto negotiation issues that occurred with certain optical<br />

switches. Previously, some switches would not link properly to the HBA. The HBA would show a link,<br />

but the switch would not.<br />

● Fixed a problem where the initiator was not responding correctly to irrelevant <strong>iSCSI</strong> keys received<br />

during discovery session login.<br />

● Fixed a system error that occurred when the execution throttle was changed from 64 to 32 in the GUI.<br />

● Added improved TCP retransmission handling when the remote node drops frames.<br />

● Fixed a system error condition that occurred when DHCP lost its lease and then re-acquired another IP<br />

address.<br />

● Fixed a per<strong>for</strong>mance issue where issuing ping requests which timeout could affect <strong>iSCSI</strong> per<strong>for</strong>mance.<br />

● Fixed a system error that occurred under certain situations when data queuing up in the firmware<br />

because the <strong>iSCSI</strong> command window was closing on the other end.<br />

● Detected a potential DMA malfunction due to an ASIC errata where the PCI power state changed from<br />

D3 to D0 in the middle of a PCI-X outstanding split transaction.<br />

● Fixed an issue where VLAN tagged multicast MAC packets were not <strong>for</strong>warding to the network (NIC)<br />

driver if the VLAN tag differed from the VLAN tag configured <strong>for</strong> <strong>iSCSI</strong>.<br />

Between Versions 02.0.0.7 and 2.0.0.19<br />

● Fixed a denial of service test case when the following occurred:<br />

❍ Pings were sent to the <strong>QLA405x</strong> MAC address.<br />

❍ The IP address was not <strong>for</strong> the <strong>QLA405x</strong>.<br />

❍ A network driver was not installed <strong>for</strong> the <strong>QLA405x</strong>.<br />

Previously, this case could eventually cause the HBA to reset.<br />

● Fixed an issue where the <strong>iSCSI</strong> data bytes received count was not being properly incremented.<br />

● Fixed problem where discovered targets were inheriting some values (<strong>for</strong> example, MaxBurstLength,<br />

FirstBurstLength, InitialR2T, ImmediateData, DataSequenceInOrder and DataPDUInOrder)<br />

incorrectly.<br />

● Fixed a case where I/O timeouts could occur under heavy stress testing running traffic on both ports.<br />

4. Known Issues<br />

None<br />

5. Trademarks<br />

<strong>QLogic</strong>, the <strong>QLogic</strong> logo, QLA, SANsurfer, and SANblade are registered trademarks of <strong>QLogic</strong> Corporation.<br />

SANtrack is a trademark of <strong>QLogic</strong> Corporation.<br />

Windows is a registered trademark of Microsoft Corporation.<br />

SANavigator is a registered trademark of McData Corporation.<br />

Silkworm is a registered trademark of Brocade Communications Systems Inc.<br />

All other brand and product names are trademarks or registered trademarks of their respective owners.<br />

<strong>Firmware</strong> <strong>for</strong> <strong>QLA405x</strong> <strong>iSCSI</strong> <strong>HBAs</strong> <strong>Release</strong> <strong>Notes</strong> 4 of 5


6. Notices<br />

In<strong>for</strong>mation furnished in this document is believed to be accurate and reliable. However, <strong>QLogic</strong><br />

Corporation assumes no responsibility <strong>for</strong> its use, nor <strong>for</strong> any infringements of patents or other rights of<br />

third parties which may result from its use. <strong>QLogic</strong> Corporation reserves the right to change product<br />

specifications at any time without notice. Applications described in this document <strong>for</strong> any of these products<br />

are only <strong>for</strong> illustrative purposes. <strong>QLogic</strong> Corporation makes no representation nor warranty that such<br />

applications are suitable <strong>for</strong> the specified use without further testing or modification. <strong>QLogic</strong> Corporation<br />

assumes no responsibility <strong>for</strong> any errors that may appear in this document.<br />

7. Additional In<strong>for</strong>mation<br />

None<br />

8. Contacting Support<br />

Please feel free to contact your <strong>QLogic</strong> approved reseller or <strong>QLogic</strong> Technical Support at any phase of<br />

integration <strong>for</strong> assistance. <strong>QLogic</strong> Technical Support can be reached by the following methods:<br />

Web: http://support.qlogic.com<br />

North America Contact In<strong>for</strong>mation<br />

Email: support@qlogic.com<br />

Phone: (952) 932-4040<br />

Support contact in<strong>for</strong>mation <strong>for</strong> other regions of the world is available at the <strong>QLogic</strong> website:<br />

http://support.qlogic.com<br />

Go to Top<br />

© Copyright 2007. All rights reserved worldwide. <strong>QLogic</strong>, the <strong>QLogic</strong> logo, and the Powered by <strong>QLogic</strong> logo are<br />

registered trademarks of <strong>QLogic</strong> Corporation. All other brand and product names are trademarks or registered<br />

trademarks of their respective owners.<br />

<strong>Firmware</strong> <strong>for</strong> <strong>QLA405x</strong> <strong>iSCSI</strong> <strong>HBAs</strong> <strong>Release</strong> <strong>Notes</strong> 5 of 5

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!