* [PATCH 1/7] scsi/scsi_transport_iscsi: Add iface struct to kernel.
[not found] ` <20170606180717.5007-1-robert-4JaGZRWAfWbajFs6igw21g@public.gmane.org>
@ 2017-06-06 18:07 ` Robert LeBlanc
[not found] ` <20170606180717.5007-2-robert-4JaGZRWAfWbajFs6igw21g@public.gmane.org>
2017-06-06 18:07 ` [PATCH 2/7] scsi/scsi_transport_iscsi: Update ep_connect to include iface Robert LeBlanc
` (7 subsequent siblings)
8 siblings, 1 reply; 18+ messages in thread
From: Robert LeBlanc @ 2017-06-06 18:07 UTC (permalink / raw)
To: lduncan-IBi9RG/b67k
Cc: cleech-H+wXaHxf7aLQT0dZR+AlfA,
jejb-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8,
martin.petersen-QHcLZuEGTsvQT0dZR+AlfA,
open-iscsi-/JYPxA39Uh5TLH3MbocFFw,
linux-scsi-u79uwXL29TY76Z2rM5mHXA,
linux-kernel-u79uwXL29TY76Z2rM5mHXA,
ogerlitz-VPRAkNaXOzVWk0Htik3J/w, sagi-NQWnxTmZq1alnMjI0IkVqw,
roid-VPRAkNaXOzVWk0Htik3J/w, dledford-H+wXaHxf7aLQT0dZR+AlfA,
sean.hefty-ral2JQCrhuEAvxtiuMwx3w,
hal.rosenstock-Re5JQEeQqe8AvxtiuMwx3w,
linux-rdma-u79uwXL29TY76Z2rM5mHXA,
subbu.seetharaman-dY08KVG/lbpWk0Htik3J/w,
ketan.mukadam-dY08KVG/lbpWk0Htik3J/w,
jitendra.bhivare-dY08KVG/lbpWk0Htik3J/w,
QLogic-Storage-Upstream-h88ZbnxC6KDQT0dZR+AlfA,
varun-ut6Up61K2wZBDgjK7y7TUQ, Robert LeBlanc
Allow the userspace iscsiadm to pass the iface struct of the connection
so that the underlying driver can use what is most appropriate to create
the iSCSI connection.
Signed-off-by: Robert LeBlanc <robert-4JaGZRWAfWbajFs6igw21g@public.gmane.org>
---
include/scsi/scsi_transport_iscsi.h | 95 +++++++++++++++++++++++++++++++++++++
1 file changed, 95 insertions(+)
diff --git a/include/scsi/scsi_transport_iscsi.h b/include/scsi/scsi_transport_iscsi.h
index 6183d20a01fb..26fe284daf9a 100644
--- a/include/scsi/scsi_transport_iscsi.h
+++ b/include/scsi/scsi_transport_iscsi.h
@@ -37,6 +37,7 @@ struct iscsi_cls_conn;
struct iscsi_conn;
struct iscsi_task;
struct sockaddr;
+struct iface_rec;
struct iscsi_iface;
struct bsg_job;
struct iscsi_bus_flash_session;
@@ -291,6 +292,100 @@ struct iscsi_endpoint {
struct iscsi_cls_conn *conn;
};
+/* max len of interface */
+#define ISCSI_MAX_IFACE_LEN 65
+#define NI_MAXHOST 1025
+#define ISCSI_HWADDRESS_BUF_SIZE 18
+#define ISCSI_TRANSPORT_NAME_MAXLEN 16
+#define ISCSI_MAX_STR_LEN 80
+
+struct iface_rec {
+ struct list_head list;
+ /* iscsi iface record name */
+ char name[ISCSI_MAX_IFACE_LEN];
+ uint32_t iface_num;
+ /* network layer iface name (eth0) */
+ char netdev[IFNAMSIZ];
+ char ipaddress[NI_MAXHOST];
+ char subnet_mask[NI_MAXHOST];
+ char gateway[NI_MAXHOST];
+ char bootproto[ISCSI_MAX_STR_LEN];
+ char ipv6_linklocal[NI_MAXHOST];
+ char ipv6_router[NI_MAXHOST];
+ char ipv6_autocfg[NI_MAXHOST];
+ char linklocal_autocfg[NI_MAXHOST];
+ char router_autocfg[NI_MAXHOST];
+ uint16_t vlan_id;
+ uint8_t vlan_priority;
+ char vlan_state[ISCSI_MAX_STR_LEN];
+ char state[ISCSI_MAX_STR_LEN]; /* 0 = disable,
+ * 1 = enable */
+ uint16_t mtu;
+ uint16_t port;
+ char delayed_ack[ISCSI_MAX_STR_LEN];
+ char nagle[ISCSI_MAX_STR_LEN];
+ char tcp_wsf_state[ISCSI_MAX_STR_LEN];
+ uint8_t tcp_wsf;
+ uint8_t tcp_timer_scale;
+ char tcp_timestamp[ISCSI_MAX_STR_LEN];
+ char dhcp_dns[ISCSI_MAX_STR_LEN];
+ char dhcp_slp_da[ISCSI_MAX_STR_LEN];
+ char tos_state[ISCSI_MAX_STR_LEN];
+ uint8_t tos;
+ char gratuitous_arp[ISCSI_MAX_STR_LEN];
+ char dhcp_alt_client_id_state[ISCSI_MAX_STR_LEN];
+ char dhcp_alt_client_id[ISCSI_MAX_STR_LEN];
+ char dhcp_req_vendor_id_state[ISCSI_MAX_STR_LEN];
+ char dhcp_vendor_id_state[ISCSI_MAX_STR_LEN];
+ char dhcp_vendor_id[ISCSI_MAX_STR_LEN];
+ char dhcp_learn_iqn[ISCSI_MAX_STR_LEN];
+ char fragmentation[ISCSI_MAX_STR_LEN];
+ char incoming_forwarding[ISCSI_MAX_STR_LEN];
+ uint8_t ttl;
+ char gratuitous_neighbor_adv[ISCSI_MAX_STR_LEN];
+ char redirect[ISCSI_MAX_STR_LEN];
+ char mld[ISCSI_MAX_STR_LEN];
+ uint32_t flow_label;
+ uint32_t traffic_class;
+ uint8_t hop_limit;
+ uint32_t nd_reachable_tmo;
+ uint32_t nd_rexmit_time;
+ uint32_t nd_stale_tmo;
+ uint8_t dup_addr_detect_cnt;
+ uint32_t router_adv_link_mtu;
+ uint16_t def_task_mgmt_tmo;
+ char header_digest[ISCSI_MAX_STR_LEN];
+ char data_digest[ISCSI_MAX_STR_LEN];
+ char immediate_data[ISCSI_MAX_STR_LEN];
+ char initial_r2t[ISCSI_MAX_STR_LEN];
+ char data_seq_inorder[ISCSI_MAX_STR_LEN];
+ char data_pdu_inorder[ISCSI_MAX_STR_LEN];
+ uint8_t erl;
+ uint32_t max_recv_dlength;
+ uint32_t first_burst_len;
+ uint16_t max_out_r2t;
+ uint32_t max_burst_len;
+ char chap_auth[ISCSI_MAX_STR_LEN];
+ char bidi_chap[ISCSI_MAX_STR_LEN];
+ char strict_login_comp[ISCSI_MAX_STR_LEN];
+ char discovery_auth[ISCSI_MAX_STR_LEN];
+ char discovery_logout[ISCSI_MAX_STR_LEN];
+ char port_state[ISCSI_MAX_STR_LEN];
+ char port_speed[ISCSI_MAX_STR_LEN];
+ /*
+ * TODO: we may have to make this bigger and interconnect
+ * specific for infiniband
+ */
+ char hwaddress[ISCSI_HWADDRESS_BUF_SIZE];
+ char transport_name[ISCSI_TRANSPORT_NAME_MAXLEN];
+ /*
+ * This is only used for boot now, but the iser guys
+ * can use this for their virtualization idea.
+ */
+ char alias[TARGET_NAME_MAXLEN + 1];
+ char iname[TARGET_NAME_MAXLEN + 1];
+};
+
struct iscsi_iface {
struct device dev;
struct iscsi_transport *transport;
--
2.11.0
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply related [flat|nested] 18+ messages in thread* [PATCH 2/7] scsi/scsi_transport_iscsi: Update ep_connect to include iface.
[not found] ` <20170606180717.5007-1-robert-4JaGZRWAfWbajFs6igw21g@public.gmane.org>
2017-06-06 18:07 ` [PATCH 1/7] scsi/scsi_transport_iscsi: Add iface struct to kernel Robert LeBlanc
@ 2017-06-06 18:07 ` Robert LeBlanc
[not found] ` <20170606180717.5007-3-robert-4JaGZRWAfWbajFs6igw21g@public.gmane.org>
2017-06-06 18:07 ` [PATCH 3/7] ib/iSER: Add binding to source IP address Robert LeBlanc
` (6 subsequent siblings)
8 siblings, 1 reply; 18+ messages in thread
From: Robert LeBlanc @ 2017-06-06 18:07 UTC (permalink / raw)
To: lduncan-IBi9RG/b67k
Cc: cleech-H+wXaHxf7aLQT0dZR+AlfA,
jejb-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8,
martin.petersen-QHcLZuEGTsvQT0dZR+AlfA,
open-iscsi-/JYPxA39Uh5TLH3MbocFFw,
linux-scsi-u79uwXL29TY76Z2rM5mHXA,
linux-kernel-u79uwXL29TY76Z2rM5mHXA,
ogerlitz-VPRAkNaXOzVWk0Htik3J/w, sagi-NQWnxTmZq1alnMjI0IkVqw,
roid-VPRAkNaXOzVWk0Htik3J/w, dledford-H+wXaHxf7aLQT0dZR+AlfA,
sean.hefty-ral2JQCrhuEAvxtiuMwx3w,
hal.rosenstock-Re5JQEeQqe8AvxtiuMwx3w,
linux-rdma-u79uwXL29TY76Z2rM5mHXA,
subbu.seetharaman-dY08KVG/lbpWk0Htik3J/w,
ketan.mukadam-dY08KVG/lbpWk0Htik3J/w,
jitendra.bhivare-dY08KVG/lbpWk0Htik3J/w,
QLogic-Storage-Upstream-h88ZbnxC6KDQT0dZR+AlfA,
varun-ut6Up61K2wZBDgjK7y7TUQ, Robert LeBlanc
Update the ep_connect function to include the iface in the parameters
passed to the driver. Since we have to make a change, also change the
dst_addr to sockaddr_storage so that it is future proof and a static
size.
Signed-off-by: Robert LeBlanc <robert-4JaGZRWAfWbajFs6igw21g@public.gmane.org>
---
drivers/scsi/scsi_transport_iscsi.c | 9 ++++++---
include/scsi/scsi_transport_iscsi.h | 5 +++--
2 files changed, 9 insertions(+), 5 deletions(-)
diff --git a/drivers/scsi/scsi_transport_iscsi.c b/drivers/scsi/scsi_transport_iscsi.c
index a424eaeafeb0..64157a1d62e6 100644
--- a/drivers/scsi/scsi_transport_iscsi.c
+++ b/drivers/scsi/scsi_transport_iscsi.c
@@ -34,6 +34,7 @@
#include <scsi/iscsi_if.h>
#include <scsi/scsi_cmnd.h>
#include <scsi/scsi_bsg_iscsi.h>
+#include <linux/inet.h>
#define ISCSI_TRANSPORT_VERSION "2.0-870"
@@ -2794,7 +2795,8 @@ static int iscsi_if_ep_connect(struct iscsi_transport *transport,
struct iscsi_uevent *ev, int msg_type)
{
struct iscsi_endpoint *ep;
- struct sockaddr *dst_addr;
+ struct sockaddr_storage *dst_addr;
+ struct iface_rec *iface;
struct Scsi_Host *shost = NULL;
int non_blocking, err = 0;
@@ -2813,8 +2815,9 @@ static int iscsi_if_ep_connect(struct iscsi_transport *transport,
} else
non_blocking = ev->u.ep_connect.non_blocking;
- dst_addr = (struct sockaddr *)((char*)ev + sizeof(*ev));
- ep = transport->ep_connect(shost, dst_addr, non_blocking);
+ dst_addr = (struct sockaddr_storage *)((char*)ev + sizeof(*ev));
+ iface = (struct iface_rec *)((char*)ev + sizeof(*ev) + sizeof(*dst_addr));
+ ep = transport->ep_connect(shost, dst_addr, non_blocking, iface);
if (IS_ERR(ep)) {
err = PTR_ERR(ep);
goto release_host;
diff --git a/include/scsi/scsi_transport_iscsi.h b/include/scsi/scsi_transport_iscsi.h
index 26fe284daf9a..c146e90e912b 100644
--- a/include/scsi/scsi_transport_iscsi.h
+++ b/include/scsi/scsi_transport_iscsi.h
@@ -133,8 +133,9 @@ struct iscsi_transport {
void (*session_recovery_timedout) (struct iscsi_cls_session *session);
struct iscsi_endpoint *(*ep_connect) (struct Scsi_Host *shost,
- struct sockaddr *dst_addr,
- int non_blocking);
+ struct sockaddr_storage *dst_addr,
+ int non_blocking,
+ struct iface_rec *iface);
int (*ep_poll) (struct iscsi_endpoint *ep, int timeout_ms);
void (*ep_disconnect) (struct iscsi_endpoint *ep);
int (*tgt_dscvr) (struct Scsi_Host *shost, enum iscsi_tgt_dscvr type,
--
2.11.0
--
You received this message because you are subscribed to the Google Groups "open-iscsi" group.
To unsubscribe from this group and stop receiving emails from it, send an email to open-iscsi+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To post to this group, send email to open-iscsi-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
Visit this group at https://groups.google.com/group/open-iscsi.
For more options, visit https://groups.google.com/d/optout.
^ permalink raw reply related [flat|nested] 18+ messages in thread* [PATCH 3/7] ib/iSER: Add binding to source IP address.
[not found] ` <20170606180717.5007-1-robert-4JaGZRWAfWbajFs6igw21g@public.gmane.org>
2017-06-06 18:07 ` [PATCH 1/7] scsi/scsi_transport_iscsi: Add iface struct to kernel Robert LeBlanc
2017-06-06 18:07 ` [PATCH 2/7] scsi/scsi_transport_iscsi: Update ep_connect to include iface Robert LeBlanc
@ 2017-06-06 18:07 ` Robert LeBlanc
2017-06-06 18:07 ` [PATCH 4/7] scsi/be2iscsi: Update beiscsi_ep_connect to accept iface and sockaddr_storage Robert LeBlanc
` (5 subsequent siblings)
8 siblings, 0 replies; 18+ messages in thread
From: Robert LeBlanc @ 2017-06-06 18:07 UTC (permalink / raw)
To: lduncan-IBi9RG/b67k
Cc: cleech-H+wXaHxf7aLQT0dZR+AlfA,
jejb-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8,
martin.petersen-QHcLZuEGTsvQT0dZR+AlfA,
open-iscsi-/JYPxA39Uh5TLH3MbocFFw,
linux-scsi-u79uwXL29TY76Z2rM5mHXA,
linux-kernel-u79uwXL29TY76Z2rM5mHXA,
ogerlitz-VPRAkNaXOzVWk0Htik3J/w, sagi-NQWnxTmZq1alnMjI0IkVqw,
roid-VPRAkNaXOzVWk0Htik3J/w, dledford-H+wXaHxf7aLQT0dZR+AlfA,
sean.hefty-ral2JQCrhuEAvxtiuMwx3w,
hal.rosenstock-Re5JQEeQqe8AvxtiuMwx3w,
linux-rdma-u79uwXL29TY76Z2rM5mHXA,
subbu.seetharaman-dY08KVG/lbpWk0Htik3J/w,
ketan.mukadam-dY08KVG/lbpWk0Htik3J/w,
jitendra.bhivare-dY08KVG/lbpWk0Htik3J/w,
QLogic-Storage-Upstream-h88ZbnxC6KDQT0dZR+AlfA,
varun-ut6Up61K2wZBDgjK7y7TUQ, Robert LeBlanc
If the iface passed in has ip address set, then attept to create an RDMA
connection using it as the source IP address. This allows iSER to use
multiple ports on the same network or in more complex routing
configurations. Also update to accepting sockaddr_storage.
Signed-off-by: Robert LeBlanc <robert-4JaGZRWAfWbajFs6igw21g@public.gmane.org>
---
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 ++++---
5 files changed, 38 insertions(+), 9 deletions(-)
diff --git a/drivers/infiniband/ulp/iser/iscsi_iser.c b/drivers/infiniband/ulp/iser/iscsi_iser.c
index 5a887efb4bdf..7ba5ed9afe05 100644
--- a/drivers/infiniband/ulp/iser/iscsi_iser.c
+++ b/drivers/infiniband/ulp/iser/iscsi_iser.c
@@ -59,6 +59,7 @@
#include <linux/delay.h>
#include <linux/slab.h>
#include <linux/module.h>
+#include <linux/inet.h>
#include <net/sock.h>
@@ -808,12 +809,16 @@ static int iscsi_iser_get_ep_param(struct iscsi_endpoint *ep,
* if fails.
*/
static struct iscsi_endpoint *
-iscsi_iser_ep_connect(struct Scsi_Host *shost, struct sockaddr *dst_addr,
- int non_blocking)
+iscsi_iser_ep_connect(struct Scsi_Host *shost, struct sockaddr_storage *dst_addr,
+ int non_blocking, struct iface_rec *iface)
{
int err;
struct iser_conn *iser_conn;
struct iscsi_endpoint *ep;
+ struct sockaddr_storage src_addr;
+ struct sockaddr_in *tmp_addr;
+ struct sockaddr_in6 *tmp_addr6;
+ memset(&src_addr, 0, sizeof(src_addr));
ep = iscsi_create_endpoint(0);
if (!ep)
@@ -828,8 +833,28 @@ iscsi_iser_ep_connect(struct Scsi_Host *shost, struct sockaddr *dst_addr,
ep->dd_data = iser_conn;
iser_conn->ep = ep;
iser_conn_init(iser_conn);
-
- err = iser_connect(iser_conn, NULL, dst_addr, non_blocking);
+ if (iface && iface->ipaddress[0]) {
+ if (strchr(iface->ipaddress, ':')) {
+ tmp_addr6 = (struct sockaddr_in6 *)&src_addr;
+ tmp_addr6->sin6_family = AF_INET6;
+ if(!in6_pton(iface->ipaddress, -1,
+ tmp_addr6->sin6_addr.s6_addr,
+ -1, NULL)) {
+ err = -EINVAL;
+ goto failure;
+ }
+ } else {
+ tmp_addr = (struct sockaddr_in *)&src_addr;
+ tmp_addr->sin_family = AF_INET;
+ if (!in4_pton(iface->ipaddress, -1,
+ (u8 *)&tmp_addr->sin_addr.s_addr,
+ -1, NULL)) {
+ err = -EINVAL;
+ goto failure;
+ }
+ }
+ }
+ err = iser_connect(iser_conn, &src_addr, dst_addr, non_blocking);
if (err)
goto failure;
diff --git a/drivers/infiniband/ulp/iser/iscsi_iser.h b/drivers/infiniband/ulp/iser/iscsi_iser.h
index c1ae4aeae2f9..1eda6ff49bdc 100644
--- a/drivers/infiniband/ulp/iser/iscsi_iser.h
+++ b/drivers/infiniband/ulp/iser/iscsi_iser.h
@@ -628,8 +628,8 @@ void iser_unreg_rdma_mem(struct iscsi_iser_task *task,
enum iser_data_dir dir);
int iser_connect(struct iser_conn *iser_conn,
- struct sockaddr *src_addr,
- struct sockaddr *dst_addr,
+ struct sockaddr_storage *src_addr,
+ struct sockaddr_storage *dst_addr,
int non_blocking);
void iser_unreg_mem_fmr(struct iscsi_iser_task *iser_task,
diff --git a/drivers/infiniband/ulp/iser/iser_initiator.c b/drivers/infiniband/ulp/iser/iser_initiator.c
index 12ed62ce9ff7..361d5e411fe7 100644
--- a/drivers/infiniband/ulp/iser/iser_initiator.c
+++ b/drivers/infiniband/ulp/iser/iser_initiator.c
@@ -35,6 +35,7 @@
#include <linux/mm.h>
#include <linux/scatterlist.h>
#include <linux/kfifo.h>
+#include <linux/if.h>
#include <scsi/scsi_cmnd.h>
#include <scsi/scsi_host.h>
diff --git a/drivers/infiniband/ulp/iser/iser_memory.c b/drivers/infiniband/ulp/iser/iser_memory.c
index 9c3e9ab53a41..c9d95b997820 100644
--- a/drivers/infiniband/ulp/iser/iser_memory.c
+++ b/drivers/infiniband/ulp/iser/iser_memory.c
@@ -36,6 +36,7 @@
#include <linux/mm.h>
#include <linux/highmem.h>
#include <linux/scatterlist.h>
+#include <linux/if.h>
#include "iscsi_iser.h"
static
diff --git a/drivers/infiniband/ulp/iser/iser_verbs.c b/drivers/infiniband/ulp/iser/iser_verbs.c
index c538a38c91ce..0a43009296b6 100644
--- a/drivers/infiniband/ulp/iser/iser_verbs.c
+++ b/drivers/infiniband/ulp/iser/iser_verbs.c
@@ -35,6 +35,7 @@
#include <linux/module.h>
#include <linux/slab.h>
#include <linux/delay.h>
+#include <linux/if.h>
#include "iscsi_iser.h"
@@ -941,8 +942,8 @@ void iser_conn_init(struct iser_conn *iser_conn)
* sleeps until the connection is established or rejected
*/
int iser_connect(struct iser_conn *iser_conn,
- struct sockaddr *src_addr,
- struct sockaddr *dst_addr,
+ struct sockaddr_storage *src_addr,
+ struct sockaddr_storage *dst_addr,
int non_blocking)
{
struct ib_conn *ib_conn = &iser_conn->ib_conn;
@@ -968,7 +969,8 @@ int iser_connect(struct iser_conn *iser_conn,
goto id_failure;
}
- err = rdma_resolve_addr(ib_conn->cma_id, src_addr, dst_addr, 1000);
+ err = rdma_resolve_addr(ib_conn->cma_id, (struct sockaddr *)src_addr,
+ (struct sockaddr *)dst_addr, 1000);
if (err) {
iser_err("rdma_resolve_addr failed: %d\n", err);
goto addr_failure;
--
2.11.0
--
You received this message because you are subscribed to the Google Groups "open-iscsi" group.
To unsubscribe from this group and stop receiving emails from it, send an email to open-iscsi+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To post to this group, send email to open-iscsi-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
Visit this group at https://groups.google.com/group/open-iscsi.
For more options, visit https://groups.google.com/d/optout.
^ permalink raw reply related [flat|nested] 18+ messages in thread* [PATCH 4/7] scsi/be2iscsi: Update beiscsi_ep_connect to accept iface and sockaddr_storage.
[not found] ` <20170606180717.5007-1-robert-4JaGZRWAfWbajFs6igw21g@public.gmane.org>
` (2 preceding siblings ...)
2017-06-06 18:07 ` [PATCH 3/7] ib/iSER: Add binding to source IP address Robert LeBlanc
@ 2017-06-06 18:07 ` Robert LeBlanc
2017-06-06 18:07 ` [PATCH 5/7] scsi/bnx2i: Update bnx2i_ep_connect " Robert LeBlanc
` (4 subsequent siblings)
8 siblings, 0 replies; 18+ messages in thread
From: Robert LeBlanc @ 2017-06-06 18:07 UTC (permalink / raw)
To: lduncan-IBi9RG/b67k
Cc: cleech-H+wXaHxf7aLQT0dZR+AlfA,
jejb-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8,
martin.petersen-QHcLZuEGTsvQT0dZR+AlfA,
open-iscsi-/JYPxA39Uh5TLH3MbocFFw,
linux-scsi-u79uwXL29TY76Z2rM5mHXA,
linux-kernel-u79uwXL29TY76Z2rM5mHXA,
ogerlitz-VPRAkNaXOzVWk0Htik3J/w, sagi-NQWnxTmZq1alnMjI0IkVqw,
roid-VPRAkNaXOzVWk0Htik3J/w, dledford-H+wXaHxf7aLQT0dZR+AlfA,
sean.hefty-ral2JQCrhuEAvxtiuMwx3w,
hal.rosenstock-Re5JQEeQqe8AvxtiuMwx3w,
linux-rdma-u79uwXL29TY76Z2rM5mHXA,
subbu.seetharaman-dY08KVG/lbpWk0Htik3J/w,
ketan.mukadam-dY08KVG/lbpWk0Htik3J/w,
jitendra.bhivare-dY08KVG/lbpWk0Htik3J/w,
QLogic-Storage-Upstream-h88ZbnxC6KDQT0dZR+AlfA,
varun-ut6Up61K2wZBDgjK7y7TUQ, Robert LeBlanc
Update Emulex BladeEngine driver to accept the session iface for
creating the iSCSI connection. Also accept dst_addr as sockaddr_storage
instead of sockaddr.
Signed-off-by: Robert LeBlanc <robert-4JaGZRWAfWbajFs6igw21g@public.gmane.org>
---
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 +
5 files changed, 11 insertions(+), 5 deletions(-)
diff --git a/drivers/scsi/be2iscsi/be_cmds.c b/drivers/scsi/be2iscsi/be_cmds.c
index a79a5e72c777..6617f2add9c6 100644
--- a/drivers/scsi/be2iscsi/be_cmds.c
+++ b/drivers/scsi/be2iscsi/be_cmds.c
@@ -13,6 +13,7 @@
*/
#include <scsi/iscsi_proto.h>
+#include <linux/if.h>
#include "be_main.h"
#include "be.h"
diff --git a/drivers/scsi/be2iscsi/be_iscsi.c b/drivers/scsi/be2iscsi/be_iscsi.c
index 97dca4681784..90adf20dc373 100644
--- a/drivers/scsi/be2iscsi/be_iscsi.c
+++ b/drivers/scsi/be2iscsi/be_iscsi.c
@@ -12,6 +12,7 @@
*
*/
+#include <linux/if.h>
#include <scsi/libiscsi.h>
#include <scsi/scsi_transport_iscsi.h>
#include <scsi/scsi_transport.h>
@@ -1161,8 +1162,8 @@ static int beiscsi_open_conn(struct iscsi_endpoint *ep,
* This routines first asks chip to create a connection and then allocates an EP
*/
struct iscsi_endpoint *
-beiscsi_ep_connect(struct Scsi_Host *shost, struct sockaddr *dst_addr,
- int non_blocking)
+beiscsi_ep_connect(struct Scsi_Host *shost, struct sockaddr_storage *dst_addr,
+ int non_blocking, struct iface_rec *iface)
{
struct beiscsi_hba *phba;
struct beiscsi_endpoint *beiscsi_ep;
@@ -1198,7 +1199,8 @@ beiscsi_ep_connect(struct Scsi_Host *shost, struct sockaddr *dst_addr,
beiscsi_ep = ep->dd_data;
beiscsi_ep->phba = phba;
beiscsi_ep->openiscsi_ep = ep;
- ret = beiscsi_open_conn(ep, NULL, dst_addr, non_blocking);
+ ret = beiscsi_open_conn(ep, NULL, (struct sockaddr *)dst_addr,
+ non_blocking);
if (ret) {
beiscsi_log(phba, KERN_ERR, BEISCSI_LOG_CONFIG,
"BS_%d : Failed in beiscsi_open_conn\n");
diff --git a/drivers/scsi/be2iscsi/be_iscsi.h b/drivers/scsi/be2iscsi/be_iscsi.h
index b9d459a21f25..68616f81a12f 100644
--- a/drivers/scsi/be2iscsi/be_iscsi.h
+++ b/drivers/scsi/be2iscsi/be_iscsi.h
@@ -68,8 +68,9 @@ int beiscsi_set_param(struct iscsi_cls_conn *cls_conn,
int beiscsi_conn_start(struct iscsi_cls_conn *cls_conn);
struct iscsi_endpoint *beiscsi_ep_connect(struct Scsi_Host *shost,
- struct sockaddr *dst_addr,
- int non_blocking);
+ struct sockaddr_storage *dst_addr,
+ int non_blocking,
+ struct iface_rec *iface);
int beiscsi_ep_poll(struct iscsi_endpoint *ep, int timeout_ms);
diff --git a/drivers/scsi/be2iscsi/be_main.c b/drivers/scsi/be2iscsi/be_main.c
index f862332261f8..aab7772e2678 100644
--- a/drivers/scsi/be2iscsi/be_main.c
+++ b/drivers/scsi/be2iscsi/be_main.c
@@ -25,6 +25,7 @@
#include <linux/module.h>
#include <linux/bsg-lib.h>
#include <linux/irq_poll.h>
+#include <linux/if.h>
#include <scsi/libiscsi.h>
#include <scsi/scsi_bsg_iscsi.h>
diff --git a/drivers/scsi/be2iscsi/be_mgmt.c b/drivers/scsi/be2iscsi/be_mgmt.c
index c73775368d09..926afa4ddb9d 100644
--- a/drivers/scsi/be2iscsi/be_mgmt.c
+++ b/drivers/scsi/be2iscsi/be_mgmt.c
@@ -13,6 +13,7 @@
*/
#include <linux/bsg-lib.h>
+#include <linux/if.h>
#include <scsi/scsi_transport_iscsi.h>
#include <scsi/scsi_bsg_iscsi.h>
#include "be_mgmt.h"
--
2.11.0
--
You received this message because you are subscribed to the Google Groups "open-iscsi" group.
To unsubscribe from this group and stop receiving emails from it, send an email to open-iscsi+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To post to this group, send email to open-iscsi-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
Visit this group at https://groups.google.com/group/open-iscsi.
For more options, visit https://groups.google.com/d/optout.
^ permalink raw reply related [flat|nested] 18+ messages in thread* [PATCH 5/7] scsi/bnx2i: Update bnx2i_ep_connect to accept iface and sockaddr_storage.
[not found] ` <20170606180717.5007-1-robert-4JaGZRWAfWbajFs6igw21g@public.gmane.org>
` (3 preceding siblings ...)
2017-06-06 18:07 ` [PATCH 4/7] scsi/be2iscsi: Update beiscsi_ep_connect to accept iface and sockaddr_storage Robert LeBlanc
@ 2017-06-06 18:07 ` Robert LeBlanc
2017-06-06 18:07 ` [PATCH 6/7] scsi/cxgbi: Update cxgbi_ep_connect " Robert LeBlanc
` (3 subsequent siblings)
8 siblings, 0 replies; 18+ messages in thread
From: Robert LeBlanc @ 2017-06-06 18:07 UTC (permalink / raw)
To: lduncan-IBi9RG/b67k
Cc: cleech-H+wXaHxf7aLQT0dZR+AlfA,
jejb-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8,
martin.petersen-QHcLZuEGTsvQT0dZR+AlfA,
open-iscsi-/JYPxA39Uh5TLH3MbocFFw,
linux-scsi-u79uwXL29TY76Z2rM5mHXA,
linux-kernel-u79uwXL29TY76Z2rM5mHXA,
ogerlitz-VPRAkNaXOzVWk0Htik3J/w, sagi-NQWnxTmZq1alnMjI0IkVqw,
roid-VPRAkNaXOzVWk0Htik3J/w, dledford-H+wXaHxf7aLQT0dZR+AlfA,
sean.hefty-ral2JQCrhuEAvxtiuMwx3w,
hal.rosenstock-Re5JQEeQqe8AvxtiuMwx3w,
linux-rdma-u79uwXL29TY76Z2rM5mHXA,
subbu.seetharaman-dY08KVG/lbpWk0Htik3J/w,
ketan.mukadam-dY08KVG/lbpWk0Htik3J/w,
jitendra.bhivare-dY08KVG/lbpWk0Htik3J/w,
QLogic-Storage-Upstream-h88ZbnxC6KDQT0dZR+AlfA,
varun-ut6Up61K2wZBDgjK7y7TUQ, Robert LeBlanc
Update QLogic NetXtreme II driver to accept the session iface for creating
the iSCSI connection. Also accept dst_addr as sockaddr_storage instead of
sockaddr.
Signed-off-by: Robert LeBlanc <robert-4JaGZRWAfWbajFs6igw21g@public.gmane.org>
---
drivers/scsi/bnx2i/bnx2i_hwi.c | 1 +
drivers/scsi/bnx2i/bnx2i_iscsi.c | 13 ++++++++-----
2 files changed, 9 insertions(+), 5 deletions(-)
diff --git a/drivers/scsi/bnx2i/bnx2i_hwi.c b/drivers/scsi/bnx2i/bnx2i_hwi.c
index 42921dbba927..ce87ce2c2dc1 100644
--- a/drivers/scsi/bnx2i/bnx2i_hwi.c
+++ b/drivers/scsi/bnx2i/bnx2i_hwi.c
@@ -15,6 +15,7 @@
*/
#include <linux/gfp.h>
+#include <linux/if.h>
#include <scsi/scsi_tcq.h>
#include <scsi/libiscsi.h>
#include "bnx2i.h"
diff --git a/drivers/scsi/bnx2i/bnx2i_iscsi.c b/drivers/scsi/bnx2i/bnx2i_iscsi.c
index f32a66f89d25..515106367426 100644
--- a/drivers/scsi/bnx2i/bnx2i_iscsi.c
+++ b/drivers/scsi/bnx2i/bnx2i_iscsi.c
@@ -16,8 +16,10 @@
*/
#include <linux/slab.h>
+#include <linux/if.h>
#include <scsi/scsi_tcq.h>
#include <scsi/libiscsi.h>
+#include <scsi/scsi_transport_iscsi.h>
#include "bnx2i.h"
struct scsi_transport_template *bnx2i_scsi_xport_template;
@@ -1771,8 +1773,9 @@ static int bnx2i_tear_down_conn(struct bnx2i_hba *hba,
* sending down option-2 request to complete TCP 3-way handshake
*/
static struct iscsi_endpoint *bnx2i_ep_connect(struct Scsi_Host *shost,
- struct sockaddr *dst_addr,
- int non_blocking)
+ struct sockaddr_storage *dst_addr,
+ int non_blocking,
+ struct iface_rec *iface)
{
u32 iscsi_cid = BNX2I_CID_RESERVED;
struct sockaddr_in *desti = (struct sockaddr_in *) dst_addr;
@@ -1792,7 +1795,7 @@ static struct iscsi_endpoint *bnx2i_ep_connect(struct Scsi_Host *shost,
* check if the given destination can be reached through
* a iscsi capable NetXtreme2 device
*/
- hba = bnx2i_check_route(dst_addr);
+ hba = bnx2i_check_route((struct sockaddr *)dst_addr);
if (!hba) {
rc = -EINVAL;
@@ -1887,11 +1890,11 @@ static struct iscsi_endpoint *bnx2i_ep_connect(struct Scsi_Host *shost,
clear_bit(SK_TCP_TIMESTAMP, &bnx2i_ep->cm_sk->tcp_flags);
memset(&saddr, 0, sizeof(saddr));
- if (dst_addr->sa_family == AF_INET) {
+ if (dst_addr->ss_family == AF_INET) {
desti = (struct sockaddr_in *) dst_addr;
saddr.remote.v4 = *desti;
saddr.local.v4.sin_family = desti->sin_family;
- } else if (dst_addr->sa_family == AF_INET6) {
+ } else if (dst_addr->ss_family == AF_INET6) {
desti6 = (struct sockaddr_in6 *) dst_addr;
saddr.remote.v6 = *desti6;
saddr.local.v6.sin6_family = desti6->sin6_family;
--
2.11.0
--
You received this message because you are subscribed to the Google Groups "open-iscsi" group.
To unsubscribe from this group and stop receiving emails from it, send an email to open-iscsi+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To post to this group, send email to open-iscsi-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
Visit this group at https://groups.google.com/group/open-iscsi.
For more options, visit https://groups.google.com/d/optout.
^ permalink raw reply related [flat|nested] 18+ messages in thread* [PATCH 6/7] scsi/cxgbi: Update cxgbi_ep_connect to accept iface and sockaddr_storage.
[not found] ` <20170606180717.5007-1-robert-4JaGZRWAfWbajFs6igw21g@public.gmane.org>
` (4 preceding siblings ...)
2017-06-06 18:07 ` [PATCH 5/7] scsi/bnx2i: Update bnx2i_ep_connect " Robert LeBlanc
@ 2017-06-06 18:07 ` Robert LeBlanc
2017-06-06 18:07 ` [PATCH 7/7] scsi/qla4xxx: Update qla4xxx_ep_connect " Robert LeBlanc
` (2 subsequent siblings)
8 siblings, 0 replies; 18+ messages in thread
From: Robert LeBlanc @ 2017-06-06 18:07 UTC (permalink / raw)
To: lduncan-IBi9RG/b67k
Cc: cleech-H+wXaHxf7aLQT0dZR+AlfA,
jejb-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8,
martin.petersen-QHcLZuEGTsvQT0dZR+AlfA,
open-iscsi-/JYPxA39Uh5TLH3MbocFFw,
linux-scsi-u79uwXL29TY76Z2rM5mHXA,
linux-kernel-u79uwXL29TY76Z2rM5mHXA,
ogerlitz-VPRAkNaXOzVWk0Htik3J/w, sagi-NQWnxTmZq1alnMjI0IkVqw,
roid-VPRAkNaXOzVWk0Htik3J/w, dledford-H+wXaHxf7aLQT0dZR+AlfA,
sean.hefty-ral2JQCrhuEAvxtiuMwx3w,
hal.rosenstock-Re5JQEeQqe8AvxtiuMwx3w,
linux-rdma-u79uwXL29TY76Z2rM5mHXA,
subbu.seetharaman-dY08KVG/lbpWk0Htik3J/w,
ketan.mukadam-dY08KVG/lbpWk0Htik3J/w,
jitendra.bhivare-dY08KVG/lbpWk0Htik3J/w,
QLogic-Storage-Upstream-h88ZbnxC6KDQT0dZR+AlfA,
varun-ut6Up61K2wZBDgjK7y7TUQ, Robert LeBlanc
Update Chelsio iSCSI driver to accept the session iface for creating the
iSCSI connection. Also accept dst_addr as sockaddr_storage instead of
sockaddr.
Signed-off-by: Robert LeBlanc <robert-4JaGZRWAfWbajFs6igw21g@public.gmane.org>
---
drivers/scsi/cxgbi/libcxgbi.c | 15 ++++++++-------
drivers/scsi/cxgbi/libcxgbi.h | 2 +-
2 files changed, 9 insertions(+), 8 deletions(-)
diff --git a/drivers/scsi/cxgbi/libcxgbi.c b/drivers/scsi/cxgbi/libcxgbi.c
index bd7d39ecbd24..62f62305be49 100644
--- a/drivers/scsi/cxgbi/libcxgbi.c
+++ b/drivers/scsi/cxgbi/libcxgbi.c
@@ -2499,8 +2499,9 @@ int cxgbi_get_host_param(struct Scsi_Host *shost, enum iscsi_host_param param,
EXPORT_SYMBOL_GPL(cxgbi_get_host_param);
struct iscsi_endpoint *cxgbi_ep_connect(struct Scsi_Host *shost,
- struct sockaddr *dst_addr,
- int non_blocking)
+ struct sockaddr_storage *dst_addr,
+ int non_blocking,
+ struct iface_rec *iface)
{
struct iscsi_endpoint *ep;
struct cxgbi_endpoint *cep;
@@ -2520,15 +2521,15 @@ struct iscsi_endpoint *cxgbi_ep_connect(struct Scsi_Host *shost,
}
}
- if (dst_addr->sa_family == AF_INET) {
- csk = cxgbi_check_route(dst_addr);
+ if (dst_addr->ss_family == AF_INET) {
+ csk = cxgbi_check_route((struct sockaddr *)dst_addr);
#if IS_ENABLED(CONFIG_IPV6)
- } else if (dst_addr->sa_family == AF_INET6) {
- csk = cxgbi_check_route6(dst_addr);
+ } else if (dst_addr->ss_family == AF_INET6) {
+ csk = cxgbi_check_route6((struct sockaddr *)dst_addr);
#endif
} else {
pr_info("address family 0x%x NOT supported.\n",
- dst_addr->sa_family);
+ dst_addr->ss_family);
err = -EAFNOSUPPORT;
return (struct iscsi_endpoint *)ERR_PTR(err);
}
diff --git a/drivers/scsi/cxgbi/libcxgbi.h b/drivers/scsi/cxgbi/libcxgbi.h
index 18e0ea83d361..e2e0c4dc7abc 100644
--- a/drivers/scsi/cxgbi/libcxgbi.h
+++ b/drivers/scsi/cxgbi/libcxgbi.h
@@ -596,7 +596,7 @@ int cxgbi_set_host_param(struct Scsi_Host *,
enum iscsi_host_param, char *, int);
int cxgbi_get_host_param(struct Scsi_Host *, enum iscsi_host_param, char *);
struct iscsi_endpoint *cxgbi_ep_connect(struct Scsi_Host *,
- struct sockaddr *, int);
+ struct sockaddr_storage *, int, struct iface_rec *);
int cxgbi_ep_poll(struct iscsi_endpoint *, int);
void cxgbi_ep_disconnect(struct iscsi_endpoint *);
--
2.11.0
--
You received this message because you are subscribed to the Google Groups "open-iscsi" group.
To unsubscribe from this group and stop receiving emails from it, send an email to open-iscsi+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To post to this group, send email to open-iscsi-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
Visit this group at https://groups.google.com/group/open-iscsi.
For more options, visit https://groups.google.com/d/optout.
^ permalink raw reply related [flat|nested] 18+ messages in thread* [PATCH 7/7] scsi/qla4xxx: Update qla4xxx_ep_connect to accept iface and sockaddr_storage.
[not found] ` <20170606180717.5007-1-robert-4JaGZRWAfWbajFs6igw21g@public.gmane.org>
` (5 preceding siblings ...)
2017-06-06 18:07 ` [PATCH 6/7] scsi/cxgbi: Update cxgbi_ep_connect " Robert LeBlanc
@ 2017-06-06 18:07 ` Robert LeBlanc
2017-06-07 8:09 ` [PATCH 0/7] Enable iSCSI offload drivers to use information from iface Hannes Reinecke
2017-06-07 16:28 ` Chris Leech
8 siblings, 0 replies; 18+ messages in thread
From: Robert LeBlanc @ 2017-06-06 18:07 UTC (permalink / raw)
To: lduncan-IBi9RG/b67k
Cc: cleech-H+wXaHxf7aLQT0dZR+AlfA,
jejb-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8,
martin.petersen-QHcLZuEGTsvQT0dZR+AlfA,
open-iscsi-/JYPxA39Uh5TLH3MbocFFw,
linux-scsi-u79uwXL29TY76Z2rM5mHXA,
linux-kernel-u79uwXL29TY76Z2rM5mHXA,
ogerlitz-VPRAkNaXOzVWk0Htik3J/w, sagi-NQWnxTmZq1alnMjI0IkVqw,
roid-VPRAkNaXOzVWk0Htik3J/w, dledford-H+wXaHxf7aLQT0dZR+AlfA,
sean.hefty-ral2JQCrhuEAvxtiuMwx3w,
hal.rosenstock-Re5JQEeQqe8AvxtiuMwx3w,
linux-rdma-u79uwXL29TY76Z2rM5mHXA,
subbu.seetharaman-dY08KVG/lbpWk0Htik3J/w,
ketan.mukadam-dY08KVG/lbpWk0Htik3J/w,
jitendra.bhivare-dY08KVG/lbpWk0Htik3J/w,
QLogic-Storage-Upstream-h88ZbnxC6KDQT0dZR+AlfA,
varun-ut6Up61K2wZBDgjK7y7TUQ, Robert LeBlanc
Update QLogic ISP4XXX and ISP82XX drivers to accept the session iface for
creating the iSCSI connection. Also accept dst_addr as sockaddr_storage
instead of sockaddr.
Signed-off-by: Robert LeBlanc <robert-4JaGZRWAfWbajFs6igw21g@public.gmane.org>
---
drivers/scsi/qla4xxx/ql4_os.c | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/drivers/scsi/qla4xxx/ql4_os.c b/drivers/scsi/qla4xxx/ql4_os.c
index 64c6fa563fdb..4fccb580bd48 100644
--- a/drivers/scsi/qla4xxx/ql4_os.c
+++ b/drivers/scsi/qla4xxx/ql4_os.c
@@ -119,8 +119,9 @@ static int qla4xxx_get_iface_param(struct iscsi_iface *iface,
int param, char *buf);
static enum blk_eh_timer_return qla4xxx_eh_cmd_timed_out(struct scsi_cmnd *sc);
static struct iscsi_endpoint *qla4xxx_ep_connect(struct Scsi_Host *shost,
- struct sockaddr *dst_addr,
- int non_blocking);
+ struct sockaddr_storage *dst_addr,
+ int non_blocking,
+ struct iface_rec *iface);
static int qla4xxx_ep_poll(struct iscsi_endpoint *ep, int timeout_ms);
static void qla4xxx_ep_disconnect(struct iscsi_endpoint *ep);
static int qla4xxx_get_ep_param(struct iscsi_endpoint *ep,
@@ -1656,8 +1657,8 @@ static int qla4xxx_get_iface_param(struct iscsi_iface *iface,
}
static struct iscsi_endpoint *
-qla4xxx_ep_connect(struct Scsi_Host *shost, struct sockaddr *dst_addr,
- int non_blocking)
+qla4xxx_ep_connect(struct Scsi_Host *shost, struct sockaddr_storage *dst_addr,
+ int non_blocking, struct iface_rec *iface)
{
int ret;
struct iscsi_endpoint *ep;
@@ -1681,12 +1682,12 @@ qla4xxx_ep_connect(struct Scsi_Host *shost, struct sockaddr *dst_addr,
qla_ep = ep->dd_data;
memset(qla_ep, 0, sizeof(struct qla_endpoint));
- if (dst_addr->sa_family == AF_INET) {
+ if (dst_addr->ss_family == AF_INET) {
memcpy(&qla_ep->dst_addr, dst_addr, sizeof(struct sockaddr_in));
addr = (struct sockaddr_in *)&qla_ep->dst_addr;
DEBUG2(ql4_printk(KERN_INFO, ha, "%s: %pI4\n", __func__,
(char *)&addr->sin_addr));
- } else if (dst_addr->sa_family == AF_INET6) {
+ } else if (dst_addr->ss_family == AF_INET6) {
memcpy(&qla_ep->dst_addr, dst_addr,
sizeof(struct sockaddr_in6));
addr6 = (struct sockaddr_in6 *)&qla_ep->dst_addr;
@@ -6569,7 +6570,7 @@ static struct iscsi_endpoint *qla4xxx_get_ep_fwdb(struct scsi_qla_host *ha,
addr->sin_port = htons(le16_to_cpu(fw_ddb_entry->port));
}
- ep = qla4xxx_ep_connect(ha->host, (struct sockaddr *)dst_addr, 0);
+ ep = qla4xxx_ep_connect(ha->host, dst_addr, 0, NULL);
vfree(dst_addr);
return ep;
}
--
2.11.0
--
You received this message because you are subscribed to the Google Groups "open-iscsi" group.
To unsubscribe from this group and stop receiving emails from it, send an email to open-iscsi+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To post to this group, send email to open-iscsi-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
Visit this group at https://groups.google.com/group/open-iscsi.
For more options, visit https://groups.google.com/d/optout.
^ permalink raw reply related [flat|nested] 18+ messages in thread* Re: [PATCH 0/7] Enable iSCSI offload drivers to use information from iface.
[not found] ` <20170606180717.5007-1-robert-4JaGZRWAfWbajFs6igw21g@public.gmane.org>
` (6 preceding siblings ...)
2017-06-06 18:07 ` [PATCH 7/7] scsi/qla4xxx: Update qla4xxx_ep_connect " Robert LeBlanc
@ 2017-06-07 8:09 ` Hannes Reinecke
2017-06-07 16:28 ` Chris Leech
8 siblings, 0 replies; 18+ messages in thread
From: Hannes Reinecke @ 2017-06-07 8:09 UTC (permalink / raw)
To: Robert LeBlanc, lduncan-IBi9RG/b67k
Cc: cleech-H+wXaHxf7aLQT0dZR+AlfA,
jejb-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8,
martin.petersen-QHcLZuEGTsvQT0dZR+AlfA,
open-iscsi-/JYPxA39Uh5TLH3MbocFFw,
linux-scsi-u79uwXL29TY76Z2rM5mHXA,
linux-kernel-u79uwXL29TY76Z2rM5mHXA,
ogerlitz-VPRAkNaXOzVWk0Htik3J/w, sagi-NQWnxTmZq1alnMjI0IkVqw,
roid-VPRAkNaXOzVWk0Htik3J/w, dledford-H+wXaHxf7aLQT0dZR+AlfA,
sean.hefty-ral2JQCrhuEAvxtiuMwx3w,
hal.rosenstock-Re5JQEeQqe8AvxtiuMwx3w,
linux-rdma-u79uwXL29TY76Z2rM5mHXA,
subbu.seetharaman-dY08KVG/lbpWk0Htik3J/w,
ketan.mukadam-dY08KVG/lbpWk0Htik3J/w,
jitendra.bhivare-dY08KVG/lbpWk0Htik3J/w,
QLogic-Storage-Upstream-h88ZbnxC6KDQT0dZR+AlfA,
varun-ut6Up61K2wZBDgjK7y7TUQ
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-l3A5Bk7waGM@public.gmane.org +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)
--
You received this message because you are subscribed to the Google Groups "open-iscsi" group.
To unsubscribe from this group and stop receiving emails from it, send an email to open-iscsi+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To post to this group, send email to open-iscsi-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
Visit this group at https://groups.google.com/group/open-iscsi.
For more options, visit https://groups.google.com/d/optout.
^ permalink raw reply [flat|nested] 18+ messages in thread* Re: [PATCH 0/7] Enable iSCSI offload drivers to use information from iface.
[not found] ` <20170606180717.5007-1-robert-4JaGZRWAfWbajFs6igw21g@public.gmane.org>
` (7 preceding siblings ...)
2017-06-07 8:09 ` [PATCH 0/7] Enable iSCSI offload drivers to use information from iface Hannes Reinecke
@ 2017-06-07 16:28 ` Chris Leech
2017-06-07 18:30 ` Robert LeBlanc
8 siblings, 1 reply; 18+ messages in thread
From: Chris Leech @ 2017-06-07 16:28 UTC (permalink / raw)
To: Robert LeBlanc
Cc: lduncan-IBi9RG/b67k, jejb-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8,
martin.petersen-QHcLZuEGTsvQT0dZR+AlfA,
open-iscsi-/JYPxA39Uh5TLH3MbocFFw,
linux-scsi-u79uwXL29TY76Z2rM5mHXA,
linux-kernel-u79uwXL29TY76Z2rM5mHXA,
ogerlitz-VPRAkNaXOzVWk0Htik3J/w, sagi-NQWnxTmZq1alnMjI0IkVqw,
roid-VPRAkNaXOzVWk0Htik3J/w, dledford-H+wXaHxf7aLQT0dZR+AlfA,
sean.hefty-ral2JQCrhuEAvxtiuMwx3w,
hal.rosenstock-Re5JQEeQqe8AvxtiuMwx3w,
linux-rdma-u79uwXL29TY76Z2rM5mHXA,
subbu.seetharaman-dY08KVG/lbpWk0Htik3J/w,
ketan.mukadam-dY08KVG/lbpWk0Htik3J/w,
jitendra.bhivare-dY08KVG/lbpWk0Htik3J/w,
QLogic-Storage-Upstream-h88ZbnxC6KDQT0dZR+AlfA,
varun-ut6Up61K2wZBDgjK7y7TUQ
On Tue, Jun 06, 2017 at 12:07:10PM -0600, 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.
Hi Robert,
I don't think that passing the iface_rec structure directly from the
iscsid internals into a netlink message is a good way to go about this.
It's really big, there's an embedded list_head with user address
pointers that needs to be left out, and there are 32/64-bit layout
differences.
Let me take a look at how you're proposing using this info for iSER, if
it makes sense I think we should come up with a better designed
structure for passing the information.
Thanks,
Chris
> 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(-)
>
> --
> 2.11.0
>
--
You received this message because you are subscribed to the Google Groups "open-iscsi" group.
To unsubscribe from this group and stop receiving emails from it, send an email to open-iscsi+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To post to this group, send email to open-iscsi-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
Visit this group at https://groups.google.com/group/open-iscsi.
For more options, visit https://groups.google.com/d/optout.
^ permalink raw reply [flat|nested] 18+ messages in thread* Re: [PATCH 0/7] Enable iSCSI offload drivers to use information from iface.
2017-06-07 16:28 ` Chris Leech
@ 2017-06-07 18:30 ` Robert LeBlanc
[not found] ` <CAANLjFomYCEmjfE7HLAsE7SgVqBKH8KSxYzFqxuV7t8as8+-ZQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
0 siblings, 1 reply; 18+ messages in thread
From: Robert LeBlanc @ 2017-06-07 18:30 UTC (permalink / raw)
To: Chris Leech, Robert LeBlanc, lduncan, jejb, martin.petersen,
open-iscsi, linux-scsi, Linux-Kernel@Vger. Kernel. Org, ogerlitz,
Sagi Grimberg, roid, Doug Ledford, Hefty, Sean, Hal Rosenstock,
linux-rdma, subbu.seetharaman, ketan.mukadam, jitendra.bhivare,
QLogic-Storage-Upstream, varun
On Wed, Jun 7, 2017 at 10:28 AM, Chris Leech <cleech@redhat.com> wrote:
> On Tue, Jun 06, 2017 at 12:07:10PM -0600, 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.
>
> Hi Robert,
>
> I don't think that passing the iface_rec structure directly from the
> iscsid internals into a netlink message is a good way to go about this.
> It's really big, there's an embedded list_head with user address
> pointers that needs to be left out, and there are 32/64-bit layout
> differences.
>
> Let me take a look at how you're proposing using this info for iSER, if
> it makes sense I think we should come up with a better designed
> structure for passing the information.
>
> Thanks,
> Chris
>
Chris,
Thank you for your feedback. I agree that the entire iface is probably
overkill, it was more of a proof of concept. We are only using the
ipaddress in the iface for iSER (in my patch), but I could see other
drivers benefiting from some of the other data in the iface (mac,
interface_name, vlan, etc) so I didn't want to be too restrictive so
that it wouldn't have to be extended later. I've not worked on
userspace/kernel interaction before so I need some guidance to make
the transition between userspace and kernel versions smoother.
This patchset works for what we need and it is very important for us
(and I'm sure others once the feature is available) and I'm happy to
put in the time to get it accepted upstream, I'm just new to kernel
development and need some guidance.
Thanks,
----------------
Robert LeBlanc
PGP Fingerprint 79A2 9CA4 6CC4 45DD A904 C70E E654 3BB2 FA62 B9F1
^ permalink raw reply [flat|nested] 18+ messages in thread