Both Linux and Windows scan each channel separately. Linux, in
addition, does not expect REPORT LUNS to use the logical unit
addressing
method in the returned list of LUNs. The driver converts the
channel/target/LUN tuple to that addressing method when it builds
the
SRP commands.
Right, I see that. And this is an approach that works, but is really
really ugly since it is assumes a fixed range of possible LUNs. It
also
relies on some kind of inference about which LUNs actually exist
since
SRP has no mechanism to report a non-existant "target" back to the
host
(since there is only one target, it can't have non-existant
targets, so
there is no mechanism for this).