"The Middle Layer’s purpose is to connect both Upper and
Lower Layers and in our case is the scsi_mod.ko module. The Lower
Layer is for the device drivers for the physical communication
interfaces between the host’s SCSI Layer and end target
device. Here is where we will find the device driver to the
HBA.
"Linux SCSI SubsystemWhenever the Lower Layer detects a newer
SCSI device, it will then provide scsi_mod.ko with the appropriate
host, bus (channel), target and LUN IDs. Depending on what type of
media the devices are would determine what Upper Layer driver will
be invoked. If you view /proc/scsi/scsi you can see what each SCSI
device’s type is:"