brintos

brintos / linux-shallow public Read only

0
0
Text · 15.5 KiB · 7b192d8 Raw
658 lines · c
1/* SPDX-License-Identifier: GPL-2.0-or-later */2/*3 * RFC 3720 (iSCSI) protocol data types4 *5 * Copyright (C) 2005 Dmitry Yusupov6 * Copyright (C) 2005 Alex Aizman7 * maintained by open-iscsi@googlegroups.com8 */9 10#ifndef ISCSI_PROTO_H11#define ISCSI_PROTO_H12 13#include <linux/types.h>14#include <scsi/scsi.h>15 16#define ISCSI_DRAFT20_VERSION	0x0017 18/* default iSCSI listen port for incoming connections */19#define ISCSI_LISTEN_PORT	326020 21/* iSCSI header length */22#define ISCSI_HDR_LEN		4823 24/* iSCSI CRC32C length */25#define ISCSI_CRC_LEN		426 27/* Padding word length */28#define ISCSI_PAD_LEN		429 30/*31 * Serial Number Arithmetic, 32 bits, RFC198232 */33 34static inline int iscsi_sna_lt(u32 n1, u32 n2)35{36	return (s32)(n1 - n2) < 0;37}38 39static inline int iscsi_sna_lte(u32 n1, u32 n2)40{41	return (s32)(n1 - n2) <= 0;42}43 44static inline int iscsi_sna_gt(u32 n1, u32 n2)45{46	return (s32)(n1 - n2) > 0;47}48 49static inline int iscsi_sna_gte(u32 n1, u32 n2)50{51	return (s32)(n1 - n2) >= 0;52}53 54/*55 * useful common(control and data paths) macro56 */57#define ntoh24(p) (((p)[0] << 16) | ((p)[1] << 8) | ((p)[2]))58#define hton24(p, v) { \59        p[0] = (((v) >> 16) & 0xFF); \60        p[1] = (((v) >> 8) & 0xFF); \61        p[2] = ((v) & 0xFF); \62}63#define zero_data(p) {p[0]=0;p[1]=0;p[2]=0;}64 65/* initiator tags; opaque for target */66typedef uint32_t __bitwise itt_t;67/* below makes sense only for initiator that created this tag */68#define build_itt(itt, age) ((__force itt_t)\69	((itt) | ((age) << ISCSI_AGE_SHIFT)))70#define get_itt(itt) ((__force uint32_t)(itt_t)(itt) & ISCSI_ITT_MASK)71#define RESERVED_ITT ((__force itt_t)0xffffffff)72 73/*74 * iSCSI Template Message Header75 */76struct iscsi_hdr {77	uint8_t		opcode;78	uint8_t		flags;		/* Final bit */79	uint8_t		rsvd2[2];80	uint8_t		hlength;	/* AHSs total length */81	uint8_t		dlength[3];	/* Data length */82	struct scsi_lun	lun;83	itt_t		itt;		/* Initiator Task Tag, opaque for target */84	__be32		ttt;		/* Target Task Tag */85	__be32		statsn;86	__be32		exp_statsn;87	__be32		max_statsn;88	uint8_t		other[12];89};90 91/************************* RFC 3720 Begin *****************************/92 93#define ISCSI_RESERVED_TAG		0xffffffff94 95/* Opcode encoding bits */96#define ISCSI_OP_RETRY			0x8097#define ISCSI_OP_IMMEDIATE		0x4098#define ISCSI_OPCODE_MASK		0x3F99 100/* Initiator Opcode values */101#define ISCSI_OP_NOOP_OUT		0x00102#define ISCSI_OP_SCSI_CMD		0x01103#define ISCSI_OP_SCSI_TMFUNC		0x02104#define ISCSI_OP_LOGIN			0x03105#define ISCSI_OP_TEXT			0x04106#define ISCSI_OP_SCSI_DATA_OUT		0x05107#define ISCSI_OP_LOGOUT			0x06108#define ISCSI_OP_SNACK			0x10109 110#define ISCSI_OP_VENDOR1_CMD		0x1c111#define ISCSI_OP_VENDOR2_CMD		0x1d112#define ISCSI_OP_VENDOR3_CMD		0x1e113#define ISCSI_OP_VENDOR4_CMD		0x1f114 115/* Target Opcode values */116#define ISCSI_OP_NOOP_IN		0x20117#define ISCSI_OP_SCSI_CMD_RSP		0x21118#define ISCSI_OP_SCSI_TMFUNC_RSP	0x22119#define ISCSI_OP_LOGIN_RSP		0x23120#define ISCSI_OP_TEXT_RSP		0x24121#define ISCSI_OP_SCSI_DATA_IN		0x25122#define ISCSI_OP_LOGOUT_RSP		0x26123#define ISCSI_OP_R2T			0x31124#define ISCSI_OP_ASYNC_EVENT		0x32125#define ISCSI_OP_REJECT			0x3f126 127struct iscsi_ahs_hdr {128	__be16 ahslength;129	uint8_t ahstype;130	uint8_t ahspec[5];131};132 133#define ISCSI_AHSTYPE_CDB		1134#define ISCSI_AHSTYPE_RLENGTH		2135#define ISCSI_CDB_SIZE			16136 137/* iSCSI PDU Header */138struct iscsi_scsi_req {139	uint8_t opcode;140	uint8_t flags;141	__be16 rsvd2;142	uint8_t hlength;143	uint8_t dlength[3];144	struct scsi_lun lun;145	itt_t	 itt;	/* Initiator Task Tag */146	__be32 data_length;147	__be32 cmdsn;148	__be32 exp_statsn;149	uint8_t cdb[ISCSI_CDB_SIZE];	/* SCSI Command Block */150	/* Additional Data (Command Dependent) */151};152 153/* Command PDU flags */154#define ISCSI_FLAG_CMD_FINAL		0x80155#define ISCSI_FLAG_CMD_READ		0x40156#define ISCSI_FLAG_CMD_WRITE		0x20157#define ISCSI_FLAG_CMD_ATTR_MASK	0x07	/* 3 bits */158 159/* SCSI Command Attribute values */160#define ISCSI_ATTR_UNTAGGED		0161#define ISCSI_ATTR_SIMPLE		1162#define ISCSI_ATTR_ORDERED		2163#define ISCSI_ATTR_HEAD_OF_QUEUE	3164#define ISCSI_ATTR_ACA			4165 166struct iscsi_rlength_ahdr {167	__be16 ahslength;168	uint8_t ahstype;169	uint8_t reserved;170	__be32 read_length;171};172 173/* Extended CDB AHS */174struct iscsi_ecdb_ahdr {175	__be16 ahslength;	/* CDB length - 15, including reserved byte */176	uint8_t ahstype;177	uint8_t reserved;178	/* 4-byte aligned extended CDB spillover */179	uint8_t ecdb[SCSI_MAX_VARLEN_CDB_SIZE - ISCSI_CDB_SIZE];180};181 182/* SCSI Response Header */183struct iscsi_scsi_rsp {184	uint8_t opcode;185	uint8_t flags;186	uint8_t response;187	uint8_t cmd_status;188	uint8_t hlength;189	uint8_t dlength[3];190	uint8_t rsvd[8];191	itt_t	 itt;	/* Initiator Task Tag */192	__be32	rsvd1;193	__be32	statsn;194	__be32	exp_cmdsn;195	__be32	max_cmdsn;196	__be32	exp_datasn;197	__be32	bi_residual_count;198	__be32	residual_count;199	/* Response or Sense Data (optional) */200};201 202/* Command Response PDU flags */203#define ISCSI_FLAG_CMD_BIDI_OVERFLOW	0x10204#define ISCSI_FLAG_CMD_BIDI_UNDERFLOW	0x08205#define ISCSI_FLAG_CMD_OVERFLOW		0x04206#define ISCSI_FLAG_CMD_UNDERFLOW	0x02207 208/* iSCSI Status values. Valid if Rsp Selector bit is not set */209#define ISCSI_STATUS_CMD_COMPLETED	0210#define ISCSI_STATUS_TARGET_FAILURE	1211#define ISCSI_STATUS_SUBSYS_FAILURE	2212 213/* Asynchronous Event Header */214struct iscsi_async {215	uint8_t opcode;216	uint8_t flags;217	uint8_t rsvd2[2];218	uint8_t rsvd3;219	uint8_t dlength[3];220	struct scsi_lun	lun;221	uint8_t rsvd4[8];222	__be32	statsn;223	__be32	exp_cmdsn;224	__be32	max_cmdsn;225	uint8_t async_event;226	uint8_t async_vcode;227	__be16	param1;228	__be16	param2;229	__be16	param3;230	uint8_t rsvd5[4];231};232 233/* iSCSI Event Codes */234#define ISCSI_ASYNC_MSG_SCSI_EVENT			0235#define ISCSI_ASYNC_MSG_REQUEST_LOGOUT			1236#define ISCSI_ASYNC_MSG_DROPPING_CONNECTION		2237#define ISCSI_ASYNC_MSG_DROPPING_ALL_CONNECTIONS	3238#define ISCSI_ASYNC_MSG_PARAM_NEGOTIATION		4239#define ISCSI_ASYNC_MSG_VENDOR_SPECIFIC			255240 241/* NOP-Out Message */242struct iscsi_nopout {243	uint8_t opcode;244	uint8_t flags;245	__be16	rsvd2;246	uint8_t rsvd3;247	uint8_t dlength[3];248	struct scsi_lun	lun;249	itt_t	 itt;	/* Initiator Task Tag */250	__be32	ttt;	/* Target Transfer Tag */251	__be32	cmdsn;252	__be32	exp_statsn;253	uint8_t rsvd4[16];254};255 256/* NOP-In Message */257struct iscsi_nopin {258	uint8_t opcode;259	uint8_t flags;260	__be16	rsvd2;261	uint8_t rsvd3;262	uint8_t dlength[3];263	struct scsi_lun	lun;264	itt_t	 itt;	/* Initiator Task Tag */265	__be32	ttt;	/* Target Transfer Tag */266	__be32	statsn;267	__be32	exp_cmdsn;268	__be32	max_cmdsn;269	uint8_t rsvd4[12];270};271 272/* SCSI Task Management Message Header */273struct iscsi_tm {274	uint8_t opcode;275	uint8_t flags;276	uint8_t rsvd1[2];277	uint8_t hlength;278	uint8_t dlength[3];279	struct scsi_lun lun;280	itt_t	 itt;	/* Initiator Task Tag */281	itt_t	 rtt;	/* Reference Task Tag */282	__be32	cmdsn;283	__be32	exp_statsn;284	__be32	refcmdsn;285	__be32	exp_datasn;286	uint8_t rsvd2[8];287};288 289#define ISCSI_FLAG_TM_FUNC_MASK			0x7F290 291/* Function values */292#define ISCSI_TM_FUNC_ABORT_TASK		1293#define ISCSI_TM_FUNC_ABORT_TASK_SET		2294#define ISCSI_TM_FUNC_CLEAR_ACA			3295#define ISCSI_TM_FUNC_CLEAR_TASK_SET		4296#define ISCSI_TM_FUNC_LOGICAL_UNIT_RESET	5297#define ISCSI_TM_FUNC_TARGET_WARM_RESET		6298#define ISCSI_TM_FUNC_TARGET_COLD_RESET		7299#define ISCSI_TM_FUNC_TASK_REASSIGN		8300 301#define ISCSI_TM_FUNC_VALUE(hdr) ((hdr)->flags & ISCSI_FLAG_TM_FUNC_MASK)302 303/* SCSI Task Management Response Header */304struct iscsi_tm_rsp {305	uint8_t opcode;306	uint8_t flags;307	uint8_t response;	/* see Response values below */308	uint8_t qualifier;309	uint8_t hlength;310	uint8_t dlength[3];311	uint8_t rsvd2[8];312	itt_t	 itt;	/* Initiator Task Tag */313	itt_t	 rtt;	/* Reference Task Tag */314	__be32	statsn;315	__be32	exp_cmdsn;316	__be32	max_cmdsn;317	uint8_t rsvd3[12];318};319 320/* Response values */321#define ISCSI_TMF_RSP_COMPLETE		0x00322#define ISCSI_TMF_RSP_NO_TASK		0x01323#define ISCSI_TMF_RSP_NO_LUN		0x02324#define ISCSI_TMF_RSP_TASK_ALLEGIANT	0x03325#define ISCSI_TMF_RSP_NO_FAILOVER	0x04326#define ISCSI_TMF_RSP_NOT_SUPPORTED	0x05327#define ISCSI_TMF_RSP_AUTH_FAILED	0x06328#define ISCSI_TMF_RSP_REJECTED		0xff329 330/* Ready To Transfer Header */331struct iscsi_r2t_rsp {332	uint8_t opcode;333	uint8_t flags;334	uint8_t rsvd2[2];335	uint8_t	hlength;336	uint8_t	dlength[3];337	struct scsi_lun	lun;338	itt_t	 itt;	/* Initiator Task Tag */339	__be32	ttt;	/* Target Transfer Tag */340	__be32	statsn;341	__be32	exp_cmdsn;342	__be32	max_cmdsn;343	__be32	r2tsn;344	__be32	data_offset;345	__be32	data_length;346};347 348/* SCSI Data Hdr */349struct iscsi_data {350	uint8_t opcode;351	uint8_t flags;352	uint8_t rsvd2[2];353	uint8_t rsvd3;354	uint8_t dlength[3];355	struct scsi_lun lun;356	itt_t	 itt;357	__be32	ttt;358	__be32	rsvd4;359	__be32	exp_statsn;360	__be32	rsvd5;361	__be32	datasn;362	__be32	offset;363	__be32	rsvd6;364	/* Payload */365};366 367/* SCSI Data Response Hdr */368struct iscsi_data_rsp {369	uint8_t opcode;370	uint8_t flags;371	uint8_t rsvd2;372	uint8_t cmd_status;373	uint8_t hlength;374	uint8_t dlength[3];375	struct scsi_lun	lun;376	itt_t	 itt;377	__be32	ttt;378	__be32	statsn;379	__be32	exp_cmdsn;380	__be32	max_cmdsn;381	__be32	datasn;382	__be32	offset;383	__be32	residual_count;384};385 386/* Data Response PDU flags */387#define ISCSI_FLAG_DATA_ACK		0x40388#define ISCSI_FLAG_DATA_OVERFLOW	0x04389#define ISCSI_FLAG_DATA_UNDERFLOW	0x02390#define ISCSI_FLAG_DATA_STATUS		0x01391 392/* Text Header */393struct iscsi_text {394	uint8_t opcode;395	uint8_t flags;396	uint8_t rsvd2[2];397	uint8_t hlength;398	uint8_t dlength[3];399	uint8_t rsvd4[8];400	itt_t	 itt;401	__be32	ttt;402	__be32	cmdsn;403	__be32	exp_statsn;404	uint8_t rsvd5[16];405	/* Text - key=value pairs */406};407 408#define ISCSI_FLAG_TEXT_CONTINUE	0x40409 410/* Text Response Header */411struct iscsi_text_rsp {412	uint8_t opcode;413	uint8_t flags;414	uint8_t rsvd2[2];415	uint8_t hlength;416	uint8_t dlength[3];417	uint8_t rsvd4[8];418	itt_t	 itt;419	__be32	ttt;420	__be32	statsn;421	__be32	exp_cmdsn;422	__be32	max_cmdsn;423	uint8_t rsvd5[12];424	/* Text Response - key:value pairs */425};426 427/* Login Header */428struct iscsi_login_req {429	uint8_t opcode;430	uint8_t flags;431	uint8_t max_version;	/* Max. version supported */432	uint8_t min_version;	/* Min. version supported */433	uint8_t hlength;434	uint8_t dlength[3];435	uint8_t isid[6];	/* Initiator Session ID */436	__be16	tsih;	/* Target Session Handle */437	itt_t	 itt;	/* Initiator Task Tag */438	__be16	cid;439	__be16	rsvd3;440	__be32	cmdsn;441	__be32	exp_statsn;442	uint8_t rsvd5[16];443};444 445/* Login PDU flags */446#define ISCSI_FLAG_LOGIN_TRANSIT		0x80447#define ISCSI_FLAG_LOGIN_CONTINUE		0x40448#define ISCSI_FLAG_LOGIN_CURRENT_STAGE_MASK	0x0C	/* 2 bits */449#define ISCSI_FLAG_LOGIN_CURRENT_STAGE1		0x04450#define ISCSI_FLAG_LOGIN_CURRENT_STAGE2		0x08451#define ISCSI_FLAG_LOGIN_CURRENT_STAGE3		0x0C452#define ISCSI_FLAG_LOGIN_NEXT_STAGE_MASK	0x03	/* 2 bits */453#define ISCSI_FLAG_LOGIN_NEXT_STAGE1		0x01454#define ISCSI_FLAG_LOGIN_NEXT_STAGE2		0x02455#define ISCSI_FLAG_LOGIN_NEXT_STAGE3		0x03456 457#define ISCSI_LOGIN_CURRENT_STAGE(flags) \458	((flags & ISCSI_FLAG_LOGIN_CURRENT_STAGE_MASK) >> 2)459#define ISCSI_LOGIN_NEXT_STAGE(flags) \460	(flags & ISCSI_FLAG_LOGIN_NEXT_STAGE_MASK)461 462/* Login Response Header */463struct iscsi_login_rsp {464	uint8_t opcode;465	uint8_t flags;466	uint8_t max_version;	/* Max. version supported */467	uint8_t active_version;	/* Active version */468	uint8_t hlength;469	uint8_t dlength[3];470	uint8_t isid[6];	/* Initiator Session ID */471	__be16	tsih;	/* Target Session Handle */472	itt_t	 itt;	/* Initiator Task Tag */473	__be32	rsvd3;474	__be32	statsn;475	__be32	exp_cmdsn;476	__be32	max_cmdsn;477	uint8_t status_class;	/* see Login RSP ststus classes below */478	uint8_t status_detail;	/* see Login RSP Status details below */479	uint8_t rsvd4[10];480};481 482/* Login stage (phase) codes for CSG, NSG */483#define ISCSI_INITIAL_LOGIN_STAGE		-1484#define ISCSI_SECURITY_NEGOTIATION_STAGE	0485#define ISCSI_OP_PARMS_NEGOTIATION_STAGE	1486#define ISCSI_FULL_FEATURE_PHASE		3487 488/* Login Status response classes */489#define ISCSI_STATUS_CLS_SUCCESS		0x00490#define ISCSI_STATUS_CLS_REDIRECT		0x01491#define ISCSI_STATUS_CLS_INITIATOR_ERR		0x02492#define ISCSI_STATUS_CLS_TARGET_ERR		0x03493 494/* Login Status response detail codes */495/* Class-0 (Success) */496#define ISCSI_LOGIN_STATUS_ACCEPT		0x00497 498/* Class-1 (Redirection) */499#define ISCSI_LOGIN_STATUS_TGT_MOVED_TEMP	0x01500#define ISCSI_LOGIN_STATUS_TGT_MOVED_PERM	0x02501 502/* Class-2 (Initiator Error) */503#define ISCSI_LOGIN_STATUS_INIT_ERR		0x00504#define ISCSI_LOGIN_STATUS_AUTH_FAILED		0x01505#define ISCSI_LOGIN_STATUS_TGT_FORBIDDEN	0x02506#define ISCSI_LOGIN_STATUS_TGT_NOT_FOUND	0x03507#define ISCSI_LOGIN_STATUS_TGT_REMOVED		0x04508#define ISCSI_LOGIN_STATUS_NO_VERSION		0x05509#define ISCSI_LOGIN_STATUS_ISID_ERROR		0x06510#define ISCSI_LOGIN_STATUS_MISSING_FIELDS	0x07511#define ISCSI_LOGIN_STATUS_CONN_ADD_FAILED	0x08512#define ISCSI_LOGIN_STATUS_NO_SESSION_TYPE	0x09513#define ISCSI_LOGIN_STATUS_NO_SESSION		0x0a514#define ISCSI_LOGIN_STATUS_INVALID_REQUEST	0x0b515 516/* Class-3 (Target Error) */517#define ISCSI_LOGIN_STATUS_TARGET_ERROR		0x00518#define ISCSI_LOGIN_STATUS_SVC_UNAVAILABLE	0x01519#define ISCSI_LOGIN_STATUS_NO_RESOURCES		0x02520 521/* Logout Header */522struct iscsi_logout {523	uint8_t opcode;524	uint8_t flags;525	uint8_t rsvd1[2];526	uint8_t hlength;527	uint8_t dlength[3];528	uint8_t rsvd2[8];529	itt_t	 itt;	/* Initiator Task Tag */530	__be16	cid;531	uint8_t rsvd3[2];532	__be32	cmdsn;533	__be32	exp_statsn;534	uint8_t rsvd4[16];535};536 537/* Logout PDU flags */538#define ISCSI_FLAG_LOGOUT_REASON_MASK	0x7F539 540/* logout reason_code values */541 542#define ISCSI_LOGOUT_REASON_CLOSE_SESSION	0543#define ISCSI_LOGOUT_REASON_CLOSE_CONNECTION	1544#define ISCSI_LOGOUT_REASON_RECOVERY		2545#define ISCSI_LOGOUT_REASON_AEN_REQUEST		3546 547/* Logout Response Header */548struct iscsi_logout_rsp {549	uint8_t opcode;550	uint8_t flags;551	uint8_t response;	/* see Logout response values below */552	uint8_t rsvd2;553	uint8_t hlength;554	uint8_t dlength[3];555	uint8_t rsvd3[8];556	itt_t	 itt;	/* Initiator Task Tag */557	__be32	rsvd4;558	__be32	statsn;559	__be32	exp_cmdsn;560	__be32	max_cmdsn;561	__be32	rsvd5;562	__be16	t2wait;563	__be16	t2retain;564	__be32	rsvd6;565};566 567/* logout response status values */568 569#define ISCSI_LOGOUT_SUCCESS			0570#define ISCSI_LOGOUT_CID_NOT_FOUND		1571#define ISCSI_LOGOUT_RECOVERY_UNSUPPORTED	2572#define ISCSI_LOGOUT_CLEANUP_FAILED		3573 574/* SNACK Header */575struct iscsi_snack {576	uint8_t opcode;577	uint8_t flags;578	uint8_t rsvd2[2];579	uint8_t hlength;580	uint8_t dlength[3];581	uint8_t lun[8];582	itt_t	 itt;583	__be32  ttt;584	uint8_t rsvd3[4];585	__be32  exp_statsn;586	uint8_t rsvd4[8];587	__be32	begrun;588	__be32	runlength;589};590 591/* SNACK PDU flags */592#define ISCSI_FLAG_SNACK_TYPE_DATA		0593#define ISCSI_FLAG_SNACK_TYPE_R2T		0594#define ISCSI_FLAG_SNACK_TYPE_STATUS		1595#define ISCSI_FLAG_SNACK_TYPE_DATA_ACK		2596#define ISCSI_FLAG_SNACK_TYPE_RDATA		3597#define ISCSI_FLAG_SNACK_TYPE_MASK	0x0F	/* 4 bits */598 599/* Reject Message Header */600struct iscsi_reject {601	uint8_t opcode;602	uint8_t flags;603	uint8_t reason;604	uint8_t rsvd2;605	uint8_t hlength;606	uint8_t dlength[3];607	uint8_t rsvd3[8];608	__be32  ffffffff;609	uint8_t rsvd4[4];610	__be32	statsn;611	__be32	exp_cmdsn;612	__be32	max_cmdsn;613	__be32	datasn;614	uint8_t rsvd5[8];615	/* Text - Rejected hdr */616};617 618/* Reason for Reject */619#define ISCSI_REASON_CMD_BEFORE_LOGIN	1620#define ISCSI_REASON_DATA_DIGEST_ERROR	2621#define ISCSI_REASON_DATA_SNACK_REJECT	3622#define ISCSI_REASON_PROTOCOL_ERROR	4623#define ISCSI_REASON_CMD_NOT_SUPPORTED	5624#define ISCSI_REASON_IMM_CMD_REJECT		6625#define ISCSI_REASON_TASK_IN_PROGRESS	7626#define ISCSI_REASON_INVALID_SNACK		8627#define ISCSI_REASON_BOOKMARK_INVALID	9628#define ISCSI_REASON_BOOKMARK_NO_RESOURCES	10629#define ISCSI_REASON_NEGOTIATION_RESET	11630 631/* Max. number of Key=Value pairs in a text message */632#define MAX_KEY_VALUE_PAIRS	8192633 634/* maximum length for text keys/values */635#define KEY_MAXLEN		64636#define VALUE_MAXLEN		255637#define TARGET_NAME_MAXLEN	VALUE_MAXLEN638 639#define ISCSI_DEF_MAX_RECV_SEG_LEN		8192640#define ISCSI_MIN_MAX_RECV_SEG_LEN		512641#define ISCSI_MAX_MAX_RECV_SEG_LEN		16777215642 643#define ISCSI_DEF_FIRST_BURST_LEN		65536644#define ISCSI_MIN_FIRST_BURST_LEN		512645#define ISCSI_MAX_FIRST_BURST_LEN		16777215646 647#define ISCSI_DEF_MAX_BURST_LEN			262144648#define ISCSI_MIN_MAX_BURST_LEN			512649#define ISCSI_MAX_MAX_BURST_LEN			16777215650 651#define ISCSI_DEF_TIME2WAIT			2652 653#define ISCSI_NAME_LEN				224654 655/************************* RFC 3720 End *****************************/656 657#endif /* ISCSI_PROTO_H */658