From: FUJITA Tomonori <tomof@acm.org>
To: stefanr@s5r6.in-berlin.de
Cc: vasu.dev@intel.com, fujita.tomonori@lab.ntt.co.jp,
robert.w.love@intel.com, tomof@acm.org, yi.zou@intel.com,
christopher.leech@intel.com,
linux-scsi@vger.kernel.orgfujita.tomonori@lab.ntt.co.jp
Subject: Re: Open-FCoE on linux-scsi
Date: Sun, 6 Jan 2008 13:14:28 +0900 [thread overview]
Message-ID: <20080106131732H.tomof@acm.org> (raw)
In-Reply-To: <477EC411.9040703@s5r6.in-berlin.de>
On Sat, 05 Jan 2008 00:41:05 +0100
Stefan Richter <stefanr@s5r6.in-berlin.de> wrote:
> Dev, Vasu wrote:
> [FUJITA Tomonori wrote:]
> >> Agreed. My FCoE initiator design would be something like:
> >>
> >> scsi-ml
> >> fcoe initiator driver
> >> libfcoe
> >> fc_transport_class (inclusing fcoe support)
> >>
> >> And FCoE HBA LLDs work like:
> >>
> >> scsi-ml
> >> FCoE HBA LLDs (some of them might use libfcoe)
> >> fc_transport_class (inclusing fcoe support)
>
> Wouldn't it make more sense to think of fc_transport_class as a FCP
> layer, sitting between scsi-ml and the various FC interconnect drivers
> (among them Openfc and maybe more FCoE drivers)? I.e. you have SCSI
> command set layer -- SCSI core -- SCSI transport layer -- interconnect
> layer.¹
Oops, I should have depicted:
scsi-ml
fc_transport_class (inclusing fcoe support)
FCoE HBA LLDs (some of them might use libfcoe)
As you pointed out, that's the correct layering from the perspective
of SCSI architecture. I put FCoE HBA LLDs over fc_transport_class just
because LLDs directly interact with scsi-ml to perform the main work,
queuecommand/done (as you explained in 1).
> I am not familiar with FCP/ FCoE/ FC-DA et al, but I guess the FCoE
> support in the FCP transport layer should then go to the extent of
> target discovery, login, lifetime management and representation of
> remote ports and so on as far as it pertains to FCP (the SCSI transport
> protocol, FC-4 layer) independently of the interconnect (FC-3...FC-0
> layers).²
>
> [...]
> >> The FCoE LLD needs to exploit the exsting struct fc_rport and APIs.
> >
> > The openfc is software implementation of FC services such as FC login
> > and target discovery and it is already using/exploiting existing fc
> > transport class including fc_rport struct. You can see openfc using
> > fc_rport in openfc_queuecommand() and using fc transport API
> > fc_port_remote_add() for fc_rport.
>
> Hence, aren't there interconnect independent parts of target discovery
> and login which should be implemented in fc_transport_class? The
> interconnect dependent parts would then live in LLD methods to be
> provided in struct fc_function_template.
Agreed. Then FCoE helper functions that aren't useful for all the FCoE
LLDs would go libfcoe like iscsi class does (and sas class also does,
I guess).
> I.e. not only make full use of the API of fc_transport_class, also think
> about changing the API _if_ necessary to become a more useful
> implementation of the interface below FC-4.
>
> -------
> ¹) The transport classes are of course not layers in such a sense that
> they would completely hide SCSI core from interconnect drivers. They
> don't really have to; they nevertheless live at a higher level of
> abstraction than LLDs and a lower level of abstraction than SCSI core.
>
> (One obvious example that SCSI core is less hidden than it possibly
> could be can be seen by the struct fc_function_template methods having
> struct scsi_target * and struct Scsi_Host * arguments, instead of struct
> fc_xyz * arguments.)
>
> ²) I'm using the term interconnect from the SCSI perspective, not from
> the FC perspective.
> --
> Stefan Richter
> -=====-==--- ---= --=-=
> http://arcgraph.de/sr/
> -
> To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2008-01-06 4:14 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-11-27 23:40 Open-FCoE on linux-scsi Love, Robert W
2007-11-28 0:19 ` FUJITA Tomonori
2007-11-28 0:29 ` Love, Robert W
2007-12-28 19:11 ` FUJITA Tomonori
2007-12-31 16:34 ` Love, Robert W
2008-01-03 10:35 ` FUJITA Tomonori
2008-01-03 21:58 ` Love, Robert W
2008-01-04 11:45 ` Stefan Richter
2008-01-04 11:59 ` FUJITA Tomonori
2008-01-04 22:07 ` Dev, Vasu
2008-01-04 23:41 ` Stefan Richter
2008-01-05 0:09 ` Stefan Richter
2008-01-05 0:21 ` Stefan Richter
2008-01-05 8:28 ` Christoph Hellwig
2008-01-15 1:18 ` Love, Robert W
2008-01-15 22:18 ` James Smart
2008-01-22 23:52 ` Love, Robert W
2008-01-29 5:42 ` Chris Leech
2008-02-01 1:53 ` James Smart
2008-01-06 4:14 ` FUJITA Tomonori [this message]
2008-01-06 4:27 ` FUJITA Tomonori
2008-01-04 13:47 ` FUJITA Tomonori
2008-01-04 20:19 ` Mike Christie
2008-01-05 18:33 ` Vladislav Bolkhovitin
2008-01-06 1:28 ` FUJITA Tomonori
2008-01-08 17:38 ` Vladislav Bolkhovitin
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=20080106131732H.tomof@acm.org \
--to=tomof@acm.org \
--cc=christopher.leech@intel.com \
--cc=fujita.tomonori@lab.ntt.co.jp \
--cc=linux-scsi@vger.kernel.orgfujita.tomonori \
--cc=robert.w.love@intel.com \
--cc=stefanr@s5r6.in-berlin.de \
--cc=vasu.dev@intel.com \
--cc=yi.zou@intel.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.