aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorAdheer Chandravanshi <adheer.chandravanshi@qlogic.com>2013-09-17 07:54:48 -0400
committerJames Bottomley <JBottomley@Parallels.com>2013-10-25 04:58:01 -0400
commit3af142fea7da55718b733b25be9d54ddb87acfcc (patch)
tree978da743cf3fde4b405fdd802c762691290cae20 /include
parentb1d0b63f99300c0bd8b3fa9c8058fcd9529e294f (diff)
[SCSI] scsi_transport_iscsi: Add support to set CHAP entries
For offload iSCSI like qla4xxx, CHAP entries are stored in adapter's flash. This patch adds support to add/update CHAP entries in adapter's flash using iscsi tools, like Open-iSCSI. Signed-off-by: Adheer Chandravanshi <adheer.chandravanshi@qlogic.com> Signed-off-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'include')
-rw-r--r--include/scsi/iscsi_if.h17
-rw-r--r--include/scsi/scsi_transport_iscsi.h1
2 files changed, 18 insertions, 0 deletions
diff --git a/include/scsi/iscsi_if.h b/include/scsi/iscsi_if.h
index 13d81c5c4ebf..5d6ed6cf12cc 100644
--- a/include/scsi/iscsi_if.h
+++ b/include/scsi/iscsi_if.h
@@ -69,6 +69,7 @@ enum iscsi_uevent_e {
69 ISCSI_UEVENT_LOGIN_FLASHNODE = UEVENT_BASE + 28, 69 ISCSI_UEVENT_LOGIN_FLASHNODE = UEVENT_BASE + 28,
70 ISCSI_UEVENT_LOGOUT_FLASHNODE = UEVENT_BASE + 29, 70 ISCSI_UEVENT_LOGOUT_FLASHNODE = UEVENT_BASE + 29,
71 ISCSI_UEVENT_LOGOUT_FLASHNODE_SID = UEVENT_BASE + 30, 71 ISCSI_UEVENT_LOGOUT_FLASHNODE_SID = UEVENT_BASE + 30,
72 ISCSI_UEVENT_SET_CHAP = UEVENT_BASE + 31,
72 73
73 /* up events */ 74 /* up events */
74 ISCSI_KEVENT_RECV_PDU = KEVENT_BASE + 1, 75 ISCSI_KEVENT_RECV_PDU = KEVENT_BASE + 1,
@@ -309,8 +310,16 @@ enum iscsi_param_type {
309 ISCSI_HOST_PARAM, /* iscsi_host_param */ 310 ISCSI_HOST_PARAM, /* iscsi_host_param */
310 ISCSI_NET_PARAM, /* iscsi_net_param */ 311 ISCSI_NET_PARAM, /* iscsi_net_param */
311 ISCSI_FLASHNODE_PARAM, /* iscsi_flashnode_param */ 312 ISCSI_FLASHNODE_PARAM, /* iscsi_flashnode_param */
313 ISCSI_CHAP_PARAM, /* iscsi_chap_param */
312}; 314};
313 315
316/* structure for minimalist usecase */
317struct iscsi_param_info {
318 uint32_t len; /* Actual length of the param value */
319 uint16_t param; /* iscsi param */
320 uint8_t value[0]; /* length sized value follows */
321} __packed;
322
314struct iscsi_iface_param_info { 323struct iscsi_iface_param_info {
315 uint32_t iface_num; /* iface number, 0 - n */ 324 uint32_t iface_num; /* iface number, 0 - n */
316 uint32_t len; /* Actual length of the param */ 325 uint32_t len; /* Actual length of the param */
@@ -739,6 +748,14 @@ enum chap_type_e {
739 CHAP_TYPE_IN, 748 CHAP_TYPE_IN,
740}; 749};
741 750
751enum iscsi_chap_param {
752 ISCSI_CHAP_PARAM_INDEX,
753 ISCSI_CHAP_PARAM_CHAP_TYPE,
754 ISCSI_CHAP_PARAM_USERNAME,
755 ISCSI_CHAP_PARAM_PASSWORD,
756 ISCSI_CHAP_PARAM_PASSWORD_LEN
757};
758
742#define ISCSI_CHAP_AUTH_NAME_MAX_LEN 256 759#define ISCSI_CHAP_AUTH_NAME_MAX_LEN 256
743#define ISCSI_CHAP_AUTH_SECRET_MAX_LEN 256 760#define ISCSI_CHAP_AUTH_SECRET_MAX_LEN 256
744struct iscsi_chap_rec { 761struct iscsi_chap_rec {
diff --git a/include/scsi/scsi_transport_iscsi.h b/include/scsi/scsi_transport_iscsi.h
index d0f1602985e7..fe7c8f3e93f8 100644
--- a/include/scsi/scsi_transport_iscsi.h
+++ b/include/scsi/scsi_transport_iscsi.h
@@ -152,6 +152,7 @@ struct iscsi_transport {
152 int (*get_chap) (struct Scsi_Host *shost, uint16_t chap_tbl_idx, 152 int (*get_chap) (struct Scsi_Host *shost, uint16_t chap_tbl_idx,
153 uint32_t *num_entries, char *buf); 153 uint32_t *num_entries, char *buf);
154 int (*delete_chap) (struct Scsi_Host *shost, uint16_t chap_tbl_idx); 154 int (*delete_chap) (struct Scsi_Host *shost, uint16_t chap_tbl_idx);
155 int (*set_chap) (struct Scsi_Host *shost, void *data, int len);
155 int (*get_flashnode_param) (struct iscsi_bus_flash_session *fnode_sess, 156 int (*get_flashnode_param) (struct iscsi_bus_flash_session *fnode_sess,
156 int param, char *buf); 157 int param, char *buf);
157 int (*set_flashnode_param) (struct iscsi_bus_flash_session *fnode_sess, 158 int (*set_flashnode_param) (struct iscsi_bus_flash_session *fnode_sess,