linux-nvme.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: Hannes Reinecke <hare@suse.de>
To: Christoph Hellwig <hch@lst.de>
Cc: "linux-nvme@lists.infradead.org" <linux-nvme@lists.infradead.org>,
	Keith Busch <keith.busch@wdc.com>,
	Sagi Grimberg <sagi@grimberg.me>
Subject: Re: Case-sensitive host NQN
Date: Wed, 12 Feb 2020 18:51:54 +0100	[thread overview]
Message-ID: <055b0c4e-905a-7f3f-d5eb-595e127d423b@suse.de> (raw)
In-Reply-To: <20200212173529.GA5648@lst.de>

On 2/12/20 6:35 PM, Christoph Hellwig wrote:
> On Wed, Feb 12, 2020 at 01:58:26PM +0100, Hannes Reinecke wrote:
>> Hi all,
>>
>> I've stumbled across a slight weirdness for our handling of host NQNs.
>> We do format them like
>>
>> # cat /etc/nvme/hostnqn
>> nqn.2014-08.org.nvmexpress:uuid:36343050-3834-584D-5138-33313030344E
>>
>> as this is a UUID, one would expect that it's identical to
>>
>> # cat /etc/nvme/hostnqn
>> nqn.2014-08.org.nvmexpress:uuid:36343050-3834-584d-5138-33313030344e
>>
>> (Note the lowercase letters).
>> As it turns out, this is _not_ the case, causing the connection not to
>> be established.
>>
>> Which is slightly weird, and not what one would expect.
>> The NVMe spec only has this vague statement
>> "Upon entry NVM host software may process an NVMe qualified name..."
>> so we would be spec-compatible when setting the fields to lowercase
>> when reading the nqn.
> 
> Check section 7.9 of NVMe 1.4:
> 
> "NVMe hosts, controllers and NVM subsystems compare (e.g., for equality)
> NVMe Qualified Names used by NVMe as binary strings without any text
> processing or text comparison logic that is specific to the Unicode
> character set or locale (e.g., case folding or conversion to lower case,
> Unicode normalization)."
> 
> so no, they are case sensitive and the above is by design.
> 
(I knew I would be getting this answer :-)
But if you read the very next sentence it says:

Any such text processing:
a) may occur as part of entry of NVMe Qualified Names into NVMe hosts 
and NVM subsystems; and
b) should not occur as part of receiving NVMe Qualified Names via an 
NVMe connection, as shown in Figure 436.

IE we would be perfectly within the spec to convert the nqn to eg 
lowercase when reading it from /etc/nvme/hostnqn.

Cheers,

Hannes
-- 
Dr. Hannes Reinecke            Teamlead Storage & Networking
hare@suse.de                               +49 911 74053 688
SUSE Software Solutions GmbH, Maxfeldstr. 5, 90409 Nürnberg
HRB 36809 (AG Nürnberg), Geschäftsführer: Felix Imendörffer

_______________________________________________
linux-nvme mailing list
linux-nvme@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-nvme

  reply	other threads:[~2020-02-12 17:52 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-12 12:58 Case-sensitive host NQN Hannes Reinecke
2020-02-12 17:35 ` Christoph Hellwig
2020-02-12 17:51   ` Hannes Reinecke [this message]
2020-02-12 17:55     ` Christoph Hellwig
2020-02-12 19:20       ` Sagi Grimberg
2020-02-13 15:38       ` Hannes Reinecke
2020-02-13 23:33         ` Sagi Grimberg

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=055b0c4e-905a-7f3f-d5eb-595e127d423b@suse.de \
    --to=hare@suse.de \
    --cc=hch@lst.de \
    --cc=keith.busch@wdc.com \
    --cc=linux-nvme@lists.infradead.org \
    --cc=sagi@grimberg.me \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).