diff options
| author | Alexander Motin <mav@FreeBSD.org> | 2014-07-05 21:18:33 +0000 |
|---|---|---|
| committer | Alexander Motin <mav@FreeBSD.org> | 2014-07-05 21:18:33 +0000 |
| commit | 6d81c129dd2062b6ca47d4f9682030affb5020ca (patch) | |
| tree | 8dd744dc9abb3eaabb01ff17f89d2e955135dc9c | |
| parent | a48d677f268433a839407df83dea02c34f221f05 (diff) | |
Notes
| -rw-r--r-- | sys/cam/ctl/ctl_frontend_iscsi.c | 7 | ||||
| -rw-r--r-- | sys/cam/ctl/ctl_frontend_iscsi.h | 2 | ||||
| -rw-r--r-- | sys/cam/ctl/ctl_ioctl.h | 1 | ||||
| -rw-r--r-- | usr.sbin/ctld/ctld.h | 1 | ||||
| -rw-r--r-- | usr.sbin/ctld/kernel.c | 2 | ||||
| -rw-r--r-- | usr.sbin/ctld/login.c | 3 |
6 files changed, 16 insertions, 0 deletions
diff --git a/sys/cam/ctl/ctl_frontend_iscsi.c b/sys/cam/ctl/ctl_frontend_iscsi.c index da2ba3f927eb0..31f914b12107e 100644 --- a/sys/cam/ctl/ctl_frontend_iscsi.c +++ b/sys/cam/ctl/ctl_frontend_iscsi.c @@ -1507,6 +1507,13 @@ cfiscsi_ioctl_handoff(struct ctl_iscsi *ci) cihp->initiator_addr, sizeof(cs->cs_initiator_addr)); strlcpy(cs->cs_initiator_alias, cihp->initiator_alias, sizeof(cs->cs_initiator_alias)); + memcpy(cs->cs_initiator_isid, + cihp->initiator_isid, sizeof(cs->cs_initiator_isid)); + snprintf(cs->cs_initiator_id, sizeof(cs->cs_initiator_id), + "%s,i,0x%02x%02x%02x%02x%02x%02x", cs->cs_initiator_name, + cihp->initiator_isid[0], cihp->initiator_isid[1], + cihp->initiator_isid[2], cihp->initiator_isid[3], + cihp->initiator_isid[4], cihp->initiator_isid[5]); #ifdef ICL_KERNEL_PROXY if (cihp->socket > 0) { diff --git a/sys/cam/ctl/ctl_frontend_iscsi.h b/sys/cam/ctl/ctl_frontend_iscsi.h index 887576ad12e7c..886e8acd361d0 100644 --- a/sys/cam/ctl/ctl_frontend_iscsi.h +++ b/sys/cam/ctl/ctl_frontend_iscsi.h @@ -86,6 +86,8 @@ struct cfiscsi_session { char cs_initiator_name[CTL_ISCSI_NAME_LEN]; char cs_initiator_addr[CTL_ISCSI_ADDR_LEN]; char cs_initiator_alias[CTL_ISCSI_ALIAS_LEN]; + char cs_initiator_isid[6]; + char cs_initiator_id[CTL_ISCSI_NAME_LEN + 5 + 6 + 1]; unsigned int cs_id; int cs_ctl_initid; #ifdef ICL_KERNEL_PROXY diff --git a/sys/cam/ctl/ctl_ioctl.h b/sys/cam/ctl/ctl_ioctl.h index 06ff93682b6cd..94a7cc8f3985b 100644 --- a/sys/cam/ctl/ctl_ioctl.h +++ b/sys/cam/ctl/ctl_ioctl.h @@ -681,6 +681,7 @@ struct ctl_iscsi_handoff_params { char initiator_name[CTL_ISCSI_NAME_LEN]; char initiator_addr[CTL_ISCSI_ADDR_LEN]; char initiator_alias[CTL_ISCSI_ALIAS_LEN]; + uint8_t initiator_isid[6]; char target_name[CTL_ISCSI_NAME_LEN]; int socket; int portal_group_tag; diff --git a/usr.sbin/ctld/ctld.h b/usr.sbin/ctld/ctld.h index 5f7aea6d6f9b9..323ef2c9c0232 100644 --- a/usr.sbin/ctld/ctld.h +++ b/usr.sbin/ctld/ctld.h @@ -178,6 +178,7 @@ struct connection { char *conn_initiator_name; char *conn_initiator_addr; char *conn_initiator_alias; + uint8_t conn_initiator_isid[6]; uint32_t conn_cmdsn; uint32_t conn_statsn; size_t conn_max_data_segment_length; diff --git a/usr.sbin/ctld/kernel.c b/usr.sbin/ctld/kernel.c index dc07591bfb9b8..74cb27ed9a2d5 100644 --- a/usr.sbin/ctld/kernel.c +++ b/usr.sbin/ctld/kernel.c @@ -787,6 +787,8 @@ kernel_handoff(struct connection *conn) strlcpy(req.data.handoff.initiator_alias, conn->conn_initiator_alias, sizeof(req.data.handoff.initiator_alias)); } + memcpy(req.data.handoff.initiator_isid, conn->conn_initiator_isid, + sizeof(req.data.handoff.initiator_isid)); strlcpy(req.data.handoff.target_name, conn->conn_target->t_name, sizeof(req.data.handoff.target_name)); #ifdef ICL_KERNEL_PROXY diff --git a/usr.sbin/ctld/login.c b/usr.sbin/ctld/login.c index f830d15fc9299..b14b264ef9936 100644 --- a/usr.sbin/ctld/login.c +++ b/usr.sbin/ctld/login.c @@ -850,6 +850,9 @@ login(struct connection *conn) log_errx(1, "received Login PDU with non-zero TSIH"); } + memcpy(conn->conn_initiator_isid, bhslr->bhslr_isid, + sizeof(conn->conn_initiator_isid)); + /* * XXX: Implement the C flag some day. */ |
