Project

General

Profile

Actions

Bug #968

closed

fct driver sets incorrect fc-ct revision

Added by thomas joy over 10 years ago. Updated over 9 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
Category:
kernel
Start date:
2011-04-27
Due date:
% Done:

100%

Estimated time:
Difficulty:
Medium
Tags:
Gerrit CR:

Description

I have been attempting to use openindiana as a fibre-channel target using comstar. When using fabric point-to-point with a brocade silkworm 3800 (larger version of the 3200) with latest firmware, connections can be flakey.

My initiator is a LP952, attempting to boot linux from SAN. The connection lasts long enough to load a bootloader, but returns a data error after that. This operation works perfectly on a point-to-point connection between the two HBAs, without using the switch.

I believe fct is passing an invalid CT revision to the switch, causing the instability.

I've found this message on the mailing list from Allen Andrews at Emulex:
http://mail.opensolaris.org/pipermail/storage-discuss/2010-January/007930.html

When COMSTAR issues CT requests to the switch it is now setting the CT Revision level in the request to 2. I believe it used to use revision level 1.

Also, I've tracked down a document from t10.org that seems authoritative in making the CT revision field obsolete. Note that the author states that the CT field must be set to 0x01.
ftp://ftp.t10.org/t11/document.05/05-053v1.pdf

Here's the relevant section of fct.h . As you can see, x_payload0 is set to 0x02, which I believe is incorrect. It should be 0x01.

retrieved from http://src.illumos.org/source/xref/illumos-opengrok/usr/src/uts/common/sys/fct.h

369 /*
370 * Fill CTIU preample
371 */
372 #ifdef lint
373 #define FCT_FILL_CTIU_PREAMPLE(x_payload, x_ctop) _NOTE(EMPTY)
374 #else
375 #define FCT_FILL_CTIU_PREAMPLE(x_payload, x_ctop) \
376 do { \
377 x_payload[0] = 0x02; \
378 x_payload[4] = 0xFC; \
379 x_payload[5] = 0x02; \
380 x_payload[8] = 0xFF & (x_ctop >> 8); \
381 x_payload[9] = 0xFF & (x_ctop); \
382 } while (0)
383 #endif
384
Actions

Also available in: Atom PDF