From: John Meneghini <jmeneghi@redhat.com>
To: Christoph Hellwig <hch@lst.de>, Hannes Reinecke <hare@suse.de>
Cc: Sagi Grimberg <sagi@grimberg.me>,
Keith Busch <keith.busch@wdc.com>,
linux-nvme@lists.infradead.org, "Knight,
Frederick" <frederick.knight@netapp.com>,
Chris Leech <cleech@redhat.com>
Subject: Re: [PATCH 1/3] nvmet: expose discovery subsystem in sysfs
Date: Wed, 23 Mar 2022 13:17:32 -0400 [thread overview]
Message-ID: <089e3056-e603-bd9e-6680-52a26cafa72e@redhat.com> (raw)
In-Reply-To: <20220315094950.GA5322@lst.de>
Sorry I'm late to the party. Please see my comments below.
On 3/15/22 05:49, Christoph Hellwig wrote:
> On Tue, Mar 15, 2022 at 10:06:26AM +0100, Hannes Reinecke wrote:
>> The core question really is: do we _want_ to expose the discovery subsystem
>> in configfs?
>
> Well, if you want a freely configurable one we kinda have to, right?
>
>> Unfortunately, exposing the discovery subsystem and trying to configure it
>> with configfs does _not_ match with the way discovery is implemented today.
>> While we currently only have a single discovery subsystem, it will only
>> ever return the subsystems visible from this particular port.
I don't see why this would need to change. What is it that you want to configure
in the new unique discovery subsystem(s) that would be any different from the
existing well known discovery subsystem?
> Well. The original Fabrics spec had this concept of that magic discovery
> NQN, which implies that there is one subsystem (or many pretending to be
> one). And that is what the implementation followed. The varipus 80?? TPs
> then made a complete mess off that.
I agree that FMDS has made an overly complicated mess of NVMe-oF Discovery
with the new Discovery TPs. However, I am hoping that TP-8013 and TP-8014
could be used to help with some of the problem.
>> Hence this rather simple approach, having the 'normal' discovery subsystem
>> exposed, and let the admin configure it accordingly.
>>
>> I can look at keeping the internal implementation, and only expose unique
>> discovery controller (ie those with a unique subsystem NQN).
>> That would remove the need to having the 'discovery_nqn' attribute, and
>> address Christophs concerns.
>
> I suspect if we want to support all the new mess from the FMDS group
> (and maybe we need to question the why a little more), then we should
> so something like:
>
> (1) keep the existing global NQN-based discovery as-is.
I agree that we need some way to support legacy hosts and legacy controllers
in the same fabric. What ever we do with TP-8010, etc., we need to be sure that
all hosts and all discovery controllers interoperate cleanly.
> (2) maybe add a per-port known to allow disabling it if people really care
> (3) allow creating additional discovery subsystems with non-default
> NQNs that do not automatically get anything added to them and will
> just be configured as needed through configfs
>
> But maybe first we should take a step back and figure out what supporting
> TPAR8013 even buys us?
TP-8013 was designed to work with TP-8014. In fact, at one point we talked about
combining these two TPs into a single TP. The idea behind TP-8013 & 8014 was:
1. All hosts will connect to the existing Discovery Service with the Well Known
Discovery NQN and retrieve the Discovery Log pages for the HostNQN provided
in the Fabric Connect command, as it is done today.
It was assumed that Authenticating with the Well Known Discovery NQN would
would not be needed or supported because:
a) The Discovery Controller controls the Authenticate work flow and
returning AUTHREQ=1 in the connect response would break legacy hosts.
b) It doesn't make sense to have a Well Known Discovery NQN as a part of a psk.
2. Discovery Controllers which support Authentication can return Discovery
Log Page Entries with Subsystem Type (SUBTYPE): 03h - as defined by TP-8014.
These DLPEs will contain Unique Discovery NQNs - as defined by TP-8013
3. Hosts that support Authentication can then disconnect from the Well Known
Discovery Controller and re-connect with the Unique Discovery NQN. These
hosts should expect an AUTHREQ=1 response.
4. Hosts that don't want to support Authentication can ignore the SUBTYPE 03h
Log Page Entries and operate normally. This would include legacy hosts.
Hopefully, with some kind of a design like this, both legacy (non-authenticating)
and new (authenticating) hosts and discovery controllers can interoperate.
/John
next prev parent reply other threads:[~2022-03-23 17:19 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-03-14 10:53 [RFC PATCH 0/3] nvmet: export discovery subsystem Hannes Reinecke
2022-03-14 10:53 ` [PATCH 1/3] nvmet: expose discovery subsystem in sysfs Hannes Reinecke
2022-03-15 8:06 ` Christoph Hellwig
2022-03-15 8:40 ` Sagi Grimberg
2022-03-15 9:06 ` Hannes Reinecke
2022-03-15 9:49 ` Christoph Hellwig
2022-03-15 10:23 ` Sagi Grimberg
2022-03-15 10:38 ` Hannes Reinecke
2022-03-15 10:49 ` Sagi Grimberg
2022-03-15 11:09 ` Hannes Reinecke
2022-03-15 11:15 ` Sagi Grimberg
2022-03-15 12:51 ` Hannes Reinecke
2022-03-15 13:48 ` Sagi Grimberg
2022-03-23 17:17 ` John Meneghini [this message]
2022-03-23 17:23 ` Christoph Hellwig
2022-03-23 17:52 ` John Meneghini
2022-03-23 17:34 ` Knight, Frederick
2022-03-23 18:03 ` John Meneghini
2022-03-23 18:07 ` Knight, Frederick
2022-03-14 10:53 ` [PATCH 2/3] nvmet: restrict setting of discovery_nqn to discovery subsystem Hannes Reinecke
2022-03-15 8:09 ` Christoph Hellwig
2022-03-15 8:57 ` Sagi Grimberg
2022-03-15 9:00 ` Christoph Hellwig
2022-03-24 0:52 ` John Meneghini
2022-03-24 1:46 ` John Meneghini
2022-03-14 10:53 ` [PATCH 3/3] nvmet: do not allow to create a subsystem with the discovery NQN Hannes Reinecke
2022-03-15 8:10 ` Christoph Hellwig
2022-03-15 8:45 ` Hannes Reinecke
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=089e3056-e603-bd9e-6680-52a26cafa72e@redhat.com \
--to=jmeneghi@redhat.com \
--cc=cleech@redhat.com \
--cc=frederick.knight@netapp.com \
--cc=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