Re: [RFC][PATCH 1/1] cxgb3i: cxgb3 iSCSI initiator

From: James Bottomley
Date: Sun Aug 10 2008 - 10:55:20 EST


On Sun, 2008-08-10 at 08:49 -0400, Jeff Garzik wrote:
> Alan Cox wrote:
> >> - It doesn't work in theory, because the suggestion (I guess) is that
> >> the iSCSI HBA has its own MAC and IP and behaves like a separate
> >
> > The iSCSI HBA is its own system - that is the root of the problem.
>
> Indeed.
>
> Just like with TOE, from the net stack's point of view, an iSCSI HBA is
> essentially a wholly asynchronous remote system [with a really fast
> communication bus like PCI Express].
>
> As such, the task becomes updating the net stack such that
> formerly-private resources are now shared with an independent, external
> system... with all the complexity, additional failure modes, and
> additional security complications that come along with that.

What's wrong with making it configurable identically to current software
iSCSI? i.e. plumb the thing into the current iscsi transport class so
that we use the standard daemon for creating and binding sessions?
Then, only once the session is bound do you let your iSCSI TOE stack
take over.

That way the connection appears to the network as completely normal,
because it has an open socket associated with it; and, since the
transport class has done the connection login, it even looks like a
normal iSCSI connection to the usual tools. iSCSI would manage
connection and authentication, so your TOE stack can be simply around
the block acceleration piece (i.e. you'd need to get the iscsi daemon to
do relogin and things).

I would assume net will require some indicator that the opened
connection has been subsumed, so it knows not to try to manage it, but
other than that I don't see it will need any alteration. The usual
tools, like netfilter could even use this information to know the limits
of their management.

If this model works, we can use it for TOE acceleration of individual
applications (rather than the entire TCP stack) on an as needed basis.

This is like the port stealing proposal, but since the iSCSI daemon is
responsible for maintaining the session, the port isn't completely
stolen, just switched to accelerator mode when doing the iSCSI offload.

James


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/