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.

SCSI Protocol Driver Error Log Detail Data

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 length

O - 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 applicable

R - 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)


FSCSI / FCP Error Sense Data templates