Re: [PATCH] scsi_transport_iscsi.c contexts

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 2005-04-29 at 14:20 -0700, Mike Christie wrote:
> >>The reason all the settings are stuck on the session was becuase we couldn't
> >>come to an agreement on the layout. We wanted to do something like this:
> >>
> >>/sys/class/iscsi_session/iscsi_connection
> >>
> >>or even
> >>
> >>/sys/class/iscsi_session
> >>/sys/class/iscsi_connection
> >>
> > 
> > 
> > I am still thinking on this one.  First and foremost I think that we
> > need to get move towards a single class for iSCSI Initiators instead of
> > what is currently registered (/sys/class/iscsi_transport
> > and /sys/class/iscsi_host).  Let me keep working on this some more and I
> > will draft up a prosposal in the near future.  Any futher input is
> > welcomed. :-)
> > 
> 
> get everyone to agree (or force them) on how to set the initiarname and alias
> and the iscsi_host can be chopped. the iscsi_host is only there becuase sfnet
> used a /etc file and I think you can set the initiatorname on some HW cards
> from a BIOS/OF prompt (or you will not have control over it) so if they ever
> end up on the same box and wanted to konw what each one ended up as you could.
> 

Ok, one possible solution is when the iSCSI Template structure gets
registered with the iSCSI Transport, the LLD can tell the transport what
values are already defined.  I think this point really goes back to
previous points about different class attributes need to be dynamicly
registered within the iSCSI Stack when certain events occur.

Considering the following:

1) iscsi_attach_transport() is called when the iSCSI Stack is loaded:

   /sys/class/iscsi_transport/	

	a) Initiator[Name,Alias] is not set.

		The stack will set this value later.

	b) Initiator[Name,Alais] is set.
		
		Assume that ->get_initiator_[name,alias]() will return 
		values from hardware

2) struct iscsi_channel_class *iscsi_attach_channel(struct
scsi_transport_template)

   /sys/class/iscsi_transport/iscsi_$CHANNEL_ID.

	Note that for management purposes that $CHANNEL_ID needs to be a
	value that does not change.  ie: not the SCSI Host ID.

	This registers ALL of the sysfs attributes for both session and 
	connection contexts.  These values are read/write as these are
        values that are used as the defaults when sessions/connections
        are started on said iSCSI Channel.

3) struct iscsi_session_class *iscsi_attach_session(struct
iscsi_channel_class)

   /sys/class/iscsi_transport/iscsi_$CHANNEL_ID/

	This contains the read only attributes that where negoitated 
	after successful session establishment.  Note that some of these
	values need to be write as well. (InitiatorAlias can be changed 
	after the session is up)

4) struct iscsi_connection_class *iscsi_attach_connection(struct
iscsi_session_class *, unsigned short cid)

   /sys/class/iscsi_transport/iscsi_$CHANNEL_ID/session/connection_$CID

	This contains the read only attributes that where negoitated
	after successful connection establishment.  Note that some of
	these values need to be write as well. 
	(MaxRecvDataSegmentLength can be changed after the connection
	up).

Of course the names would probable get changed around a bit, but I think you get the idea.

-- 
Nicholas A. Bellinger <nick@xxxxxxxxxxxxxxxxxxx>

-
: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux