forked from luck/tmp_suning_uos_patched
tcm_qla2xxx: Format VPD page 83h SCSI name string according to SPC
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>
This commit is contained in:
parent
29c08cdabd
commit
c046aa0f0f
|
@ -237,7 +237,7 @@ static char *tcm_qla2xxx_get_fabric_wwn(struct se_portal_group *se_tpg)
|
|||
struct tcm_qla2xxx_tpg, se_tpg);
|
||||
struct tcm_qla2xxx_lport *lport = tpg->lport;
|
||||
|
||||
return &lport->lport_name[0];
|
||||
return lport->lport_naa_name;
|
||||
}
|
||||
|
||||
static char *tcm_qla2xxx_npiv_get_fabric_wwn(struct se_portal_group *se_tpg)
|
||||
|
@ -1534,6 +1534,7 @@ static struct se_wwn *tcm_qla2xxx_make_lport(
|
|||
lport->lport_wwpn = wwpn;
|
||||
tcm_qla2xxx_format_wwn(&lport->lport_name[0], TCM_QLA2XXX_NAMELEN,
|
||||
wwpn);
|
||||
sprintf(lport->lport_naa_name, "naa.%016llx", (unsigned long long) wwpn);
|
||||
|
||||
ret = tcm_qla2xxx_init_lport(lport);
|
||||
if (ret != 0)
|
||||
|
@ -1601,6 +1602,7 @@ static struct se_wwn *tcm_qla2xxx_npiv_make_lport(
|
|||
lport->lport_npiv_wwnn = npiv_wwnn;
|
||||
tcm_qla2xxx_npiv_format_wwn(&lport->lport_npiv_name[0],
|
||||
TCM_QLA2XXX_NAMELEN, npiv_wwpn, npiv_wwnn);
|
||||
sprintf(lport->lport_naa_name, "naa.%016llx", (unsigned long long) npiv_wwpn);
|
||||
|
||||
/* FIXME: tcm_qla2xxx_npiv_make_lport */
|
||||
ret = -ENOSYS;
|
||||
|
|
|
@ -61,6 +61,8 @@ struct tcm_qla2xxx_lport {
|
|||
u64 lport_npiv_wwnn;
|
||||
/* ASCII formatted WWPN for FC Target Lport */
|
||||
char lport_name[TCM_QLA2XXX_NAMELEN];
|
||||
/* ASCII formatted naa WWPN for VPD page 83 etc */
|
||||
char lport_naa_name[TCM_QLA2XXX_NAMELEN];
|
||||
/* ASCII formatted WWPN+WWNN for NPIV FC Target Lport */
|
||||
char lport_npiv_name[TCM_QLA2XXX_NPIV_NAMELEN];
|
||||
/* map for fc_port pointers in 24-bit FC Port ID space */
|
||||
|
|
Loading…
Reference in New Issue
Block a user