Virtual SCSI HBA Subsystem Does Not Support All SCSI Enclosure Services Devices

An SES device that is seen by the Oracle Solaris OS as a secondary function is an SES device type that cannot be supported by vhba. vhba can support an SES device whose device type has a value of 0xd as specified in the inq_dtype field of the INQUIRY payload.

When the vhba binary in the guest domain attempts to initialize some SCSI enclosure services (SES) devices, vhba causes scsi to issue the following warning message:

... scsi: WARNING: scsi_enumeration_failed: vhba2 probe@w50080e51bfd32004,0,d enumeration failed during tran_tgt_init

The ,d substring represents the 0xd hexadecimal digit, which is the SCSI industry standard code for an SES device. The ,d string indicates that this warning message is a result of an unsupported type of SES device.

vhba can support an SES device that has a device type of 0xd that is specified in the inq_dtype field of the INQUIRY payload:

# mdb -k
> ::vsan
vsan_t( 6400126e08c0 ) cfg-hdl(0) iport-path(/pci@300/pci@1/pci@0/pci@4/SUNW,emlxs@0,11/fp@0,0)
    vsan_iport_t( 6400125b8710 )
        vsan_tport_t( 64001bf89718 ) tport_phys(w216000c0ff8089d5)
        vsan_lun_t( 640011aa65d0 ) lun(0) vlun-id(1127b) []

> 640011aa65d0::print vsan_lun_t vl_sd |::print struct scsi_device sd_inq |::print struct scsi_inquiry inq_dtype
inq_dtype = d