Age | Commit message (Collapse) | Author | |
---|---|---|---|
2012-10-26 | tcm_qla2xxx: Format VPD page 83h SCSI name string according to SPC | Roland Dreier | |
My draft of SPC-4 says the following about the SCSI name string in inquiry VPD page 83h: The SCSI NAME STRING field starts with either: a) the four UTF-8 characters 'eui.' concatenated with 16, 24, or 32 hexadecimal digits (i.e., the UTF-8 characters 0 through 9 and A through F) for an EUI-64 based identifier (see 7.8.6.5). The first hexadecimal digit shall be the most significant four bits of the first byte (i.e., most significant byte) of the EUI-64 based identifier; b) the four UTF-8 characters 'naa.' concatenated with 16 or 32 hexadecimal digits for an NAA identifier (see 7.8.6.6). The first hexadecimal digit shall be the most significant four bits of the first byte (i.e., most significant byte) of the NAA identifier; or c) the four UTF-8 characters 'iqn.' concatenated with an iSCSI Name for an iSCSI-name based identifier (see iSCSI). However, the .tpg_get_wwn method for tcm_qla2xxx formats the WWN so the SCSI name string looks like "52:4a:93:7d:24:5f:b2:12,t,0x0001". This patch corrects the code so that VPD 83h gives a SPC-compliant SCSI name string like "naa.524a937d245fb212,t,0x0001" while leavig other uses alone (so configfs will still work with ':' separated WWNs). Signed-off-by: Roland Dreier <roland@purestorage.com> Cc: Chad Dupuis <chad.dupuis@qlogic.com> Cc: Arun Easi <arun.easi@qlogic.com> Cc: Saurav Kashyap <saurav.kashyap@qlogic.com> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org> | |||
2012-05-22 | [SCSI] tcm_qla2xxx: Add >= 24xx series fabric module for target-core | Nicholas Bellinger | |
This patch adds support for tcm_qla2xxx fabric module for target-core using the new qla_target.c LLD logic. This includes support for explict NodeACLs via configfs using tcm_qla2xxx_setup_nacl_from_rport() from libfc struct fc_host->rports, and demo-mode support for virtual LUN=0 access. This patch also adds support for using tcm_qla2xxx_lport->lport_fcport_map and ->lport_loopid_map of btree_head32 to track struct se_node_acl pointers for individual 24-bit Port ID and 16-bit Loop ID values w/ qla_target_template ->find_sess_by_s_id() and ->find_sess_by_loop_id() used in a number of locations into the primary I/O dispatch logic in qla_target.c LLD code. The main piece for FC Nexus setup is in tcm_qla2xxx_check_initiator_node_acl(), which calls tcm_qla2xxx_set_sess_by_[s_id,loop_id]() to setup our lport->lport_fcport_map and lport_loopid_map pointers respectively, and register the new nexus with TCM via __transport_register_session(). (nab: Add qla_tgt_mgmt_cmd usage with TARGET_SCF_ACK_KREF during TMRs + change tcm_qla2xxx_nacl->nport_id to u32 (DanC)) (danc: tcm_qla2xxx: checking for NULL instead of IS_ERR()) (roland: Fix up v3.5 breakage for removal of transport_do_task_sg_chain + Add hook so qla_target code can shutdown sessions) (steveh: Convert FC address map from flat array to btree) (randy: fix qla2xxx printk format warnings for size_t) (joern: Make most of tcm_qla2xxx static + remove unnecessary workqueue_struct prototypes + use WWN_SIZE instead of hard-coded constants) Signed-off-by: Nicholas A. Bellinger <nab@linux-iscsi.org> Signed-off-by: Chad Dupuis <chad.dupuis@qlogic.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com> |