All of lore.kernel.org
 help / color / mirror / Atom feed
From: Boaz Harrosh <bharrosh@panasas.com>
To: Seokmann Ju <seokmann.ju@qlogic.com>
Cc: linux-scsi@vger.kernel.org, Andrew Vasquez <andrew.vasquez@qlogic.com>
Subject: Re: bidi support: FC transport layer...
Date: Thu, 10 Jul 2008 18:30:15 +0300	[thread overview]
Message-ID: <48762B07.703@panasas.com> (raw)
In-Reply-To: <E11DE615-512A-45C0-9308-036BDA225E9D@qlogic.com>

Seokmann Ju wrote:
> Hi,
> 
> With starting to implement FC-CT/ELS support on the qla2xxx module, I  
> would like to get some idea about the bidi-bidirectional.
Hi Dear Seokmann

Searching for "FC-CT ELS" did not produce any comprehensive results
for me. If you could send me exact pointer to the t11 paper I could
investigate it deeper.

> As I understand that the bidi is packet transporting infra-structure,  
> I think it could be good candidate for the FC specific FC-CT/ELS  
> packet delivery in between the application and the individual devices  
> given topology.
> 

bidi, as in scsi-bidirectional commands, is any scsi command (in any 
command set) where a single CDB utilizes both an in-buffer and an
out-buffer, for sending-while-receiving data to-from a target device.
The write-from-host buffers and read-to-host buffers happens concurrently
with out predetermined serialization and can in fact happen all at once.

So to answer your question: It is a must candidate for bidi, if the t11
standard states that a single CDB specifies both an out-buffer and an 
in-buffer, to complete the command.

An example of a bidi command is the XOR family of commands as defined
by SCSI for the block command set.

> As I have limited understanding about the bid, here are my questions,
> 0. would the bidi be a right choice for the FC-CT/ELS packet delivery?
Please point me to the normative documentation so I can check.

> 1. where should I get any kind of documents/briefs about the bidi?

In code and git I'm afraid. Look in git for the history of both
drivers/scsi/libiscsi.c and drivers/scsi/scsi_debug.c and see how they
are changed to receive bidirectional commands.
And also include/scsi/scsi_cmnd.h and drivers/scsi/scsi_lib.c for
these patches that introduce the bidi support, they have some explanations
and you can inspect their implementation.

> 2. which part of code that I have to walk-through for further  
> understanding about the bidi mechanism?

Best is to look in git for the relevant patches both at scsi-midlevel
and iscsi.

> 3. with the bidi, what's the application interface should look like?
> 

if you have for example:
int xxx_write(const void* out_buff, int len);
and
int xxx_read(void * in_buff, int_len);
then you might have something like
int xxx_xor(const void* out_buff, void * in_buff, int len);
which is a bidi command that writes and reads results all at once.

> I expect to have some changes/additions in the FC transport layer in  
> regards to the support and in general.
> 
> Any comment/guidance would be greatly helpful.
> 

scsi-bidirectional commands was crafted for scsi command sets that specifically
called for both in/out buffers participating in a single command. If the commands
in question are like that then this is the right tool to use.

> Thank you,
> Seokmann
> --

When you advance farther I can send you code examples of how an initiator pushes
block-requests that carry bidi payload that's the easy part. Getting your driver
to support and expect bidi commands is a bit harder. (Just a bit)

Feel free to ask any questions you have.

Cheers 
Boaz

  reply	other threads:[~2008-07-10 15:30 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-07-10 12:55 bidi support: FC transport layer Seokmann Ju
2008-07-10 15:30 ` Boaz Harrosh [this message]
2008-07-10 16:36   ` Seokmann Ju
2008-07-13  9:15     ` Boaz Harrosh
2008-07-10 16:10 ` James.Smart
2008-07-10 20:28   ` Seokmann Ju
2008-07-15 18:54     ` Seokmann Ju
2008-07-15 19:35       ` James.Smart
2008-07-16 17:53         ` Seokmann Ju
2008-07-17 13:57           ` Seokmann Ju
2008-07-17 17:25           ` James.Smart
2008-07-10 16:14 ` Mike Christie
2008-07-10 18:13   ` Seokmann Ju

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=48762B07.703@panasas.com \
    --to=bharrosh@panasas.com \
    --cc=andrew.vasquez@qlogic.com \
    --cc=linux-scsi@vger.kernel.org \
    --cc=seokmann.ju@qlogic.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.