Overview
The IO Control Block (IOCB) is used by the device driver to send data and commands to the fibre channel adapter. These commands are used to send commands and data to the SAN (fabric (switch), an N_Port or a SCSI/IP target),

If an IOCB was rejected, the status code will give the reason that the command failed .

DETAIL SENSE DATA
Here below is a cut from the full error log sense template. Click here to see full error template.

AIX Version 5.3 and below

RRRR RRRR EEEE EEEE TTCC OOOO NNNN NNNN NNNN NNNN IIII IIII MMMM MMMM LLLL LLLL
AAAA AAAA BBBB BBBB DDDD DDDD FFFF FFFF GGGG GGGG HHHH HHHH JJJJ JJJJ KKKK KKKK
PPPP PPPP SS%% UUUU VVVV VVVV WWWW WWWW XXXX XXXX YYYY YYYY ZZZZ ZZZZ 2222 2222
3333 3333 4444 4444 QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ
QQQQ QQQQ SQCD
....continued...


AIX 6 and above:

hhhh hhhh EEEE EEEE TTCC vvvv NNNN NNNN NNNN NNNN IIII IIII MMMM MMMM LLLL LLLL
AAAA AAAA BBBB BBBB DDDD DDDD FFFF FFFF GGGG GGGG HHHH HHHH JJJJ JJJJ KKKK KKKK
PPPP PPPP SS%% UUUU VVVV VVVV WWWW WWWW XXXX XXXX YYYY YYYY ZZZZ ZZZZ 2222 2222
3333 3333 4444 4444 5555 5555 5555 RRRR 7777 7777 7777 7777 RRRR RRRR RRRR RRRR
OOOO RRRR
...finish row w/ RRRR.
..skip 5 rows RRRR Reserved for future use.
QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ SQCD QQQQ next 21 rows filled w/ QQQQ


The IOCB command and the completion status

The command field "CD" field contains the IOCB command sent to the adapter.
In same row, the command completion status "S" field contains the completion status
The command "CD" is not needed for problem determination, but here is the list of IOCB commands.

Completion
status "S"
What it means What to do
0x0 successful completion the IOCB completed successfully, no action required
0x1 FCP (SCSI) Error The target device is indicating an SCSI error. This is a target device issue, contact SAN AIX..
0x2 Stopped by Remote Port The target port has stopped the command this is a target device issue.
0x3 Local Reject (the adapter has rejected the cmd) Action depends on the local reject code
0x4 Remote Port sent a reject (P_RJT) The target port rejected the cmd. This is a target device issue, contact SAN AIX support
0x5 Fabric sent a reject (F_RJT) The switch has rejected the cmd. This a switch/SAN issue.
0x6 Remote Port Sent a P_BSY The target device is busy. This is a target device issue, contact SAN AIX support.
0x7 Remote N_Port sent a F_BSY The switch is busy. This is a switch/SAN issue.
0x8 Intermediate Response IOCB The target device has responded with a intermediate response.
0x9 Received a Link Service Reject (LS_RJT) The switch has sent a link service reject. This is a switch/SAN issue,.contact SAN AIX support or SAN Central
0xA Intermediate Response IOCB with Basic Reject (BA_RJT) The target device has responded with a intermediate reject response. This is a target device issue, contact SAN AIX support.



Destination ID for extended links service (ELS) command .
The TRGT of the IOCB may contain the destination ID if the adapter sent an extended link service command

DETAIL SENSE DATA
Here below is a cut from the full error log sense template. Click here to see full error template.

AIX Version 5.3 and below

RRRR RRRR EEEE EEEE TTCC OOOO NNNN NNNN NNNN NNNN IIII IIII MMMM MMMM LLLL LLLL
AAAA AAAA BBBB BBBB DDDD DDDD FFFF FFFF GGGG GGGG HHHH HHHH JJJJ JJJJ KKKK KKKK
PPPP PPPP SS%% UUUU VVVV VVVV WWWW WWWW XXXX XXXX YYYY YYYY ZZZZ ZZZZ 2222 2222
3333 3333 4444 4444 QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ TRGT TRGT
....


AIX 6 and above:

hhhh hhhhh EEEE EEEE TTCC vvvv NNNN NNNN NNNN NNNN IIII IIII MMMM MMMM LLLL LLLL
AAAA AAAA BBBB BBBB DDDD DDDD FFFF FFFF GGGG GGGG HHHH HHHH JJJJ JJJJ KKKK KKKK
PPPP PPPP SS%% UUUU VVVV VVVV WWWW WWWW XXXX XXXX YYYY YYYY ZZZZ ZZZZ 2222 2222
3333 3333 4444 4444 5555 5555 5555 RRRR 7777 7777 7777 7777 RRRR RRRR RRRR RRRR
OOOO RRRR
....
..skip 5 rows RRRR Reserved for future use.
QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ TRGT TRGT QQQQ QQQQ QQQQ QQQQ next 21 rows = QQQQ QQQQ


Well Known Port IDs
Destination ID What does this mean
0x 0000 0000 Unknown Port or Port ID not included
0x FBFF FF00 Time Server ID
0x FCFF FF00 Directory Server (DNS)
0x FDFF FF00 Fabric Controller
0x FEFF FF00 N_Port identifier for the Fabric F_Port
0x FFFF FF00 Broadcast address


If the IOCB command is a extend link service command, the word following the command block contains the extended link service command.

