1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151
|
#ifndef _IET_U_H
#define _IET_U_H
#define IET_VERSION_STRING "1.4.20.3"
/* The maximum length of 223 bytes in the RFC. */
#define ISCSI_NAME_LEN 256
#define ISCSI_ARGS_LEN 2048
#define ISCSI_LISTEN_PORT 3260
#define SCSI_ID_LEN 16
#define SCSI_SN_LEN (SCSI_ID_LEN * 2)
#ifndef aligned_u64
#define aligned_u64 unsigned long long __attribute__((aligned(8)))
#endif
struct module_info {
char version[128];
};
struct target_info {
u32 tid;
char name[ISCSI_NAME_LEN];
};
struct volume_info {
u32 tid;
u32 lun;
aligned_u64 args_ptr;
u32 args_len;
};
struct session_info {
u32 tid;
aligned_u64 sid;
char initiator_name[ISCSI_NAME_LEN];
u32 exp_cmd_sn;
u32 max_cmd_sn;
};
#define DIGEST_ALL (DIGEST_NONE | DIGEST_CRC32C)
#define DIGEST_NONE (1 << 0)
#define DIGEST_CRC32C (1 << 1)
struct conn_info {
u32 tid;
aligned_u64 sid;
u32 cid;
u32 stat_sn;
u32 exp_stat_sn;
int header_digest;
int data_digest;
int fd;
};
enum {
key_initial_r2t,
key_immediate_data,
key_max_connections,
key_max_recv_data_length,
key_max_xmit_data_length,
key_max_burst_length,
key_first_burst_length,
key_default_wait_time,
key_default_retain_time,
key_max_outstanding_r2t,
key_data_pdu_inorder,
key_data_sequence_inorder,
key_error_recovery_level,
key_header_digest,
key_data_digest,
key_ofmarker,
key_ifmarker,
key_ofmarkint,
key_ifmarkint,
session_key_last,
};
enum {
key_wthreads,
key_target_type,
key_queued_cmnds,
key_nop_interval,
key_nop_timeout,
target_key_last,
};
enum {
key_session,
key_target,
};
struct iscsi_param_info {
u32 tid;
aligned_u64 sid;
u32 param_type;
u32 partial;
u32 session_param[session_key_last];
u32 target_param[target_key_last];
};
enum iet_event_state {
E_CONN_CLOSE,
};
struct iet_event {
u32 tid;
aligned_u64 sid;
u32 cid;
u32 state;
};
#define DEFAULT_NR_WTHREADS 8
#define MIN_NR_WTHREADS 1
#define MAX_NR_WTHREADS 128
#define DEFAULT_NR_QUEUED_CMNDS 32
#define MIN_NR_QUEUED_CMNDS 1
#define MAX_NR_QUEUED_CMNDS 256
#define DEFAULT_NOP_INTERVAL 0
#define MIN_NOP_INTERVAL 0
#define MAX_NOP_INTERVAL 90
#define DEFAULT_NOP_TIMEOUT 0
#define MIN_NOP_TIMEOUT 0
#define MAX_NOP_TIMEOUT 90
#define NETLINK_IET 21
#define GET_MODULE_INFO _IOW('i', 20, struct module_info)
#define ADD_TARGET _IOWR('i', 21, struct target_info)
#define DEL_TARGET _IOW('i', 22, struct target_info)
#define ADD_VOLUME _IOW('i', 24, struct volume_info)
#define DEL_VOLUME _IOW('i', 25, struct volume_info)
#define ADD_SESSION _IOW('i', 26, struct session_info)
#define DEL_SESSION _IOW('i', 27, struct session_info)
#define GET_SESSION_INFO _IOWR('i', 28, struct session_info)
#define ADD_CONN _IOW('i', 29, struct conn_info)
#define DEL_CONN _IOW('i', 30, struct conn_info)
#define GET_CONN_INFO _IOWR('i', 31, struct conn_info)
#define ISCSI_PARAM_SET _IOW('i', 32, struct iscsi_param_info)
#define ISCSI_PARAM_GET _IOWR('i', 33, struct iscsi_param_info)
#endif
|