[PATCH 1/7] nvme-fabrics: Add FC transport FC-NVME definitions
james.smart at broadcom.com
Wed Oct 5 16:21:12 PDT 2016
On 10/4/2016 6:58 AM, Christoph Hellwig wrote:
> On Tue, Oct 04, 2016 at 09:32:39AM +0200, Hannes Reinecke wrote:
>> I would have loved to use the SCSI FC headers here; eg the definitions
>> for FC-LS are most definitely duplicated.
>> But until we've sorted that one out:
> I remember we discussed this before, but I've forgot the outcome on
> why this needed to be separate. IIRC it was just a timing issue,
> but now that we've just missed the previous merge window we should
> have plenty of time to sort that out properly. Correct me if I'm wrong.
I looked at the include/uapi/scsi/fc headers.
The only field that should be there is the addition of the NVME type code.
The LS's things - although they look very similar to ELS things, they
aren't the same thing. The LS items are specific to type code 0x28 - a
value in the FC frame header, while ELS's are type code 0x01 in the
frame header. The content is specific to the type code. True, some of
the formats, like xx_ACC, and a little of xx_RJT are similar (on purpose
by the fc-nvme group) - there's no real reason that they had to be, so
actually forcing things into using the other's structures isn't a good
idea in case things change.
After looking at it - the only thing that I was wondering is whether the
fc-nvme definitions should be in "include/linux/nvme-fc.h" as it's
specific to nvme fabrics or whether they should be in
"include/uapi/scsi/fc/fc-nvme.h" - so it's in a location where all other
fc'isms are at. Even though NVME and the scsi directory name doesn't
seem to make sense.
More information about the Linux-nvme