include/target/iscsi/iscsi_target_core.h

Source file repositories/reference/linux-study-clean/include/target/iscsi/iscsi_target_core.h

File Facts

System
Linux kernel
Corpus path
include/target/iscsi/iscsi_target_core.h
Extension
.h
Size
26919 bytes
Lines
917
Domain
Repository Root And Misc
Bucket
include
Inferred role
Repository Root And Misc: implementation source
Status
source implementation candidate

Why This File Exists

Top-level or miscellaneous repository surface. Use this as map coverage unless a later manual pass promotes the file into a deeper subsystem dossier.

Dependency Surface

Detected Declarations

Annotated Snippet

struct iscsi_conn_ops {
	u8	HeaderDigest;			/* [0,1] == [None,CRC32C] */
	u8	DataDigest;			/* [0,1] == [None,CRC32C] */
	u32	MaxRecvDataSegmentLength;	/* [512..2**24-1] */
	u32	MaxXmitDataSegmentLength;	/* [512..2**24-1] */
	/*
	 * iSER specific connection parameters
	 */
	u32	InitiatorRecvDataSegmentLength;	/* [512..2**24-1] */
	u32	TargetRecvDataSegmentLength;	/* [512..2**24-1] */
};

struct iscsi_sess_ops {
	char	InitiatorName[ISCSI_IQN_LEN];
	char	InitiatorAlias[256];
	char	TargetName[ISCSI_IQN_LEN];
	char	TargetAlias[256];
	char	TargetAddress[256];
	u16	TargetPortalGroupTag;		/* [0..65535] */
	u16	MaxConnections;			/* [1..65535] */
	u8	InitialR2T;			/* [0,1] == [No,Yes] */
	u8	ImmediateData;			/* [0,1] == [No,Yes] */
	u32	MaxBurstLength;			/* [512..2**24-1] */
	u32	FirstBurstLength;		/* [512..2**24-1] */
	u16	DefaultTime2Wait;		/* [0..3600] */
	u16	DefaultTime2Retain;		/* [0..3600] */
	u16	MaxOutstandingR2T;		/* [1..65535] */
	u8	DataPDUInOrder;			/* [0,1] == [No,Yes] */
	u8	DataSequenceInOrder;		/* [0,1] == [No,Yes] */
	u8	ErrorRecoveryLevel;		/* [0..2] */
	u8	SessionType;			/* [0,1] == [Normal,Discovery]*/
	/*
	 * iSER specific session parameters
	 */
	u8	RDMAExtensions;			/* [0,1] == [No,Yes] */
};

struct iscsi_queue_req {
	int			state;
	struct iscsit_cmd	*cmd;
	struct list_head	qr_list;
};

struct iscsi_param_list {
	bool			iser;
	struct list_head	param_list;
	struct list_head	extra_response_list;
};

struct iscsi_datain_req {
	enum datain_req_comp_table dr_complete;
	int			generate_recovery_values;
	enum datain_req_rec_table recovery;
	u32			begrun;
	u32			runlength;
	u32			data_length;
	u32			data_offset;
	u32			data_sn;
	u32			next_burst_len;
	u32			read_data_done;
	u32			seq_send_order;
	struct list_head	cmd_datain_node;
} ____cacheline_aligned;

struct iscsi_ooo_cmdsn {
	u16			cid;
	u32			batch_count;
	u32			cmdsn;
	u32			exp_cmdsn;
	struct iscsit_cmd	*cmd;
	struct list_head	ooo_list;
} ____cacheline_aligned;

struct iscsi_datain {
	u8			flags;
	u32			data_sn;
	u32			length;
	u32			offset;
} ____cacheline_aligned;

struct iscsi_r2t {
	int			seq_complete;
	int			recovery_r2t;
	int			sent_r2t;
	u32			r2t_sn;
	u32			offset;
	u32			targ_xfer_tag;
	u32			xfer_len;
	struct list_head	r2t_list;
} ____cacheline_aligned;

Annotation

Implementation Notes