FSCSI / FCP Error messages are built and logged with sense data captured
at the time AIX notes an error has occured.
AIX has expanded the error sense data template for version 6.1 and the
additional fields take into account new
feature and functionality of the HBA and from data returned from the SAN
and end devices.
To better understand the error message, the information in the sense data
must be decoded. A description of
pertainent fields in the sense data is given below.
Below is the description on error log entries made by the FC SCSI protocol driver. The left most column indicates the the error log template (for example an 8 means FSCSI_ERRID8 / FCP_ERR8). The next column is the description number found in the detail sense data .
Detail Data SENSE DATA
AIX Version 5.3 and below
RRRR RRRR AAAA AAAA BBBB BBBB CCRR RRRR RRRR YYYY LLLL LLLL LLLL LLLL FFFF FFFF
QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ GGGG GGGG OOOO OOOO OOOO OOOO EEEE EEEE
EEEE EEEE VVVV VVVV VVVV VVVV VVVV VVVV VVVV VVVV VVVV VVVV VVVV VVVV VVVV VVVV
VVVV VVVV TTTT TTTT TTTT TTTT TTTT TTTT TTTT TTTT TTTT TTTT TTTT TTTT TTTT TTTT
TTTT TTTT HHHH HHHH HHHH HHHH HHHH HHHH HHHH HHHH HHHH HHHH HHHH HHHH HHHH HHHH
HHHH HHHH HHHH HHHH HHHH HHHH HHHH HHHH HHHH HHHH DDDD DDDD DDDD DDDD DDDD DDDD
DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD IIII IIII
IIII IIII
AIX Version 6.1 and above
hhhh hhhh AAAA AAAA BBBB BBBB CCtt vvvv YYYY YYYY LLLL LLLL LLLL LLLL FFFF FFFF
QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ
QQQQ QQQQ QQQQ QQQQ
GGGG GGGG pppp pppp OOOO OOOO OOOO OOOO EEEE EEEE EEEE
EEEE ssss ssss ssss ssss
wwww wwww wwww wwww nnnn nnnn nnnn nnnn nnnn qqqq
qqqq qqqq rrrr rrrr rrrr rrrr
MMNN PPSS UUWW XXZZ 11RR 2222 3333 3333 4444
4444 5555 5555 6666 6666 RRRR RRRR
7777 7777 8899 aabb cccc cccc dddd dddd
eeee eeee ffgg iijj mmnn ooRR JJJJ uuuu
%%%% %%%% %%%% %%%%
&&&& &&&& **** **** :::: :::: xxxx yyyy IIII
IIII IIII IIII
VVVV VVVV VVVV VVVV VVVV VVVV VVVV VVVV VVVV VVVV VVVV VVVV
VVVV VVVV VVVV VVVV
VVVV VVVV VVVV VVVV VVVV VVVV VVVV VVVV VVVV VVVV VVVV
VVVV VVVV VVVV VVVV VVVV
VVVV VVVV VVVV VVVV VVVV VVVV VVVV VVVV VVVV VVVV
VVVV VVVV VVVV VVVV VVVV VVVV
VVVV VVVV VVVV VVVV VVVV VVVV VVVV VVVV VVVV
VVVV VVVV VVVV VVVV VVVV VVVV VVVV
TTTT TTTT TTTT TTTT TTTT TTTT TTTT TTTT
TTTT TTTT TTTT TTTT TTTT TTTT TTTT TTTT
TTTT TTTT TTTT TTTT TTTT TTTT TTTT
TTTT TTTT TTTT TTTT TTTT TTTT TTTT TTTT TTTT
TTTT TTTT TTTT TTTT TTTT TTTT
TTTT TTTT TTTT TTTT TTTT TTTT TTTT TTTT TTTT TTTT
TTTT TTTT TTTT TTTT TTTT
TTTT TTTT TTTT TTTT TTTT TTTT TTTT TTTT TTTT TTTT TTTT
HHHH HHHH HHHH HHHH
HHHH HHHH HHHH HHHH HHHH HHHH HHHH HHHH HHHH HHHH HHHH HHHH
HHHH HHHH HHHH
HHHH HHHH HHHH HHHH HHHH RRRR RRRR RRRR RRRR RRRR RRRR RRRR RRRR
DDDD DDDD
DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD
DDDD
DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD
DDDD
DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD
DDDD DDDD
DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD
DDDD DDDD DDDD
DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD
DDDD DDDD DDDD DDDD
DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD
DDDD DDDD DDDD DDDD DDDD
DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD
DDDD DDDD DDDD DDDD DDDD DDDD
DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD
DDDD DDDD DDDD DDDD DDDD DDDD DDDD
DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD DDDD
@@@@ @@@@ @@@@ @@@@ @@@@ @@@@ @@@@ @@@@ @@@@ @@@@ @@@@ @@@@ @@@@ @@@@ @@@@
@@@@
#### #### #### #### $$$$ $$$$ $$$$ $$$$ ++++ ++++ ---- ==== !!!! !!!! !!!!
!!!!
RRRR RRRR RRRR RRRR RRRR RRRR
RRRR RRRR RRRR RRRR RRRR RRRR RRRR RRRR RRRR RRRR
RRRR RRRR RRRR RRRR RRRR
RRRR RRRR RRRR RRRR RRRR RRRR RRRR RRRR RRRR RRRR RRRR
RRRR RRRR RRRR RRRR
RRRR RRRR RRRR RRRR RRRR RRRR RRRR RRRR RRRR RRRR RRRR RRRR
RRRR RRRR RRRR
RRRR RRRR RRRR RRRR RRRR RRRR RRRR RRRR RRRR RRRR RRRR RRRR RRRR
where:
h - Device driver (0x10 for Emulex)
A - This is a number determined by the SCSI protocol driver based on the error. (See Error Number Table to decode error values).B - This is the return code from either the adapter driver output routine , control function or cmd entry point. The possible values for this are defined in errno.h.
C - This value is how this adapter is connected with the possible values:
Value Description 0 Unknown how it is connected 1 This adapter is connected point to point 2 This adapter is connected to switch 3 This adapter is connected to an arbitrated loop Y - This is the status value of the control element returned by the adapter driver. This field is used to by the adapter driver to report errors to the protocol driver. The valid values are defined in efc.h and are:
Value
Description
0x1
The adapter driver is indicating a host I/O bus error
0x10
The adapter driver is indicating an adapter hardware failure
0x20
The adapter driver is indicating an adapter microcode failure
0xa0
The adapter has flushed this command. This is normally associated with an ABORT_MXRI64_CN IOCB issued by the adapter driver. I can also be associated with a RESET_RING mailbox operation done by the adapter driver to flush all IOCBs for a given IOCB ring.
t - This value is the type with the following possible values:
Value Description 0 - Neither IOCB nor command included 1 Command element logged - this includes IOCB we sent and reply IOCB. 2 efsc_errid10_info logged 3 efc_cmd is logged in the D fields 4 device driver data is logged in the B field v - Version of this detail data
L - Lun ID to which the command was sent
F - FCP payload control field, which has the following bit flag definitions
Bit Value Description Bit 0 indicates the FCP command is a write Bit 1 indicates the FCP command is a read Bit 9 indicates this is an Abort Task Set Bit 10 indicates this is a Clear Task Set Bit 13 indicates this is a Target Reset Bit 14 indicates this is a Clear ACA
Q - The SCSI command payload that failed or command payload at the head of the active queue.
G - Data length of SCSI command.
p - CDB lengthO - This value is the N Port ID of this adapter.
E - This value is the N Port ID of the device to which this command was sent.
w - Port Name of this target if applicable
n - Node Name of this target if applicableR - These values are reserved for future use.
V - This is the failed command IOCB if valid, otherwise it is the following:
For FCP_ERR10 errors, neither the dev_info, target_info, nor cmd_info are logged. There is some generic error info stored beginning in the VVVV fields above and the info can be of variable length. Starting in AIX 61B (6.1TL1) for efc_cmd data error logs this will contain the efc_cmd structure.
Word
Description of contents
0
Dev_info (ID/LUN) cancel_retry count
1
Dev_info (ID/LUN) qstate
2
Dev_info (ID/LUN) stop_pending flag
3
Dev_info (ID/LUN) dev_queuing flag
4
Dev_info (ID/LUN) need_relogin flag
5
Dev_info (ID/LUN) need_resume_set flag
6
Dev_info (ID/LUN) aca_error_state flag
7
Dev_info (ID/LUN) number of active commands for this ID/LUN
T - This is the reply IOCB if valid, otherwise it is the following: (See IOCB page)
Word
Description of contents
0
Abort Task Set command's state for this ID/LUN
1
Clear ACA command's state for this ID/LUN
2
Cancel element (ABORT_MXRI_CN) state for this ID/LUN
3
ABORT MXRI KEY for this ID/LUN
4
Cancel element 's (ABORT_MXRI_CN) parameter field for this ID/LUN.
5
Cancel element's (ABORT_MXRI_CN) status field of the IOCB for this ID/LUN.
6-7
Virtual address of this device's head_pending queue.
H - The main BDE list for this IOCB if valid, otherwise it is the following:
Byte
Description of contents
0
Target_info (ID) state
1
Target_info (ID) flags
2
Target_info (ID) cancel retry count
3
Target_info (ID) process login retry count
4
Target_info (ID) relogin retry count
5
Target_info (ID) device_flags field from PRLI
6
Target_info (ID) stop pending flag
7
FC class used for this Target_info (ID)
8
Target Reset Command State
9
PDISC command state
10
PLOGI command state
11
PRLI command state
12
Cancel (ABORT_MXRI_CN) command state
13
Target Cancel (ABORT_MXRI_CN) command state
D - This is used for the first 40 bytes of the FCP response IU if valid (i.e. the reply IOCB status field equals 1 and/or the fcp_status field of the FCP response IU is nonzero). Otherwise if this is for a valid command it is the following:
Bytes
Description of contents
0-7
Virtual address of command payload
8-15
Virtual address of response buffer
16-23
Virtual address of BDEs
24-25
Command's preempt count
26
Command's pending_retries count.
I - This is used for the address of the failing scsi_info structure.
L - Dev_info (ID/LUN) stop_pending flag
M - Dev_info (ID/LUN) stop_pending flag
N - Dev_info (ID/LUN) dev_queuing flag
P - Dev_info wwn_change flag
S - Dev_info (ID/LUN) need_resume_set flag
U - Dev_info (ID/LUN) aca_error_state flag
W - Abort Task Set command's state for this ID/LUN
X - Clear ACA command's state for this ID/LUN
Z - Lun Reset command state for this ID/LUN
1 - Cancel element (ABORT_MXRI_CN) state for this ID/LUN
2 - Dev_info (ID/LUN) cancel_retry count
3 - ABORT MXRI KEY for this ID/LUN
4 - Command pending retries
5 - Dev_info (ID/LUN) number of active commands for this ID/LUN
6 - Dev_info (ID/LUN) qstate
5 - Cancel element's (ABORT_MXRI_CN) parameter field for this ID/LUN
6 - Cancel element's (ABORT_MXRI_CN) status field of the IOCB for this ID/LUN
7 - Target_info (ID) device_flags field from PRLI
8 - Target_info (ID) stop pending flag
9 - Target_info (ID) start pending flag
a - Target_info (ID) dynamic tracking pending flag
b - Target_info (ID) fc class
c - Target_info (ID) RPI
d - Target_info (ID) previous RPI
e - Target_info (ID) dynamic tracking retry
f - Target Reset command State
g - Target Cancel (ABORT_MXRI_CN) command state
i - Target TG cancel (ABORT_MXRI_CN) command state
j - PDISC command state
m - PLOGI command state
n - Target Gen_req_op state
o - Target Move Login op state
J - Target_info (ID) concel retry count
u - Target PRLI retry_count
% - Number of started luns on this target
& - Number of SCIOLSTARTs active for this lun
* - Target_info (ID) state
: - Target_info (ID) flags
x - Target_info (ID) relogin retry count
y - scsi_info state
I - address of scsi_info structure
s - Alternate SCSI ID of this target
q - alternate (previous) world wide name (WWN) for this target
r - alternate (previous) node name for this target
@ - This is the payload buffer for when efc_cmds are logged. This was added in AIX 6.1.D (6.1.TL2)
# - If this error is associated with an NPIV, this contains the port name of that NPIV. This was added in AIX 6.1.D (6.1.TL2)
$ - If this error is associated with an NPIV, this contains the node name of that NPIV. This was added in AIX 6.1.D (6.1.TL2)
+ - If this error is associated with an NPIV, this contains the VPI (Virtual Port Indicator) of that NPIV This was added in AIX 6.1.D (6.1.TL2)
- - If this error is associated with an NPIV, this contains the state field in the associated initiator_info. This was added in AIX 6.1.D (6.1.TL2)
= - This contains current number of NPIVs (initiator_info) associated with the protocol device. This was added in AIX 6.1.D (6.1.TL2)
! - This contains the port name of the physical adapter. This was added in AIX 6.1.D (6.1.TL2)