linux-scsi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Conversion of LIO-Target to use include/scsi/iscsi_proto.h defs
@ 2010-08-19 22:45 Nicholas A. Bellinger
  2010-08-20  7:32 ` FUJITA Tomonori
  2010-08-22 19:06 ` Boaz Harrosh
  0 siblings, 2 replies; 11+ messages in thread
From: Nicholas A. Bellinger @ 2010-08-19 22:45 UTC (permalink / raw)
  To: Mike Christie, FUJITA Tomonori
  Cc: linux-scsi, LKML, Christoph Hellwig, James Bottomley,
	Hannes Reinecke

Greetings mnc and tomo,

So as per our discussions last week, I will be moving forward with the
conversion of the LIO-Target iSCSI fabric module v4 to use protocol and
PDU include/scsi/iscsi_proto.h.  As mnc and I agreed privately, this is
going to the right level of integration for v2.6.37, as making libiscsi
target mode aware does not really make for a target mode iSCSI stack
sense due to the amount of logic in place for kernel <-> user with the
Open-iSCSI initiator.

So aside from the main tedious work that will be involved in actually
producing a patch for this on my end, I did notice one immediate item
that will cause an extra headache..  This involves the struct
iscsi_init_* and struct iscsi_target* structure definitions in:

http://git.kernel.org/?p=linux/kernel/git/nab/lio-core-2.6.git;a=blob;f=drivers/target/lio-target/iscsi_protocol.h;hb=refs/heads/lio-4.0

namely that they all have trailing 'u32 header_digest' member that a
decent amount of utility code in iscsi_target.c and iscsi_target_util.c
currently depends upon.

So, assuming that the conversion of all struct iscsi_init_* and struct
iscsi_target* to use include/scsi/iscsi_proto.h defs just involves
checking structure size and renaming the member use in
drivers/target/lio-target, would it be acceptable to do something like:

/* iSCSI PDU Header */
struct iscsi_cmd {
        uint8_t opcode;
        uint8_t flags;
        __be16 rsvd2;
        uint8_t hlength;
        uint8_t dlength[3];
        uint8_t lun[8];
        itt_t    itt;   /* Initiator Task Tag */
        __be32 data_length;
        __be32 cmdsn;
        __be32 exp_statsn;
        uint8_t cdb[ISCSI_CDB_SIZE];    /* SCSI Command Block */
        /* Additional Data (Command Dependent) */
#ifdef ISCSI_TARGET_MODE
        __be32 header_digest;
#endif
};

for the existing PDU defs in iscsi_proto.h in order to the pain
of having to convert this over in existing LIO-Target fabric module
code..?  This really help me alot.

Thanks!

--nab



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

end of thread, other threads:[~2010-08-23 19:55 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-08-19 22:45 Conversion of LIO-Target to use include/scsi/iscsi_proto.h defs Nicholas A. Bellinger
2010-08-20  7:32 ` FUJITA Tomonori
2010-08-20  9:14   ` Nicholas A. Bellinger
2010-08-20  9:41     ` FUJITA Tomonori
2010-08-20 10:02       ` Nicholas A. Bellinger
2010-08-20 10:43         ` FUJITA Tomonori
2010-08-20 10:57           ` Nicholas A. Bellinger
2010-08-20 21:41   ` Mike Christie
2010-08-20 23:55     ` Nicholas A. Bellinger
2010-08-22 19:06 ` Boaz Harrosh
2010-08-23 19:52   ` Nicholas A. Bellinger

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).