1*d14abf15SRobert Mustacchi #ifndef __57XX_ISCSI_RFC_CONSTANTS_H_
2*d14abf15SRobert Mustacchi #define __57XX_ISCSI_RFC_CONSTANTS_H_
3*d14abf15SRobert Mustacchi 
4*d14abf15SRobert Mustacchi /**
5*d14abf15SRobert Mustacchi * This file defines SCSI/iSCSI RFC constants
6*d14abf15SRobert Mustacchi */
7*d14abf15SRobert Mustacchi 
8*d14abf15SRobert Mustacchi /* iSCSI request op codes */
9*d14abf15SRobert Mustacchi #define ISCSI_OPCODE_NOP_OUT        (0 | 0x40)
10*d14abf15SRobert Mustacchi #define ISCSI_OPCODE_SCSI_CMD       (1)
11*d14abf15SRobert Mustacchi #define ISCSI_OPCODE_TMF_REQUEST    (2 | 0x40)
12*d14abf15SRobert Mustacchi #define ISCSI_OPCODE_LOGIN_REQUEST  (3 | 0x40)
13*d14abf15SRobert Mustacchi #define ISCSI_OPCODE_TEXT_REQUEST   (4 | 0x40)
14*d14abf15SRobert Mustacchi #define ISCSI_OPCODE_DATA_OUT       (5)
15*d14abf15SRobert Mustacchi #define ISCSI_OPCODE_LOGOUT_REQUEST (6 | 0x00)
16*d14abf15SRobert Mustacchi 
17*d14abf15SRobert Mustacchi /* iSCSI response/messages op codes */
18*d14abf15SRobert Mustacchi #define ISCSI_OPCODE_NOP_IN             (0x20)
19*d14abf15SRobert Mustacchi #define ISCSI_OPCODE_SCSI_RESPONSE      (0x21)
20*d14abf15SRobert Mustacchi #define ISCSI_OPCODE_TMF_RESPONSE       (0x22)
21*d14abf15SRobert Mustacchi #define ISCSI_OPCODE_LOGIN_RESPONSE     (0x23)
22*d14abf15SRobert Mustacchi #define ISCSI_OPCODE_TEXT_RESPONSE      (0x24)
23*d14abf15SRobert Mustacchi #define ISCSI_OPCODE_DATA_IN            (0x25)
24*d14abf15SRobert Mustacchi #define ISCSI_OPCODE_LOGOUT_RESPONSE    (0x26)
25*d14abf15SRobert Mustacchi #define ISCSI_OPCODE_R2T                (0x31)
26*d14abf15SRobert Mustacchi #define ISCSI_OPCODE_ASYNC_MSG          (0x32)
27*d14abf15SRobert Mustacchi #define ISCSI_OPCODE_REJECT             (0x3f)
28*d14abf15SRobert Mustacchi 
29*d14abf15SRobert Mustacchi /* iSCSI stages */
30*d14abf15SRobert Mustacchi #define ISCSI_STAGE_SECURITY_NEGOTIATION            (0)
31*d14abf15SRobert Mustacchi #define ISCSI_STAGE_LOGIN_OPERATIONAL_NEGOTIATION   (1)
32*d14abf15SRobert Mustacchi #define ISCSI_STAGE_FULL_FEATURE_PHASE              (3)
33*d14abf15SRobert Mustacchi 
34*d14abf15SRobert Mustacchi /* SCSI command response codes */
35*d14abf15SRobert Mustacchi #define ISCSI_SCSI_CMD_RESPONSE_CMD_COMPLETED   (0x00)
36*d14abf15SRobert Mustacchi #define ISCSI_SCSI_CMD_RESPONSE_TARGET_FAILURE  (0x01)
37*d14abf15SRobert Mustacchi 
38*d14abf15SRobert Mustacchi /* SCSI command status codes */
39*d14abf15SRobert Mustacchi #define ISCSI_SCSI_CMD_STATUS_GOOD              (0x00)
40*d14abf15SRobert Mustacchi #define ISCSI_SCSI_CMD_STATUS_CHECK_CONDITION   (0x02)
41*d14abf15SRobert Mustacchi #define ISCSI_SCSI_CMD_STATUS_INTERMIDIATE      (0x10)
42*d14abf15SRobert Mustacchi #define ISCSI_SCSI_CMD_STATUS_ACA_ACTIVE		(0x30)
43*d14abf15SRobert Mustacchi 
44*d14abf15SRobert Mustacchi /* TMF codes */
45*d14abf15SRobert Mustacchi #define ISCSI_TMF_ABORT_TASK            (1)
46*d14abf15SRobert Mustacchi #define ISCSI_TMF_LOGICAL_UNIT_RESET    (5)
47*d14abf15SRobert Mustacchi #define ISCSI_TMF_FUNCTION_MASK         (0x7F)
48*d14abf15SRobert Mustacchi 
49*d14abf15SRobert Mustacchi /* TMF response codes */
50*d14abf15SRobert Mustacchi #define ISCSI_TMF_RESPONSE_FUNCTION_COMPLETE                (0x00)
51*d14abf15SRobert Mustacchi #define ISCSI_TMF_RESPONSE_TASK_DOESNT_EXIST                (0x01)
52*d14abf15SRobert Mustacchi #define ISCSI_TMF_RESPONSE_LUN_DOESNT_EXIST                 (0x02)
53*d14abf15SRobert Mustacchi #define ISCSI_TMF_RESPONSE_TASK_STILL_ALLEGIANT	            (0x03)
54*d14abf15SRobert Mustacchi #define ISCSI_TMF_RESPONSE_FUNCTION_NOT_SUPPORTED           (0x05)
55*d14abf15SRobert Mustacchi #define ISCSI_TMF_RESPONSE_FUNCTION_AUTHORIZATION_FAILED    (0x06)
56*d14abf15SRobert Mustacchi #define ISCSI_TMF_RESPONSE_FUNCTION_REJECTED                (0xff)
57*d14abf15SRobert Mustacchi 
58*d14abf15SRobert Mustacchi /* Logout reason codes */
59*d14abf15SRobert Mustacchi #define ISCSI_LOGOUT_REASON_CLOSE_CONNECTION    (1)
60*d14abf15SRobert Mustacchi 
61*d14abf15SRobert Mustacchi /* Logout response codes */
62*d14abf15SRobert Mustacchi #define ISCSI_LOGOUT_RESPONSE_CONNECTION_CLOSED (0)
63*d14abf15SRobert Mustacchi #define ISCSI_LOGOUT_RESPONSE_CID_NOT_FOUND     (1)
64*d14abf15SRobert Mustacchi #define ISCSI_LOGOUT_RESPONSE_CLEANUP_FAILED    (3)
65*d14abf15SRobert Mustacchi 
66*d14abf15SRobert Mustacchi /* iSCSI parameter defaults */
67*d14abf15SRobert Mustacchi #define ISCSI_DEFAULT_HEADER_DIGEST         (0)
68*d14abf15SRobert Mustacchi #define ISCSI_DEFAULT_DATA_DIGEST           (0)
69*d14abf15SRobert Mustacchi #define ISCSI_DEFAULT_INITIAL_R2T           (1)
70*d14abf15SRobert Mustacchi #define ISCSI_DEFAULT_IMMEDIATE_DATA        (1)
71*d14abf15SRobert Mustacchi #define ISCSI_DEFAULT_MAX_PDU_LENGTH        (0x2000)
72*d14abf15SRobert Mustacchi #define ISCSI_DEFAULT_FIRST_BURST_LENGTH    (0x10000)
73*d14abf15SRobert Mustacchi #define ISCSI_DEFAULT_MAX_BURST_LENGTH      (0x40000)
74*d14abf15SRobert Mustacchi #define ISCSI_DEFAULT_MAX_OUTSTANDING_R2T   (1)
75*d14abf15SRobert Mustacchi 
76*d14abf15SRobert Mustacchi /* iSCSI parameter limits */
77*d14abf15SRobert Mustacchi #define ISCSI_MIN_VAL_MAX_PDU_LENGTH        (0x200)
78*d14abf15SRobert Mustacchi #define ISCSI_MAX_VAL_MAX_PDU_LENGTH        (0xffffff)
79*d14abf15SRobert Mustacchi #define ISCSI_MIN_VAL_BURST_LENGTH          (0x200)
80*d14abf15SRobert Mustacchi #define ISCSI_MAX_VAL_BURST_LENGTH          (0xffffff)
81*d14abf15SRobert Mustacchi #define ISCSI_MIN_VAL_MAX_OUTSTANDING_R2T   (1)
82*d14abf15SRobert Mustacchi #define ISCSI_MAX_VAL_MAX_OUTSTANDING_R2T   (0xff) // 0x10000 according to RFC
83*d14abf15SRobert Mustacchi 
84*d14abf15SRobert Mustacchi #endif /*__57XX_ISCSI_RFC_CONSTANTS_H_ */
85