From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1759255AbYLLJfz (ORCPT ); Fri, 12 Dec 2008 04:35:55 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1759105AbYLLJfj (ORCPT ); Fri, 12 Dec 2008 04:35:39 -0500 Received: from smtp115.sbc.mail.sp1.yahoo.com ([69.147.64.88]:39860 "HELO smtp115.sbc.mail.sp1.yahoo.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with SMTP id S1759077AbYLLJfh (ORCPT ); Fri, 12 Dec 2008 04:35:37 -0500 X-YMail-OSG: q_yneZQVM1kt4AJPKE_pGAFQ4EPFCg2B781ON_WOt2L1Cybwv02VGvf3CEIFy7wc7nvAF1bvCeijZss3tHvcelS.uxtuVTeVBAEWo9PbyzRHcEC12Aco8wlDzf_b4SMJY0y7jId3zwvzwqqAqS7DC3Xe7hdt75LflkqmNrtaagoKlpSmwu7Q8H6XsMw- X-Yahoo-Newman-Property: ymail-3 Subject: [PATCH] [Target_Core_Mod/MIB 10/12]: Update SCSI MIBs From: "Nicholas A. Bellinger" To: "Linux-iSCSI.org Target Dev" Cc: linux-scsi , LKML Content-Type: text/plain Date: Fri, 12 Dec 2008 01:35:34 -0800 Message-Id: <1229074534.4153.659.camel@haakon2.linux-iscsi.org> Mime-Version: 1.0 X-Mailer: Evolution 2.22.3.1 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org >>From 11596ef31b485e778260d1f3e2e455add22ab11a Mon Sep 17 00:00:00 2001 From: Nicholas Bellinger Date: Fri, 12 Dec 2008 01:00:54 -0800 Subject: [PATCH] [Target_Core_Mod/MIB]: Update SCSI MIBs This patch updates SCSI MIB (RFC 4455) for Target_Core_Mod to use struct target_core_fabric_ops (using TPG_TFO macro). Signed-off-by: Nicholas A. Bellinger --- drivers/lio-core/target_core_mib.c | 51 ++++++++++++++++++++--------------- 1 files changed, 29 insertions(+), 22 deletions(-) diff --git a/drivers/lio-core/target_core_mib.c b/drivers/lio-core/target_core_mib.c index ff82f93..8b31a03 100644 --- a/drivers/lio-core/target_core_mib.c +++ b/drivers/lio-core/target_core_mib.c @@ -39,15 +39,10 @@ #include #include -#include "iscsi_protocol.h" -#include -#include "iscsi_target_core.h" #include #include -#include "iscsi_target_device.h" #include "target_core_hba.h" #include "target_core_transport.h" -#include "iscsi_target_util.h" #include "target_core_mib.h" @@ -94,7 +89,7 @@ static int scsi_inst_seq_show(struct seq_file *seq, void *v) seq_puts(seq, "inst sw_indx\n"); spin_lock(&se_global->hba_lock); - for (i = 0; i < ISCSI_MAX_GLOBAL_HBAS; i++) { + for (i = 0; i < TRANSPORT_MAX_GLOBAL_HBAS; i++) { hba = &se_global->hba_list[i]; if (!(hba->hba_status & HBA_STATUS_ACTIVE)) @@ -105,7 +100,7 @@ static int scsi_inst_seq_show(struct seq_file *seq, void *v) seq_printf(seq, "%u %u\n", hba->hba_index, SCSI_INST_SW_INDEX); seq_printf(seq, "plugin: %s version: %s\n", hba->transport->name, - PYX_ISCSI_VERSION); + TARGET_CORE_VERSION); } spin_unlock(&se_global->hba_lock); @@ -147,7 +142,7 @@ static void *locate_hba_start( seq->private = (void *)tpg_iter; spin_lock(&se_global->hba_lock); - for (i = 0; i < ISCSI_MAX_GLOBAL_HBAS; i++) { + for (i = 0; i < TRANSPORT_MAX_GLOBAL_HBAS; i++) { hba = &se_global->hba_list[i]; if (!(hba->hba_status & HBA_STATUS_ACTIVE)) @@ -204,7 +199,7 @@ static void *locate_hba_next( atomic_dec(&hba->dev_mib_access_count); iterp->ti_ptr = NULL; - for (i = (iterp->ti_offset + 1); i < ISCSI_MAX_GLOBAL_HBAS; i++) { + for (i = (iterp->ti_offset + 1); i < TRANSPORT_MAX_GLOBAL_HBAS; i++) { hba = &se_global->hba_list[i]; if (!(hba->hba_status & HBA_STATUS_ACTIVE)) @@ -431,7 +426,9 @@ static int scsi_transport_seq_show(struct seq_file *seq, void *v) se_device_t *dev; table_iter_t *iterp = (table_iter_t *)seq->private; se_port_t *se, *se_tmp; + se_portal_group_t *tpg; t10_wwn_t *wwn; + char buf[64]; if (v == SEQ_START_TOKEN) seq_puts(seq, "inst device indx dev_name\n"); @@ -447,11 +444,15 @@ static int scsi_transport_seq_show(struct seq_file *seq, void *v) spin_lock(&dev->se_port_lock); list_for_each_entry_safe(se, se_tmp, &dev->dev_sep_list, sep_list) { + tpg = se->sep_tpg; + sprintf(buf, "scsiTransport%s", + TPG_TFO(tpg)->get_fabric_name()); + seq_printf(seq, "%u %s %u %s+%s\n", hba->hba_index, /* scsiTransportIndex */ - "scsiTransportISCSI", /* scsiTransportType */ - se->sep_tpg->tpg_tiqn->tiqn_index, /* scsiTransportPointer */ - se->sep_tpg->tpg_tiqn->tiqn, + buf, /* scsiTransportType */ + TPG_TFO(tpg)->tpg_get_inst_index(tpg), + TPG_TFO(tpg)->tpg_get_wwn(tpg), (strlen(wwn->unit_serial)) ? wwn->unit_serial : wwn->vendor); /* scsiTransportDevName */ } @@ -524,19 +525,19 @@ static int scsi_tgt_dev_seq_show(struct seq_file *seq, void *v) spin_lock(&hba->device_lock); if ((dev = (se_device_t *)iterp->ti_ptr)) { switch (dev->dev_status) { - case ISCSI_DEVICE_ACTIVATED: + case TRANSPORT_DEVICE_ACTIVATED: strcpy(status, "activated"); break; - case ISCSI_DEVICE_DEACTIVATED: + case TRANSPORT_DEVICE_DEACTIVATED: strcpy(status, "deactivated"); non_accessible_lus = 1; break; - case ISCSI_DEVICE_SHUTDOWN: + case TRANSPORT_DEVICE_SHUTDOWN: strcpy(status, "shutdown"); non_accessible_lus = 1; break; - case ISCSI_DEVICE_OFFLINE_ACTIVATED: - case ISCSI_DEVICE_OFFLINE_DEACTIVATED: + case TRANSPORT_DEVICE_OFFLINE_ACTIVATED: + case TRANSPORT_DEVICE_OFFLINE_DEACTIVATED: strcpy(status, "offline"); non_accessible_lus = 1; break; @@ -600,9 +601,11 @@ static int scsi_tgt_port_seq_show(struct seq_file *seq, void *v) se_hba_t *hba; se_device_t *dev; se_port_t *sep, *sep_tmp; + se_portal_group_t *tpg; table_iter_t *iterp = (table_iter_t *)seq->private; u32 rx_mbytes, tx_mbytes; unsigned long long num_cmds; + char buf[64]; if (v == SEQ_START_TOKEN) seq_puts(seq, "inst device indx name port_index in_cmds write_mbytes" @@ -617,12 +620,16 @@ static int scsi_tgt_port_seq_show(struct seq_file *seq, void *v) if ((dev = (se_device_t *)iterp->ti_ptr)) { spin_lock(&dev->se_port_lock); list_for_each_entry_safe(sep, sep_tmp, &dev->dev_sep_list, sep_list) { + tpg = sep->sep_tpg; + sprintf(buf, "%sPort#", TPG_TFO(tpg)->get_fabric_name()); + seq_printf(seq, "%u %u %u %s%d %s%s%d ", hba->hba_index, dev->dev_index, sep->sep_index, - "iSCSIPort#", sep->sep_index, - sep->sep_tpg->tpg_tiqn->tiqn, "+t+", sep->sep_tpg->tpgt); + buf, sep->sep_index, + TPG_TFO(tpg)->tpg_get_wwn(tpg), "+t+", + TPG_TFO(tpg)->tpg_get_tag(tpg)); spin_lock(&sep->sep_lun->lun_sep_lock); num_cmds = sep->sep_stats.cmd_pdus; @@ -841,7 +848,7 @@ static int scsi_lu_seq_show(struct seq_file *seq, void *v) dev->dev_index, SCSI_LU_INDEX, (unsigned long long)0, /* scsiLuDefaultLun */ (strlen(dev->t10_wwn.unit_serial)) ? - (char *)&dev->t10_wwn.unit_serial[0] : NONE); /* scsiLuWwnName */ + (char *)&dev->t10_wwn.unit_serial[0] : "None"); /* scsiLuWwnName */ memcpy(&str[0], (void *)&dev->t10_wwn, 28); @@ -868,7 +875,7 @@ static int scsi_lu_seq_show(struct seq_file *seq, void *v) seq_printf(seq," %u %s %s %llu %u %u %u %u %u %u\n", dev->dev_obj_api->get_device_type((void *)dev), /* scsiLuPeripheralType */ - (dev->dev_status == ISCSI_DEVICE_ACTIVATED)? + (dev->dev_status == TRANSPORT_DEVICE_ACTIVATED)? "available":"notavailable", /* scsiLuStatus */ "exposed", /* scsiLuState */ (unsigned long long)dev->num_cmds, @@ -1053,7 +1060,7 @@ u32 scsi_get_new_index(scsi_index_t type) { u32 new_index; - if ((type < 0) || (type >= INDEX_TYPE_MAX)) { + if ((type < 0) || (type >= SCSI_INDEX_TYPE_MAX)) { printk("Invalid index type %d\n", type); return(-1); } -- 1.5.4.1