diff options
Diffstat (limited to 'include/iscsi_if.h')
-rw-r--r-- | include/iscsi_if.h | 190 |
1 files changed, 189 insertions, 1 deletions
diff --git a/include/iscsi_if.h b/include/iscsi_if.h index dad9fd8..20f2bc2 100644 --- a/include/iscsi_if.h +++ b/include/iscsi_if.h @@ -68,8 +68,14 @@ enum iscsi_uevent_e { ISCSI_UEVENT_PING = UEVENT_BASE + 22, ISCSI_UEVENT_GET_CHAP = UEVENT_BASE + 23, ISCSI_UEVENT_DELETE_CHAP = UEVENT_BASE + 24, + ISCSI_UEVENT_SET_FLASHNODE_PARAMS = UEVENT_BASE + 25, + ISCSI_UEVENT_NEW_FLASHNODE = UEVENT_BASE + 26, + ISCSI_UEVENT_DEL_FLASHNODE = UEVENT_BASE + 27, + ISCSI_UEVENT_LOGIN_FLASHNODE = UEVENT_BASE + 28, + ISCSI_UEVENT_LOGOUT_FLASHNODE = UEVENT_BASE + 29, + ISCSI_UEVENT_LOGOUT_FLASHNODE_SID = UEVENT_BASE + 30, - ISCSI_UEVENT_MAX = ISCSI_UEVENT_DELETE_CHAP, + ISCSI_UEVENT_MAX = ISCSI_UEVENT_LOGOUT_FLASHNODE_SID, /* up events */ ISCSI_KEVENT_RECV_PDU = KEVENT_BASE + 1, @@ -219,6 +225,31 @@ struct iscsi_uevent { uint32_t host_no; uint16_t chap_tbl_idx; } delete_chap; + struct msg_set_flashnode_param { + uint32_t host_no; + uint32_t flashnode_idx; + uint32_t count; + } set_flashnode; + struct msg_new_flashnode { + uint32_t host_no; + uint32_t len; + } new_flashnode; + struct msg_del_flashnode { + uint32_t host_no; + uint32_t flashnode_idx; + } del_flashnode; + struct msg_login_flashnode { + uint32_t host_no; + uint32_t flashnode_idx; + } login_flashnode; + struct msg_logout_flashnode { + uint32_t host_no; + uint32_t flashnode_idx; + } logout_flashnode; + struct msg_logout_flashnode_sid { + uint32_t host_no; + uint32_t sid; + } logout_flashnode_sid; } u; union { /* messages k -> u */ @@ -276,6 +307,9 @@ struct iscsi_uevent { with each ping request */ uint32_t data_size; } ping_comp; + struct msg_new_flashnode_ret { + uint32_t flashnode_idx; + } new_flashnode_ret; } r; } __attribute__ ((aligned (sizeof(uint64_t)))); @@ -283,6 +317,7 @@ enum iscsi_param_type { ISCSI_PARAM, /* iscsi_param (session, conn, target, LU) */ ISCSI_HOST_PARAM, /* iscsi_host_param */ ISCSI_NET_PARAM, /* iscsi_net_param */ + ISCSI_FLASHNODE_PARAM, /* iscsi_flashnode_param */ }; struct iscsi_iface_param_info { @@ -502,6 +537,159 @@ enum iscsi_param { #define ISCSI_TGT_RESET_TMO (1ULL << ISCSI_PARAM_TGT_RESET_TMO) #define ISCSI_TARGET_ALIAS (1ULL << ISCSI_PARAM_TARGET_ALIAS) +/* iSCSI Flash Target params */ +enum iscsi_flashnode_param { + ISCSI_FLASHNODE_IS_FW_ASSIGNED_IPV6, + ISCSI_FLASHNODE_PORTAL_TYPE, + ISCSI_FLASHNODE_AUTO_SND_TGT_DISABLE, + ISCSI_FLASHNODE_DISCOVERY_SESS, + ISCSI_FLASHNODE_ENTRY_EN, + ISCSI_FLASHNODE_HDR_DGST_EN, + ISCSI_FLASHNODE_DATA_DGST_EN, + ISCSI_FLASHNODE_IMM_DATA_EN, + ISCSI_FLASHNODE_INITIAL_R2T_EN, + ISCSI_FLASHNODE_DATASEQ_INORDER, + ISCSI_FLASHNODE_PDU_INORDER, + ISCSI_FLASHNODE_CHAP_AUTH_EN, + ISCSI_FLASHNODE_SNACK_REQ_EN, + ISCSI_FLASHNODE_DISCOVERY_LOGOUT_EN, + ISCSI_FLASHNODE_BIDI_CHAP_EN, + /* make authentication for discovery sessions optional */ + ISCSI_FLASHNODE_DISCOVERY_AUTH_OPTIONAL, + ISCSI_FLASHNODE_ERL, + ISCSI_FLASHNODE_TCP_TIMESTAMP_STAT, + ISCSI_FLASHNODE_TCP_NAGLE_DISABLE, + ISCSI_FLASHNODE_TCP_WSF_DISABLE, + ISCSI_FLASHNODE_TCP_TIMER_SCALE, + ISCSI_FLASHNODE_TCP_TIMESTAMP_EN, + ISCSI_FLASHNODE_IP_FRAG_DISABLE, + ISCSI_FLASHNODE_MAX_RECV_DLENGTH, + ISCSI_FLASHNODE_MAX_XMIT_DLENGTH, + ISCSI_FLASHNODE_FIRST_BURST, + ISCSI_FLASHNODE_DEF_TIME2WAIT, + ISCSI_FLASHNODE_DEF_TIME2RETAIN, + ISCSI_FLASHNODE_MAX_R2T, + ISCSI_FLASHNODE_KEEPALIVE_TMO, + ISCSI_FLASHNODE_ISID, + ISCSI_FLASHNODE_TSID, + ISCSI_FLASHNODE_PORT, + ISCSI_FLASHNODE_MAX_BURST, + ISCSI_FLASHNODE_DEF_TASKMGMT_TMO, + ISCSI_FLASHNODE_IPADDR, + ISCSI_FLASHNODE_ALIAS, + ISCSI_FLASHNODE_REDIRECT_IPADDR, + ISCSI_FLASHNODE_MAX_SEGMENT_SIZE, + ISCSI_FLASHNODE_LOCAL_PORT, + ISCSI_FLASHNODE_IPV4_TOS, + ISCSI_FLASHNODE_IPV6_TC, + ISCSI_FLASHNODE_IPV6_FLOW_LABEL, + ISCSI_FLASHNODE_NAME, + ISCSI_FLASHNODE_TPGT, + ISCSI_FLASHNODE_LINK_LOCAL_IPV6, + ISCSI_FLASHNODE_DISCOVERY_PARENT_IDX, + ISCSI_FLASHNODE_DISCOVERY_PARENT_TYPE, + ISCSI_FLASHNODE_TCP_XMIT_WSF, + ISCSI_FLASHNODE_TCP_RECV_WSF, + ISCSI_FLASHNODE_CHAP_IN_IDX, + ISCSI_FLASHNODE_CHAP_OUT_IDX, + ISCSI_FLASHNODE_USERNAME, + ISCSI_FLASHNODE_USERNAME_IN, + ISCSI_FLASHNODE_PASSWORD, + ISCSI_FLASHNODE_PASSWORD_IN, + ISCSI_FLASHNODE_STATSN, + ISCSI_FLASHNODE_EXP_STATSN, + ISCSI_FLASHNODE_IS_BOOT_TGT, + + ISCSI_FLASHNODE_MAX, +}; + +#define ISCSI_FNODE_IS_FW_ASSIGNED_IPV6 \ + (1ULL << ISCSI_FLASHNODE_IS_FW_ASSIGNED_IPV6) +#define ISCSI_FNODE_PORTAL_TYPE (1ULL << ISCSI_FLASHNODE_PORTAL_TYPE) +#define ISCSI_FNODE_AUTO_SND_TGT_DISABLE \ + (1ULL << ISCSI_FLASHNODE_OPT_AUTO_SND_TGT_DISABLE) +#define ISCSI_FNODE_DISCOVERY_SESS \ + (1ULL << ISCSI_FLASHNODE_OPT_DISCOVERY_SESS) +#define ISCSI_FNODE_ENTRY_EN (1ULL << ISCSI_FLASHNODE_ENTRY_EN) +#define ISCSI_FNODE_HDR_DGST_EN (1ULL << ISCSI_FLASHNODE_HDR_DGST_EN) +#define ISCSI_FNODE_DATA_DGST_EN (1ULL << ISCSI_FLASHNODE_DATA_DGST_EN) +#define ISCSI_FNODE_IMM_DATA_EN (1ULL << ISCSI_FLASHNODE_IMM_DATA_EN) +#define ISCSI_FNODE_INITIAL_R2T_EN (1ULL << ISCSI_FLASHNODE_INITIAL_R2T_EN) +#define ISCSI_FNODE_DATASEQ_INORDER \ + (1ULL << ISCSI_FLASHNODE_DATASEQ_INORDER) +#define ISCSI_FNODE_PDU_INORDER (1ULL << ISCSI_FLASHNODE_PDU_INORDER) +#define ISCSI_FNODE_CHAP_AUTH_EN (1ULL << ISCSI_FLASHNODE_CHAP_AUTH_EN) +#define ISCSI_FNODE_SNACK_REQ_EN (1ULL << ISCSI_FLASHNODE_SNACK_REQ_EN) +#define ISCSI_FNODE_DISCOVERY_LOGOUT_EN \ + (1ULL << ISCSI_FLASHNODE_DISCOVERY_LOGOUT_EN) +#define ISCSI_FNODE_BIDI_CHAP_EN (1ULL << ISCSI_FLASHNODE_BIDI_CHAP_EN) +#define ISCSI_FNODE_DISCOVERY_AUTH_OPTIONAL \ + (1ULL << ISCSI_FLASHNODE_DISCOVERY_AUTH_OPTIONAL) +#define ISCSI_FNODE_ERL (1ULL << ISCSI_FLASHNODE_ERL) +#define ISCSI_FNODE_TCP_TIMESTAMP_STAT \ + (1ULL << ISCSI_FLASHNODE_TCP_TIMESTAMP_STAT) +#define ISCSI_FNODE_TCP_NAGLE_DISABLE \ + (1ULL << ISCSI_FLASHNODE_TCP_NAGLE_DISABLE) +#define ISCSI_FNODE_TCP_WSF_DISABLE \ + (1ULL << ISCSI_FLASHNODE_TCP_WSF_DISABLE) +#define ISCSI_FNODE_TCP_TIMER_SCALE \ + (1ULL << ISCSI_FLASHNODE_TCP_TIMER_SCALE) +#define ISCSI_FNODE_TCP_TIMESTAMP_ENABLE \ + (1ULL << ISCSI_FLASHNODE_TCP_TIMESTAMP_ENABLE) +#define ISCSI_FNODE_IP_FRAG_DISABLE \ + (1ULL << ISCSI_FLASHNODE_IP_FRAG_DISABLE) +#define ISCSI_FNODE_MAX_RECV_DLENGTH \ + (1ULL << ISCSI_FLASHNODE_MAX_RECV_DLENGTH) +#define ISCSI_FNODE_MAX_XMIT_DLENGTH \ + (1ULL << ISCSI_FLASHNODE_MAX_XMIT_DLENGTH) +#define ISCSI_FNODE_FIRST_BURST (1ULL << ISCSI_FLASHNODE_FIRST_BURST) +#define ISCSI_FNODE_DEF_TIME2WAIT (1ULL << ISCSI_FLASHNODE_DEF_TIME2WAIT) +#define ISCSI_FNODE_DEF_TIME2RETAIN \ + (1ULL << ISCSI_FLASHNODE_DEF_TIME2RETAIN) +#define ISCSI_FNODE_MAX_R2T (1ULL << ISCSI_FLASHNODE_MAX_R2T) +#define ISCSI_FNODE_KEEPALIVE_TMO (1ULL << ISCSI_FLASHNODE_KEEPALIVE_TMO) +#define ISCSI_FNODE_ISID (1ULL << ISCSI_FLASHNODE_ISID) +#define ISCSI_FNODE_TSID (1ULL << ISCSI_FLASHNODE_TSID) +#define ISCSI_FNODE_PORT (1ULL << ISCSI_FLASHNODE_PORT) +#define ISCSI_FNODE_MAX_BURST (1ULL << ISCSI_FLASHNODE_MAX_BURST) +#define ISCSI_FNODE_DEF_TMF_TMO (1ULL << ISCSI_FLASHNODE_DEF_TMF_TMO) +#define ISCSI_FNODE_IPADDR (1ULL << ISCSI_FLASHNODE_IPADDR) +#define ISCSI_FNODE_ALIAS (1ULL << ISCSI_FLASHNODE_ALIAS) +#define ISCSI_FNODE_REDIRECT_IPADDR \ + (1ULL << ISCSI_FLASHNODE_REDIRECT_IPADDR) +#define ISCSI_FNODE_MAX_SEGMENT_SIZE \ + (1ULL << ISCSI_FLASHNODE_MAX_SEGMENT_SIZE) +#define ISCSI_FNODE_LOCAL_PORT (1ULL << ISCSI_FLASHNODE_LOCAL_PORT) +#define ISCSI_FNODE_IPV4_TOS (1ULL << ISCSI_FLASHNODE_IPV4_TOS) +#define ISCSI_FNODE_IPV6_TC (1ULL << ISCSI_FLASHNODE_IPV6_TC) +#define ISCSI_FNODE_IPV6_FLOW_LABEL \ + (1ULL << ISCSI_FLASHNODE_IPV6_FLOW_LABEL) +#define ISCSI_FNODE_NAME (1ULL << ISCSI_FLASHNODE_NAME) +#define ISCSI_FNODE_TPGT (1ULL << ISCSI_FLASHNODE_TPGT) +#define ISCSI_FNODE_LINK_LOCAL_IPV6 \ + (1ULL << ISCSI_FLASHNODE_LINK_LOCAL_IPV6) +#define ISCSI_FNODE_DISCOVERY_PARENT_IDX \ + (1ULL << ISCSI_FLASHNODE_DISCOVERY_PARENT_IDX) +#define ISCSI_FNODE_DISCOVERY_PARENT_TYPE \ + (1ULL << ISCSI_FLASHNODE_DISCOVERY_PARENT_TYPE) +#define ISCSI_FNODE_TCP_XMIT_WSF (1ULL << ISCSI_FLASHNODE_TCP_XMIT_WSF) +#define ISCSI_FNODE_TCP_RECV_WSF (1ULL << ISCSI_FLASHNODE_TCP_RECV_WSF) +#define ISCSI_FNODE_CHAP_IN_IDX (1ULL << ISCSI_FLASHNODE_CHAP_IN_IDX) +#define ISCSI_FNODE_CHAP_OUT_IDX (1ULL << ISCSI_FLASHNODE_CHAP_OUT_IDX) +#define ISCSI_FNODE_USERNAME (1ULL << ISCSI_FLASHNODE_USERNAME) +#define ISCSI_FNODE_USERNAME_IN (1ULL << ISCSI_FLASHNODE_USERNAME_IN) +#define ISCSI_FNODE_PASSWORD (1ULL << ISCSI_FLASHNODE_PASSWORD) +#define ISCSI_FNODE_PASSWORD_IN (1ULL << ISCSI_FLASHNODE_PASSWORD_IN) +#define ISCSI_FNODE_STATSN (1ULL << ISCSI_FLASHNODE_STATSN) +#define ISCSI_FNODE_EXP_STATSN (1ULL << ISCSI_FLASHNODE_EXP_STATSN) +#define ISCSI_FNODE_IS_BOOT_TGT (1ULL << ISCSI_FLASHNODE_IS_BOOT_TGT) + +struct iscsi_flashnode_param_info { + uint32_t len; /* Actual length of the param */ + uint16_t param; /* iscsi param value */ + uint8_t value[0]; /* length sized value follows */ +} __attribute__((__packed__)); + /* iSCSI HBA params */ enum iscsi_host_param { ISCSI_HOST_PARAM_HWADDRESS, |