Re: [PATCH 0/7] Enable iSCSI offload drivers to use information from iface.

From: Hannes Reinecke
Date: Wed Jun 07 2017 - 04:09:33 EST


On 06/06/2017 08:07 PM, Robert LeBlanc wrote:
> This patchset enables iSCSI offload drivers to have access to the iface
> information provided by iscsid. This allows users to have more control
> of how the driver connects to the iSCSI target. iSER is updated to use
> iface.ipaddress to set the source IP address if configured. This allows
> iSER to use multiple ports on the same network or in more complicated
> routed configurations.
>
> Since there is already a change to the function parameters, dst_addr
> is upgraded to sockaddr_storage so that it is more future proof and makes
> the size of the struct static and not dependent on checking the SA_FAMILY.
>
> This is dependent on updates to Open-iSCSI.
>
> Robert LeBlanc (7):
> scsi/scsi_transport_iscsi: Add iface struct to kernel.
> scsi/scsi_transport_iscsi: Update ep_connect to include iface.
> ib/iSER: Add binding to source IP address.
> scsi/be2iscsi: Update beiscsi_ep_connect to accept iface and
> sockaddr_storage.
> scsi/bnx2i: Update bnx2i_ep_connect to accept iface and
> sockaddr_storage.
> scsi/cxgbi: Update cxgbi_ep_connect to accept iface and
> sockaddr_storage.
> scsi/qla4xxx: Update qla4xxx_ep_connect to accept iface and
> sockaddr_storage.
>
> drivers/infiniband/ulp/iser/iscsi_iser.c | 33 +++++++--
> drivers/infiniband/ulp/iser/iscsi_iser.h | 4 +-
> drivers/infiniband/ulp/iser/iser_initiator.c | 1 +
> drivers/infiniband/ulp/iser/iser_memory.c | 1 +
> drivers/infiniband/ulp/iser/iser_verbs.c | 8 ++-
> drivers/scsi/be2iscsi/be_cmds.c | 1 +
> drivers/scsi/be2iscsi/be_iscsi.c | 8 ++-
> drivers/scsi/be2iscsi/be_iscsi.h | 5 +-
> drivers/scsi/be2iscsi/be_main.c | 1 +
> drivers/scsi/be2iscsi/be_mgmt.c | 1 +
> drivers/scsi/bnx2i/bnx2i_hwi.c | 1 +
> drivers/scsi/bnx2i/bnx2i_iscsi.c | 13 ++--
> drivers/scsi/cxgbi/libcxgbi.c | 15 ++--
> drivers/scsi/cxgbi/libcxgbi.h | 2 +-
> drivers/scsi/qla4xxx/ql4_os.c | 15 ++--
> drivers/scsi/scsi_transport_iscsi.c | 9 ++-
> include/scsi/scsi_transport_iscsi.h | 100 ++++++++++++++++++++++++++-
> 17 files changed, 179 insertions(+), 39 deletions(-)
>
Hmm.

That it rather large, just for passing information from userspace into
the kernel.
What is the actual benefit here?

Personally, I would rather see iscsid creating tap interfaces associated
with each iSCSI offload interface, and having the kernel accessing the
information from _that_.
Then each connection would have a network interface attached to it, and
could retrieve the information from there.
Plus we could use 'normal' userspace tools like 'ip' to configure the
iSCSI offload network.

Cheers,

Hannes
--
Dr. Hannes Reinecke Teamlead Storage & Networking
hare@xxxxxxx +49 911 74053 688
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 NÃrnberg
GF: F. ImendÃrffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton
HRB 21284 (AG NÃrnberg)