summaryrefslogtreecommitdiffstats
path: root/include/scsi/srp.h
diff options
context:
space:
mode:
authorBart Van Assche <bvanassche@acm.org>2018-12-17 22:20:33 +0100
committerDoug Ledford <dledford@redhat.com>2018-12-19 21:07:25 +0100
commit16d14e01b7a100911804768b3ae4df083da2b53d (patch)
tree6ad6b646fb3568412e4b134758d003617b4cdc92 /include/scsi/srp.h
parentinclude/scsi/srp.h: Move response flag definitions into this file (diff)
downloadlinux-16d14e01b7a100911804768b3ae4df083da2b53d.tar.xz
linux-16d14e01b7a100911804768b3ae4df083da2b53d.zip
include/scsi/srp.h: Add support for immediate data
Add constants and data structures to support immediate data. These changes conform to SRP2r04. Cc: Sergey Gorenko <sergeygo@mellanox.com> Cc: Max Gurtovoy <maxg@mellanox.com> Cc: Laurence Oberman <loberman@redhat.com> Signed-off-by: Bart Van Assche <bvanassche@acm.org> Signed-off-by: Doug Ledford <dledford@redhat.com>
Diffstat (limited to 'include/scsi/srp.h')
-rw-r--r--include/scsi/srp.h19
1 files changed, 16 insertions, 3 deletions
diff --git a/include/scsi/srp.h b/include/scsi/srp.h
index 15cb8cf8a604..9220758d5087 100644
--- a/include/scsi/srp.h
+++ b/include/scsi/srp.h
@@ -67,7 +67,8 @@ enum {
enum {
SRP_NO_DATA_DESC = 0,
SRP_DATA_DESC_DIRECT = 1,
- SRP_DATA_DESC_INDIRECT = 2
+ SRP_DATA_DESC_INDIRECT = 2,
+ SRP_DATA_DESC_IMM = 3, /* new in SRP2 */
};
enum {
@@ -111,9 +112,16 @@ struct srp_indirect_buf {
struct srp_direct_buf desc_list[0];
} __attribute__((packed));
+/* Immediate data buffer descriptor as defined in SRP2. */
+struct srp_imm_buf {
+ __be32 len;
+};
+
+/* srp_login_req.flags */
enum {
SRP_MULTICHAN_SINGLE = 0,
- SRP_MULTICHAN_MULTI = 1
+ SRP_MULTICHAN_MULTI = 1,
+ SRP_IMMED_REQUESTED = 0x80, /* new in SRP2 */
};
struct srp_login_req {
@@ -124,7 +132,9 @@ struct srp_login_req {
u8 reserved2[4];
__be16 req_buf_fmt;
u8 req_flags;
- u8 reserved3[5];
+ u8 reserved3[1];
+ __be16 imm_data_offset; /* new in SRP2 */
+ u8 reserved4[2];
u8 initiator_port_id[16];
u8 target_port_id[16];
};
@@ -144,6 +154,8 @@ struct srp_login_req_rdma {
__be32 req_it_iu_len;
u8 initiator_port_id[16];
u8 target_port_id[16];
+ __be16 imm_data_offset;
+ u8 reserved[6];
};
/* srp_login_rsp.rsp_flags */
@@ -151,6 +163,7 @@ enum {
SRP_LOGIN_RSP_MULTICHAN_NO_CHAN = 0x0,
SRP_LOGIN_RSP_MULTICHAN_TERMINATED = 0x1,
SRP_LOGIN_RSP_MULTICHAN_MAINTAINED = 0x2,
+ SRP_LOGIN_RSP_IMMED_SUPP = 0x80, /* new in SRP2 */
};
/*