The word following the IOCB you are looking for is the (LSOC LSOC field, see the sense data below for reference.

AIX Version 5 and below


DETAIL SENSE DATA
Here below is a cut from the full error log sense template. Click here to see full error template.

AIX Version 5.3 and below

RRRR RRRR EEEE EEEE TTCC OOOO NNNN NNNN NNNN NNNN IIII IIII MMMM MMMM LLLL LLLL
AAAA AAAA BBBB BBBB DDDD DDDD FFFF FFFF GGGG GGGG HHHH HHHH JJJJ JJJJ KKKK KKKK
PPPP PPPP SS%% UUUU VVVV VVVV WWWW WWWW XXXX XXXX YYYY YYYY ZZZZ ZZZZ 2222 2222
3333 3333 4444 4444 QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ
QQQQ QQQQ QQQQ QQQQ LSOC LSOC
QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ
....


AIX 6 and above:

hhhh hhhh EEEE EEEE TTCC vvvv NNNN NNNN NNNN NNNN IIII IIII MMMM MMMM LLLL LLLL
AAAA AAAA BBBB BBBB DDDD DDDD FFFF FFFF GGGG GGGG HHHH HHHH JJJJ JJJJ KKKK KKKK
PPPP PPPP SS%% UUUU VVVV VVVV WWWW WWWW XXXX XXXX YYYY YYYY ZZZZ ZZZZ 2222 2222
3333 3333 4444 4444 5555 5555 5555 RRRR 7777 7777 7777 7777 RRRR RRRR RRRR RRRR
OOOO RRRR
....
..skip 5 rows RRRR Reserved for future use.
QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ
LSOC LSOC QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ QQQQ next 20 rows


Extended Link Service Opcode (see table below for opcode definition). Extended Link Service Opcode
Opcode
:LSOC LSPC
Name Definition
0x 0100 0000 LS_RJT Link Service Reject
0x 0200 000 LS_ACC Link Service Accept
0x 0300 0000 PLOGI N_Port_Login
0x 0400 0000 FLOGI F_Port (Fabric) Login
0x 0500 0000 LOGOUT Logout (N_Port or Fabric)
0x 0600 0000 ABTX Abort Exchange
0x 0700 0000 RCS Read Connection Status
0x 0800 0000 RES Read Exchange Status block
0x 0900 0000 RSS Read Sequence Status Block
0x 0A00 0000 RSI Request Sequence Initiative
0x 0B00 0000 ESTS Establish Streaming
0x 0C00 0000 ESTC Estimate Credit
0x 0D00 0000 ADVC Advise Credit
0x 0E00 0000 RTV Read Timeout Value
0x 0F00 0000 RLS Read Link Error Status Block
0x 1000 0000 ECHO Echo
0x 1100 0000 Test Test
0x 1200 0000 RRQ Reinstate Recovery Qualifier
0x 1300 0000 REC Read Concise Exchange status (In current standards, this is a reserved opcode
0x 2000 0000 PRLI Process Login
0x 2100 0000 PRLO Process Logout
0x 2200 0000 SCN State Change Notification
0x 2300 0000 TPLS test Process Login State
0x 5000 0000 PDISC Discover N_Port Service Parameters
0x 5100 0000 FDISC Discover F_Port Service Parameters
0x 5200 0000 ADISC Discover Address
0x 5300 0000 RSNC Registered State Change Notification
0x 5400 0000 FARP FC Address Resolution Request
0x 5500 0000 FARP FC Address Resolution Reply
0x 5800 0000 FAN Fabric Address Notification
0x 6100 0000 RSCN Registered State Change Notification
0x 6200 0000 SCR State Change Registration
0x 6300 0000 RNFT Report Node FC-4 Types
0x 7800 0000 RNID Request Node Identification Data
0x 7D00 0000 RPSC Report Port Speed Capabilities

IOCB Commands: this is informational only.

Command
"CD"
What it does
0x0C Queues receive header buffers
0x30
0xB0
Creates exchange resource indicator from a remote port indicator
0x31
0xB1
Transmits data in one fibre channel sequence
0x01
0x81
Received an incoming sequence
0x02
0x82
Create and transmit data in one fibre channel sequence
0x03
0x83
Create and transmit data in one fibre channel sequence
0x84 Create and transmit data in one fibre channel sequence
0x85 Create and transmit data in one fibre channel sequence
0x06
0x86
Queue buffers for a receive
0x87 Queue buffers for a receive
0x08
0x88
Continuation of a previous IOCB
0x89 Return queued buffers
0xC1 Return queued buffers with received sequence
0xC2 Creates, transmits payload and waits for a response
0xC3 Create and transmit data in one fibre channel sequence and wait for a response
0xC6 Queue for receive
0xC7 Queue for receive
0xC8 Continuation entry
0xC9 Return queued receive
0x8A Extended links Service (ELS) request
0x8B Extended links Service (ELS) request
0x8D Received Extended links Service (ELS) request
0xCD Received Extended links Service (ELS) request
0x95 Transmit Extended links Service (ELS) response
0x8C Abort exchange
0x0E Abort exchange
0x0F Abort exchange
0x10 Close exchange
0x11 Close exchange
0x12 Create exchange
0x13 Create exchange
0x17 Exchange aborted
0x18
0x98
Create write exchange
0x1A
0x9A
Create write exchange
0x1B
0x9B
Create read exchange
0x1C
0x9C
Create read exchange
0x1D
0x9D
Create exchange
0x1F
0x9F
Create FCP SCSI target exchange
0x21
0xA1
FCP SCSI target read exchange
0x23
0xA3
FCP target response
0xA5 Intermediate response
0x29 FCP target response
0x2B Exchange creation notification.

IO Control Block (IOCB)