Linux-NVME Archive on lore.kernel.org
 help / color / Atom feed
* Case-sensitive host NQN
@ 2020-02-12 12:58 Hannes Reinecke
  2020-02-12 17:35 ` Christoph Hellwig
  0 siblings, 1 reply; 7+ messages in thread
From: Hannes Reinecke @ 2020-02-12 12:58 UTC (permalink / raw)
  To: Keith Busch; +Cc: Christoph Hellwig, linux-nvme, Sagi Grimberg

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.

Thoughts?

Cheers,

Hannes
-- 
Dr. Hannes Reinecke		           Kernel Storage Architect
hare@suse.de			                  +49 911 74053 688
SUSE Software Solutions Germany GmbH, Maxfeldstr. 5, 90409 Nürnberg
HRB 36809 (AG Nürnberg), GF: Felix Imendörffer

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

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Case-sensitive host NQN
  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
  0 siblings, 1 reply; 7+ messages in thread
From: Christoph Hellwig @ 2020-02-12 17:35 UTC (permalink / raw)
  To: Hannes Reinecke; +Cc: Sagi Grimberg, linux-nvme, Keith Busch, Christoph Hellwig

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.

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

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Case-sensitive host NQN
  2020-02-12 17:35 ` Christoph Hellwig
@ 2020-02-12 17:51   ` Hannes Reinecke
  2020-02-12 17:55     ` Christoph Hellwig
  0 siblings, 1 reply; 7+ messages in thread
From: Hannes Reinecke @ 2020-02-12 17:51 UTC (permalink / raw)
  To: Christoph Hellwig; +Cc: linux-nvme, Keith Busch, Sagi Grimberg

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

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Case-sensitive host NQN
  2020-02-12 17:51   ` Hannes Reinecke
@ 2020-02-12 17:55     ` Christoph Hellwig
  2020-02-12 19:20       ` Sagi Grimberg
  2020-02-13 15:38       ` Hannes Reinecke
  0 siblings, 2 replies; 7+ messages in thread
From: Christoph Hellwig @ 2020-02-12 17:55 UTC (permalink / raw)
  To: Hannes Reinecke; +Cc: linux-nvme, Christoph Hellwig, Keith Busch, Sagi Grimberg

On Wed, Feb 12, 2020 at 06:51:54PM +0100, Hannes Reinecke wrote:
> IE we would be perfectly within the spec to convert the nqn to eg lowercase 
> when reading it from /etc/nvme/hostnqn.

We could, but why would we?  Case sensitivity is a complete pain and
avoiding it wherever we can is a good thing.

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

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Case-sensitive host NQN
  2020-02-12 17:55     ` Christoph Hellwig
@ 2020-02-12 19:20       ` Sagi Grimberg
  2020-02-13 15:38       ` Hannes Reinecke
  1 sibling, 0 replies; 7+ messages in thread
From: Sagi Grimberg @ 2020-02-12 19:20 UTC (permalink / raw)
  To: Christoph Hellwig, Hannes Reinecke; +Cc: linux-nvme, Keith Busch


> On Wed, Feb 12, 2020 at 06:51:54PM +0100, Hannes Reinecke wrote:
>> IE we would be perfectly within the spec to convert the nqn to eg lowercase
>> when reading it from /etc/nvme/hostnqn.
> 
> We could, but why would we?  Case sensitivity is a complete pain and
> avoiding it wherever we can is a good thing.

I agree here, why should we make that effort? what is the benefit?

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

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Case-sensitive host NQN
  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
  1 sibling, 1 reply; 7+ messages in thread
From: Hannes Reinecke @ 2020-02-13 15:38 UTC (permalink / raw)
  To: Christoph Hellwig; +Cc: linux-nvme, Keith Busch, Sagi Grimberg

On 2/12/20 6:55 PM, Christoph Hellwig wrote:
> On Wed, Feb 12, 2020 at 06:51:54PM +0100, Hannes Reinecke wrote:
>> IE we would be perfectly within the spec to convert the nqn to eg lowercase 
>> when reading it from /etc/nvme/hostnqn.
> 
> We could, but why would we?  Case sensitivity is a complete pain and
> avoiding it wherever we can is a good thing.
> 
Because the UUID really is a number, and hence one would assume that it
wouldn't be affected from case sensitivty.

But if the consensus is that we do not twiddle with it we should be
documenting it somewhere (maybe in a comment in the auto-generated
/etc/nvme/hostnqn) so as to avoid surprises or support calls later on.

Cheers,

Hannes
-- 
Dr. Hannes Reinecke		           Kernel Storage Architect
hare@suse.de			                  +49 911 74053 688
SUSE Software Solutions Germany GmbH, Maxfeldstr. 5, 90409 Nürnberg
HRB 36809 (AG Nürnberg), GF: Felix Imendörffer

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

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Case-sensitive host NQN
  2020-02-13 15:38       ` Hannes Reinecke
@ 2020-02-13 23:33         ` Sagi Grimberg
  0 siblings, 0 replies; 7+ messages in thread
From: Sagi Grimberg @ 2020-02-13 23:33 UTC (permalink / raw)
  To: Hannes Reinecke, Christoph Hellwig; +Cc: linux-nvme, Keith Busch


>> On Wed, Feb 12, 2020 at 06:51:54PM +0100, Hannes Reinecke wrote:
>>> IE we would be perfectly within the spec to convert the nqn to eg lowercase
>>> when reading it from /etc/nvme/hostnqn.
>>
>> We could, but why would we?  Case sensitivity is a complete pain and
>> avoiding it wherever we can is a good thing.
>>
> Because the UUID really is a number, and hence one would assume that it
> wouldn't be affected from case sensitivty.
> 
> But if the consensus is that we do not twiddle with it we should be
> documenting it somewhere (maybe in a comment in the auto-generated
> /etc/nvme/hostnqn) so as to avoid surprises or support calls later on.

We can comment. But given that I do see people leverage non-standard
hostnqns for their own comfortable use, I don't think it would be
a good idea to take any permutations of it (that may also generate
support calls).

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

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, back to index

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
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
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

Linux-NVME Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-nvme/0 linux-nvme/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-nvme linux-nvme/ https://lore.kernel.org/linux-nvme \
		linux-nvme@lists.infradead.org
	public-inbox-index linux-nvme

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.infradead.lists.linux-nvme


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git