hc
2024-01-31 f9004dbfff8a3fbbd7e2a88c8a4327c7f2f8e5b2
kernel/include/scsi/srp.h
....@@ -67,7 +67,8 @@
6767 enum {
6868 SRP_NO_DATA_DESC = 0,
6969 SRP_DATA_DESC_DIRECT = 1,
70
- SRP_DATA_DESC_INDIRECT = 2
70
+ SRP_DATA_DESC_INDIRECT = 2,
71
+ SRP_DATA_DESC_IMM = 3, /* new in SRP2 */
7172 };
7273
7374 enum {
....@@ -108,12 +109,19 @@
108109 struct srp_indirect_buf {
109110 struct srp_direct_buf table_desc;
110111 __be32 len;
111
- struct srp_direct_buf desc_list[0];
112
+ struct srp_direct_buf desc_list[];
112113 } __attribute__((packed));
113114
115
+/* Immediate data buffer descriptor as defined in SRP2. */
116
+struct srp_imm_buf {
117
+ __be32 len;
118
+};
119
+
120
+/* srp_login_req.flags */
114121 enum {
115122 SRP_MULTICHAN_SINGLE = 0,
116
- SRP_MULTICHAN_MULTI = 1
123
+ SRP_MULTICHAN_MULTI = 1,
124
+ SRP_IMMED_REQUESTED = 0x80, /* new in SRP2 */
117125 };
118126
119127 struct srp_login_req {
....@@ -124,7 +132,9 @@
124132 u8 reserved2[4];
125133 __be16 req_buf_fmt;
126134 u8 req_flags;
127
- u8 reserved3[5];
135
+ u8 reserved3[1];
136
+ __be16 imm_data_offset; /* new in SRP2 */
137
+ u8 reserved4[2];
128138 u8 initiator_port_id[16];
129139 u8 target_port_id[16];
130140 };
....@@ -144,6 +154,16 @@
144154 __be32 req_it_iu_len;
145155 u8 initiator_port_id[16];
146156 u8 target_port_id[16];
157
+ __be16 imm_data_offset;
158
+ u8 reserved[6];
159
+};
160
+
161
+/* srp_login_rsp.rsp_flags */
162
+enum {
163
+ SRP_LOGIN_RSP_MULTICHAN_NO_CHAN = 0x0,
164
+ SRP_LOGIN_RSP_MULTICHAN_TERMINATED = 0x1,
165
+ SRP_LOGIN_RSP_MULTICHAN_MAINTAINED = 0x2,
166
+ SRP_LOGIN_RSP_IMMED_SUPP = 0x80, /* new in SRP2 */
147167 };
148168
149169 /*
....@@ -224,7 +244,7 @@
224244 u8 reserved4;
225245 u8 add_cdb_len;
226246 u8 cdb[16];
227
- u8 add_data[0];
247
+ u8 add_data[];
228248 };
229249
230250 enum {
....@@ -254,7 +274,7 @@
254274 __be32 data_in_res_cnt;
255275 __be32 sense_data_len;
256276 __be32 resp_data_len;
257
- u8 data[0];
277
+ u8 data[];
258278 } __attribute__((packed));
259279
260280 struct srp_cred_req {
....@@ -286,7 +306,7 @@
286306 struct scsi_lun lun;
287307 __be32 sense_data_len;
288308 u32 reserved3;
289
- u8 sense_data[0];
309
+ u8 sense_data[];
290310 } __attribute__((packed));
291311
292312 struct srp_aer_rsp {