|
mchristi |
eaa2605 |
From e35bdee97477e65866b2c110f0e4b1affe4e983d Mon Sep 17 00:00:00 2001
|
|
mchristi |
eaa2605 |
From: Harish Zunjarrao <harish.zunjarrao@qlogic.com>
|
|
mchristi |
eaa2605 |
Date: Wed, 12 Oct 2011 19:12:03 +0530
|
|
mchristi |
eaa2605 |
Subject: [PATCH 1/2] iscsi tools: Add Netconfig support through libiscsi
|
|
mchristi |
eaa2605 |
|
|
mchristi |
eaa2605 |
Signed-off-by: Harish Zunjarrao <harish.zunjarrao@qlogic.com>
|
|
mchristi |
eaa2605 |
Signed-off-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com>
|
|
mchristi |
eaa2605 |
---
|
|
mchristi |
eaa2605 |
libiscsi/libiscsi.c | 25 +++++++++++++++++++++++++
|
|
mchristi |
eaa2605 |
libiscsi/libiscsi.h | 16 ++++++++++++++++
|
|
mchristi |
eaa2605 |
2 files changed, 41 insertions(+), 0 deletions(-)
|
|
mchristi |
eaa2605 |
|
|
mchristi |
eaa2605 |
diff --git a/libiscsi/libiscsi.c b/libiscsi/libiscsi.c
|
|
mchristi |
eaa2605 |
index 42f2e3b..dc63fcd 100644
|
|
mchristi |
eaa2605 |
--- a/libiscsi/libiscsi.c
|
|
mchristi |
eaa2605 |
+++ b/libiscsi/libiscsi.c
|
|
mchristi |
eaa2605 |
@@ -38,9 +38,13 @@
|
|
mchristi |
eaa2605 |
#include "fw_context.h"
|
|
mchristi |
eaa2605 |
#include "iscsid_req.h"
|
|
mchristi |
eaa2605 |
#include "iscsi_err.h"
|
|
mchristi |
eaa2605 |
+#include "iscsi_ipc.h"
|
|
mchristi |
eaa2605 |
+#include "transport.h"
|
|
mchristi |
eaa2605 |
|
|
mchristi |
eaa2605 |
#define CHECK(a) { context->error_str[0] = 0; rc = a; if (rc) goto leave; }
|
|
mchristi |
eaa2605 |
|
|
mchristi |
eaa2605 |
+extern struct iscsi_ipc *ipc;
|
|
mchristi |
eaa2605 |
+
|
|
mchristi |
eaa2605 |
/* UGLY, not thread safe :( */
|
|
mchristi |
eaa2605 |
static int sysfs_initialized = 0;
|
|
mchristi |
eaa2605 |
|
|
mchristi |
eaa2605 |
@@ -610,3 +614,24 @@ int libiscsi_get_firmware_initiator_name(char *initiatorname)
|
|
mchristi |
eaa2605 |
|
|
mchristi |
eaa2605 |
return 0;
|
|
mchristi |
eaa2605 |
}
|
|
mchristi |
eaa2605 |
+
|
|
mchristi |
eaa2605 |
+int libiscsi_set_netconfig(struct libiscsi_context *context,
|
|
mchristi |
eaa2605 |
+ uint32_t host_no, char *transport_name,
|
|
mchristi |
eaa2605 |
+ struct iovec *iovs, int param_count)
|
|
mchristi |
eaa2605 |
+{
|
|
mchristi |
eaa2605 |
+ struct iscsi_transport *t = NULL;
|
|
mchristi |
eaa2605 |
+ int fd;
|
|
mchristi |
eaa2605 |
+ int rc = 1;
|
|
mchristi |
eaa2605 |
+
|
|
mchristi |
eaa2605 |
+ t = iscsi_sysfs_get_transport_by_name(transport_name);
|
|
mchristi |
eaa2605 |
+ if (!t)
|
|
mchristi |
eaa2605 |
+ return ENODEV;
|
|
mchristi |
eaa2605 |
+
|
|
mchristi |
eaa2605 |
+ fd = ipc->ctldev_open();
|
|
mchristi |
eaa2605 |
+ if (fd < 0)
|
|
mchristi |
eaa2605 |
+ return ENODEV;
|
|
mchristi |
eaa2605 |
+
|
|
mchristi |
eaa2605 |
+ rc = ipc->set_net_config(t->handle, host_no, iovs, param_count);
|
|
mchristi |
eaa2605 |
+ ipc->ctldev_close();
|
|
mchristi |
eaa2605 |
+ return rc;
|
|
mchristi |
eaa2605 |
+}
|
|
mchristi |
eaa2605 |
diff --git a/libiscsi/libiscsi.h b/libiscsi/libiscsi.h
|
|
mchristi |
eaa2605 |
index 756590e..61ce0ea 100644
|
|
mchristi |
eaa2605 |
--- a/libiscsi/libiscsi.h
|
|
mchristi |
eaa2605 |
+++ b/libiscsi/libiscsi.h
|
|
mchristi |
eaa2605 |
@@ -335,6 +335,22 @@ PUBLIC int libiscsi_get_firmware_network_config(
|
|
mchristi |
eaa2605 |
*/
|
|
mchristi |
eaa2605 |
PUBLIC int libiscsi_get_firmware_initiator_name(char *initiatorname);
|
|
mchristi |
eaa2605 |
|
|
mchristi |
eaa2605 |
+/** \brief Set Network Configuration Settings
|
|
mchristi |
eaa2605 |
+ *
|
|
mchristi |
eaa2605 |
+ * Set Network Configuration Settings
|
|
mchristi |
eaa2605 |
+ *
|
|
mchristi |
eaa2605 |
+ * \param context libiscsi context to operate on.
|
|
mchristi |
eaa2605 |
+ * \param host_no Host number of the port.
|
|
mchristi |
eaa2605 |
+ * \param transport_name Transport Class Name.
|
|
mchristi |
eaa2605 |
+ * \param iovs Pointer to IO Vectors of Netconfig paramaters.
|
|
mchristi |
eaa2605 |
+ * \param param_count Number to IO Vectors.
|
|
mchristi |
eaa2605 |
+ *
|
|
mchristi |
eaa2605 |
+ * \return 0 on success, ENODEV when set netconfig failed.
|
|
mchristi |
eaa2605 |
+ */
|
|
mchristi |
eaa2605 |
+PUBLIC int libiscsi_set_netconfig(struct libiscsi_context *context,
|
|
mchristi |
eaa2605 |
+ uint32_t host_no, char *transport_name,
|
|
mchristi |
eaa2605 |
+ struct iovec *iovs, int param_count);
|
|
mchristi |
eaa2605 |
+
|
|
mchristi |
eaa2605 |
#undef PUBLIC
|
|
mchristi |
eaa2605 |
|
|
mchristi |
eaa2605 |
#ifdef __cplusplus
|
|
mchristi |
eaa2605 |
--
|
|
mchristi |
eaa2605 |
1.7.1
|
|
mchristi |
eaa2605 |
|