⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 iscsi-protocol.h

📁 这个linux源代码是很全面的~基本完整了~使用c编译的~由于时间问题我没有亲自测试~但就算用来做参考资料也是非常好的
💻 H
📖 第 1 页 / 共 2 页
字号:
    UINT8  rsvd3[12];};/* Response values */#define SCSI_TCP_TM_RESP_COMPLETE	0x00#define SCSI_TCP_TM_RESP_NO_TASK	0x01#define SCSI_TCP_TM_RESP_NO_LUN		0x02#define SCSI_TCP_TM_RESP_TASK_ALLEGIANT	0x03#define SCSI_TCP_TM_RESP_NO_FAILOVER	0x04#define SCSI_TCP_TM_RESP_IN_PRGRESS	0x05#define SCSI_TCP_TM_RESP_REJECTED	0xff/* Ready To Transfer Header */struct IscsiRttHdr {    UINT8  opcode;#ifdef ISCSI_BIG_ENDIAN_BITFIELD    UINT8  fbit:1,           rsvd1:7;#else    UINT8  rsvd1:7,           fbit:1;#endif    UINT8  rsvd2[2];    UINT8  rsvd3[12];    UINT32 itt;		/* Initiator Task Tag */    UINT32 ttt;		/* Target Transfer Tag */    UINT32 statsn;    UINT32 expcmdsn;    UINT32 maxcmdsn;    UINT32 rttsn;    UINT32 data_offset;    UINT32 data_length;};/* SCSI Data Hdr */struct IscsiDataHdr {    UINT8  opcode;#ifdef ISCSI_BIG_ENDIAN_BITFIELD    UINT8  final:1,           rsvd1:7;#else    UINT8  rsvd1:7,           final:1;#endif    UINT8  rsvd2[2];    UINT8  rsvd3;    UINT8  dlength[3];    UINT8  lun[8];    UINT32 itt;    UINT32 ttt;    UINT32 rsvd4;    UINT32 expstatsn;    UINT32 rsvd5;    UINT32 datasn;    UINT32 offset;    UINT32 rsvd6;    /* Payload */};/* SCSI Data Response Hdr */struct IscsiDataRspHdr {    UINT8  opcode;#ifdef ISCSI_BIG_ENDIAN_BITFIELD    UINT8  final:1,	   ack:1,	   rsvd1:3,           overflow:1,           underflow:1,           status_present:1;#else    UINT8  status_present:1,	   underflow:1,	   overflow:1,	   rsvd1:3,	   ack:1,	   final:1;#endif    UINT8  rsvd2;    UINT8  cmd_status;    UINT8  hlength;    UINT8  dlength[3];    UINT8  lun[8];    UINT32 itt;    UINT32 ttt;    UINT32 statsn;    UINT32 expcmdsn;    UINT32 maxcmdsn;    UINT32 datasn;    UINT32 offset;    UINT32 residual_count;};/* Text Header */struct IscsiTextHdr {    UINT8  opcode;#ifdef ISCSI_BIG_ENDIAN_BITFIELD    UINT8  final:1,           cbit:1,           rsvd1:6;#else    UINT8  rsvd1:6,           cbit:1,           final:1;#endif    UINT8  rsvd2[2];    UINT8  hlength;    UINT8  dlength[3];    UINT8  rsvd4[8];    UINT32 itt;    UINT32 ttt;    UINT32 cmdsn;    UINT32 expstatsn;    UINT8  rsvd5[16];    /* Text - key=value pairs */};/* Text Response Header */struct IscsiTextRspHdr {    UINT8  opcode;#ifdef ISCSI_BIG_ENDIAN_BITFIELD    UINT8  final:1,           cbit:1,           rsvd1:6;#else    UINT8  rsvd1:6,           cbit:1,           final:1;#endif    UINT8  rsvd2[2];    UINT8  hlength;    UINT8  dlength[3];    UINT8  rsvd4[8];    UINT32 itt;    UINT32 ttt;    UINT32 statsn;    UINT32 expcmdsn;    UINT32 maxcmdsn;    UINT8  rsvd5[12];    /* Text Response - key:value pairs */};/* Login Header */struct IscsiLoginHdr {    UINT8  opcode;#ifdef ISCSI_BIG_ENDIAN_BITFIELD    UINT8  tbit:1,	   cbit:1,	   rsvd1:2,	   curr:2,	   next:2;#else    UINT8  next:2,	   curr:2,	   rsvd1:2,	   cbit:1,	   tbit:1;#endif    UINT8  max_version;	/* Max. version supported */    UINT8  min_version;	/* Min. version supported */    UINT8  hlength;    UINT8  dlength[3];    UINT8  isid[6];	/* Initiator Session ID */    UINT16 tsid;	/* Target Session ID */    UINT32 itt;		/* Initiator Task Tag */    UINT16 cid;    UINT16 rsvd3;                                                                   UINT32 cmdsn;    UINT32 expstatsn;    UINT8  rsvd5[16];};/* Login Response Header */struct IscsiLoginRspHdr {    UINT8  opcode;#ifdef ISCSI_BIG_ENDIAN_BITFIELD    UINT8  tbit:1,	   cbit:1,	   rsvd:2,	   curr:2,	   next:2;#else    UINT8  next:2,	   curr:2,	   rsvd:2,	   cbit:1,	   tbit:1;#endif    UINT8  max_version;		/* Max. version supported */    UINT8  active_version;	/* Active version */    UINT8  hlength;    UINT8  dlength[3];    UINT8  isid[6];             /* Initiator Session ID */    UINT16 tsid;		/* Target Session ID */    UINT32 itt;			/* Initiator Task Tag */    UINT32 rsvd3;    UINT32 statsn;    UINT32 expcmdsn;    UINT32 maxcmdsn;    UINT8  status_class;	/* see Login RSP ststus classes below */    UINT8  status_detail;	/* see Login RSP Status details below */    UINT8  rsvd4[10];};/* Login stage (phase) codes  for CNxSG */#define ISCSI_SECURITY_NEGOTIATION_PHASE	0#define ISCSI_OP_PARMS_NEGOTIATION_PHASE	1#define ISCSI_FULL_FEATURE_PHASE		3/* Login Status response classes */#define STATUS_CLASS_SUCCESS		0x00#define STATUS_CLASS_REDIRECT		0x01#define STATUS_CLASS_INITIATOR_ERR	0x02#define STATUS_CLASS_TARGET_ERR		0x03/* Login Status response detail codes *//* Class-0 (Success) */#define ISCSI_LOGIN_STATUS_ACCEPT		0x00/* Class-1 (Redirection) */#define ISCSI_LOGIN_STATUS_TGT_MOVED_TEMP	0x01#define ISCSI_LOGIN_STATUS_TGT_MOVED_PERM	0x02/* Class-2 (Initiator Error) */#define ISCSI_LOGIN_STATUS_INIT_ERR		0x00#define ISCSI_LOGIN_STATUS_AUTH_FAILED		0x01#define ISCSI_LOGIN_STATUS_TGT_FORBIDDEN	0x02#define ISCSI_LOGIN_STATUS_TGT_NOT_FOUND	0x03#define ISCSI_LOGIN_STATUS_TGT_REMOVED		0x04#define ISCSI_LOGIN_STATUS_NO_VERSION		0x05#define ISCSI_LOGIN_STATUS_ISID_ERROR		0x06#define ISCSI_LOGIN_STATUS_MISSING_FIELDS	0x07#define ISCSI_LOGIN_STATUS_CONN_ADD_FAILED	0x08#define ISCSI_LOGIN_STATUS_NO_SESSION_TYPE	0x09#define ISCSI_LOGIN_STATUS_NO_SESSION           0x0a#define ISCSI_LOGIN_STATUS_INVALID_REQUEST      0x0b/* Class-3 (Target Error) */#define ISCSI_LOGIN_STATUS_TARGET_ERROR		0x00#define ISCSI_LOGIN_STATUS_SVC_UNAVAILABLE	0x01#define ISCSI_LOGIN_STATUS_NO_RESOURCES	        0x02/* Logout Header */struct IscsiLogoutHdr {    UINT8  opcode;#ifdef ISCSI_BIG_ENDIAN_BITFIELD    UINT8  fbit:1,           reason:7;#else    UINT8  reason:7,           fbit:1;#endif    UINT8  rsvd1[2];    UINT8  hlength;    UINT8  dlength[3];    UINT8  rsvd2[8];    UINT32 itt;		/* Initiator Task Tag */    UINT16 cid;    UINT8  rsvd3[2];    UINT32 cmdsn;    UINT32 expstatsn;    UINT8  rsvd4[16];};/* logout reason_code values */#define ISCSI_LOGOUT_REASON_CLOSE_SESSION	0#define ISCSI_LOGOUT_REASON_CLOSE_CONNECTION	1#define ISCSI_LOGOUT_REASON_RECOVERY		2#define ISCSI_LOGOUT_REASON_AEN_REQUEST	        3/* Logout Response Header */struct IscsiLogoutRspHdr {    UINT8  opcode;#ifdef ISCSI_BIG_ENDIAN_BITFIELD    UINT8  fbit:1,           rsvd1:7;#else    UINT8  rsvd1:7,           fbit:1;#endif    UINT8  response;		/* see Logout response values below */    UINT8  rsvd2;    UINT8  hlength;    UINT8  dlength[3];    UINT8  rsvd3[8];    UINT32 itt;			/* Initiator Task Tag */    UINT32 rsvd4;    UINT32 statsn;    UINT32 expcmdsn;    UINT32 maxcmdsn;    UINT32 rsvd5;    UINT16 t2wait;    UINT16 t2retain;    UINT32 rsvd6;};/* logout response status values */#define ISCSI_LOGOUT_SUCCESS		  0#define ISCSI_LOGOUT_CID_NOT_FOUND	  1#define ISCSI_LOGOUT_RECOVERY_UNSUPPORTED 2#define ISCSI_LOGOUT_CLEANUP_FAILED	  3/* SNACK Header */struct IscsiSNACKHdr {    UINT8  opcode;#ifdef ISCSI_BIG_ENDIAN_BITFIELD    UINT8  fbit:1,	   rsvd1:3,	   type:4;#else    UINT8  type:4,	   rsvd1:3,	   fbit:1;#endif    UINT8  rsvd2[14];    UINT32 itt;    UINT32 begrun;    UINT32 runlength;    UINT32 expstatsn;    UINT32 rsvd3;    UINT32 expdatasn;    UINT8  rsvd6[8];};/* Reject Message Header */struct IscsiRejectRspHdr {    UINT8  opcode;#ifdef ISCSI_BIG_ENDIAN_BITFIELD    UINT8  fbit:1,           rsvd1:7;#else    UINT8  rsvd1:7,           fbit:1;#endif    UINT8  reason;    UINT8  rsvd2;    UINT8  rsvd3;    UINT8  dlength[3];    UINT8  rsvd4[16];    UINT32 statsn;    UINT32 expcmdsn;    UINT32 maxcmdsn;    UINT32 datasn;    UINT8  rsvd5[8];    /* Text - Rejected hdr */};/* Reason for Reject */#define CMD_BEFORE_LOGIN        1#define DATA_DIGEST_ERROR       2#define DATA_SNACK_REJECT       3#define ISCSI_PROTOCOL_ERROR    4#define CMD_NOT_SUPPORTED       5#define IMM_CMD_REJECT          6#define TASK_IN_PROGRESS        7#define INVALID_SNACK           8#define BOOKMARK_REJECTED       9#define BOOKMARK_NO_RESOURCES   10#define NEGOTIATION_RESET	11#ifdef __cplusplus}#endif#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -