Commit 16d14e01 authored by Bart Van Assche's avatar Bart Van Assche Committed by Doug Ledford
Browse files

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: default avatarBart Van Assche <bvanassche@acm.org>
Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
parent feafa204
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -4174,6 +4174,11 @@ static int __init srp_init_module(void)
{
	int ret;

	BUILD_BUG_ON(sizeof(struct srp_imm_buf) != 4);
	BUILD_BUG_ON(sizeof(struct srp_login_req) != 64);
	BUILD_BUG_ON(sizeof(struct srp_login_req_rdma) != 56);
	BUILD_BUG_ON(sizeof(struct srp_cmd) != 48);

	if (srp_sg_tablesize) {
		pr_warn("srp_sg_tablesize is deprecated, please use cmd_sg_entries\n");
		if (!cmd_sg_entries)
+16 −3
Original line number Diff line number Diff line
@@ -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 */
};

/*