diff options
-rw-r--r-- | drivers/scsi/iscsi_tcp.c | 2 | ||||
-rw-r--r-- | include/scsi/iscsi_proto.h | 45 |
2 files changed, 34 insertions, 13 deletions
diff --git a/drivers/scsi/iscsi_tcp.c b/drivers/scsi/iscsi_tcp.c index bb0a5039d334..baacf836083e 100644 --- a/drivers/scsi/iscsi_tcp.c +++ b/drivers/scsi/iscsi_tcp.c | |||
@@ -751,7 +751,7 @@ iscsi_hdr_recv(struct iscsi_conn *conn) | |||
751 | (void*)&mtask, sizeof(void*)); | 751 | (void*)&mtask, sizeof(void*)); |
752 | conn->tmabort_state = | 752 | conn->tmabort_state = |
753 | ((struct iscsi_tm_rsp *)hdr)-> | 753 | ((struct iscsi_tm_rsp *)hdr)-> |
754 | response == SCSI_TCP_TM_RESP_COMPLETE ? | 754 | response == ISCSI_TMF_RSP_COMPLETE ? |
755 | TMABORT_SUCCESS:TMABORT_FAILED; | 755 | TMABORT_SUCCESS:TMABORT_FAILED; |
756 | /* unblock eh_abort() */ | 756 | /* unblock eh_abort() */ |
757 | wake_up(&conn->ehwait); | 757 | wake_up(&conn->ehwait); |
diff --git a/include/scsi/iscsi_proto.h b/include/scsi/iscsi_proto.h index 6c08551c79f5..8d3190480441 100644 --- a/include/scsi/iscsi_proto.h +++ b/include/scsi/iscsi_proto.h | |||
@@ -56,7 +56,8 @@ struct iscsi_hdr { | |||
56 | __be32 ttt; /* Target Task Tag */ | 56 | __be32 ttt; /* Target Task Tag */ |
57 | __be32 statsn; | 57 | __be32 statsn; |
58 | __be32 exp_statsn; | 58 | __be32 exp_statsn; |
59 | uint8_t other[16]; | 59 | __be32 max_statsn; |
60 | uint8_t other[12]; | ||
60 | }; | 61 | }; |
61 | 62 | ||
62 | /************************* RFC 3720 Begin *****************************/ | 63 | /************************* RFC 3720 Begin *****************************/ |
@@ -78,6 +79,11 @@ struct iscsi_hdr { | |||
78 | #define ISCSI_OP_LOGOUT 0x06 | 79 | #define ISCSI_OP_LOGOUT 0x06 |
79 | #define ISCSI_OP_SNACK 0x10 | 80 | #define ISCSI_OP_SNACK 0x10 |
80 | 81 | ||
82 | #define ISCSI_OP_VENDOR1_CMD 0x1c | ||
83 | #define ISCSI_OP_VENDOR2_CMD 0x1d | ||
84 | #define ISCSI_OP_VENDOR3_CMD 0x1e | ||
85 | #define ISCSI_OP_VENDOR4_CMD 0x1f | ||
86 | |||
81 | /* Target Opcode values */ | 87 | /* Target Opcode values */ |
82 | #define ISCSI_OP_NOOP_IN 0x20 | 88 | #define ISCSI_OP_NOOP_IN 0x20 |
83 | #define ISCSI_OP_SCSI_CMD_RSP 0x21 | 89 | #define ISCSI_OP_SCSI_CMD_RSP 0x21 |
@@ -90,12 +96,20 @@ struct iscsi_hdr { | |||
90 | #define ISCSI_OP_ASYNC_EVENT 0x32 | 96 | #define ISCSI_OP_ASYNC_EVENT 0x32 |
91 | #define ISCSI_OP_REJECT 0x3f | 97 | #define ISCSI_OP_REJECT 0x3f |
92 | 98 | ||
99 | struct iscsi_ahs_hdr { | ||
100 | __be16 ahslength; | ||
101 | uint8_t ahstype; | ||
102 | uint8_t ahspec[5]; | ||
103 | }; | ||
104 | |||
105 | #define ISCSI_AHSTYPE_CDB 1 | ||
106 | #define ISCSI_AHSTYPE_RLENGTH 2 | ||
107 | |||
93 | /* iSCSI PDU Header */ | 108 | /* iSCSI PDU Header */ |
94 | struct iscsi_cmd { | 109 | struct iscsi_cmd { |
95 | uint8_t opcode; | 110 | uint8_t opcode; |
96 | uint8_t flags; | 111 | uint8_t flags; |
97 | uint8_t rsvd2; | 112 | __be16 rsvd2; |
98 | uint8_t cmdrn; | ||
99 | uint8_t hlength; | 113 | uint8_t hlength; |
100 | uint8_t dlength[3]; | 114 | uint8_t dlength[3]; |
101 | uint8_t lun[8]; | 115 | uint8_t lun[8]; |
@@ -120,6 +134,13 @@ struct iscsi_cmd { | |||
120 | #define ISCSI_ATTR_HEAD_OF_QUEUE 3 | 134 | #define ISCSI_ATTR_HEAD_OF_QUEUE 3 |
121 | #define ISCSI_ATTR_ACA 4 | 135 | #define ISCSI_ATTR_ACA 4 |
122 | 136 | ||
137 | struct iscsi_rlength_ahdr { | ||
138 | __be16 ahslength; | ||
139 | uint8_t ahstype; | ||
140 | uint8_t reserved; | ||
141 | __be32 read_length; | ||
142 | }; | ||
143 | |||
123 | /* SCSI Response Header */ | 144 | /* SCSI Response Header */ |
124 | struct iscsi_cmd_rsp { | 145 | struct iscsi_cmd_rsp { |
125 | uint8_t opcode; | 146 | uint8_t opcode; |
@@ -227,7 +248,7 @@ struct iscsi_tm { | |||
227 | uint8_t rsvd2[8]; | 248 | uint8_t rsvd2[8]; |
228 | }; | 249 | }; |
229 | 250 | ||
230 | #define ISCSI_FLAG_TASK_MGMT_FUNCTION_MASK 0x7F | 251 | #define ISCSI_FLAG_TM_FUNC_MASK 0x7F |
231 | 252 | ||
232 | /* Function values */ | 253 | /* Function values */ |
233 | #define ISCSI_TM_FUNC_ABORT_TASK 1 | 254 | #define ISCSI_TM_FUNC_ABORT_TASK 1 |
@@ -257,14 +278,14 @@ struct iscsi_tm_rsp { | |||
257 | }; | 278 | }; |
258 | 279 | ||
259 | /* Response values */ | 280 | /* Response values */ |
260 | #define SCSI_TCP_TM_RESP_COMPLETE 0x00 | 281 | #define ISCSI_TMF_RSP_COMPLETE 0x00 |
261 | #define SCSI_TCP_TM_RESP_NO_TASK 0x01 | 282 | #define ISCSI_TMF_RSP_NO_TASK 0x01 |
262 | #define SCSI_TCP_TM_RESP_NO_LUN 0x02 | 283 | #define ISCSI_TMF_RSP_NO_LUN 0x02 |
263 | #define SCSI_TCP_TM_RESP_TASK_ALLEGIANT 0x03 | 284 | #define ISCSI_TMF_RSP_TASK_ALLEGIANT 0x03 |
264 | #define SCSI_TCP_TM_RESP_NO_FAILOVER 0x04 | 285 | #define ISCSI_TMF_RSP_NO_FAILOVER 0x04 |
265 | #define SCSI_TCP_TM_RESP_NOT_SUPPORTED 0x05 | 286 | #define ISCSI_TMF_RSP_NOT_SUPPORTED 0x05 |
266 | #define SCSI_TCP_TM_RESP_AUTH_FAILED 0x06 | 287 | #define ISCSI_TMF_RSP_AUTH_FAILED 0x06 |
267 | #define SCSI_TCP_TM_RESP_REJECTED 0xff | 288 | #define ISCSI_TMF_RSP_REJECTED 0xff |
268 | 289 | ||
269 | /* Ready To Transfer Header */ | 290 | /* Ready To Transfer Header */ |
270 | struct iscsi_r2t_rsp { | 291 | struct iscsi_r2t_rsp { |