linux/drivers/scsi/qla2xxx
Quinn Tran 726b854870 qla2xxx: Add framework for async fabric discovery
Currently code performs a full scan of the fabric for
every RSCN. Its an expensive process in a noisy large SAN.

This patch optimizes expensive fabric discovery process by
scanning switch for the affected port when RSCN is received.

Currently Initiator Mode code makes login/logout decision without
knowledge of target mode. This causes driver and firmware to go
out-of-sync. This framework synchronizes both initiator mode
personality and target mode personality in making login/logout
decision.

This patch adds following capabilities in the driver

- Send Notification Acknowledgement asynchronously.
- Update session/fcport state asynchronously.
- Create a session or fcport struct asynchronously.
- Send GNL asynchronously. The command will ask FW to
  provide a list of FC Port entries FW knows about.
- Send GPDB asynchronously. The command will ask FW to
  provide detail data of an FC Port FW knows about or
  perform ADISC to verify the state of the session.
- Send GPNID asynchronously. The command will ask switch
  to provide WWPN for provided NPort ID.
- Send GPSC asynchronously. The command will ask switch
  to provide registered port speed for provided WWPN.
- Send GIDPN asynchronously. The command will ask the
  switch to provide Nport ID for provided WWPN.
- In driver unload path, schedule all session for deletion
  and wait for deletion to complete before allowing driver
  unload to proceed.

Signed-off-by: Quinn Tran <quinn.tran@cavium.com>
Signed-off-by: Himanshu Madhani <himanshu.madhani@cavium.com>
[ bvanassche: fixed spelling in patch description ]
Signed-off-by: Bart Van Assche <bart.vanassche@sandisk.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
2017-02-09 00:38:53 -08:00
..
Kconfig tcm_qla2xxx Add SCSI command jammer/discard capability 2016-05-10 01:27:17 -07:00
Makefile
qla_attr.c qla2xxx: Add framework for async fabric discovery 2017-02-09 00:38:53 -08:00
qla_bsg.c scsi: fc: use bsg_job_done 2016-11-17 20:15:26 -05:00
qla_bsg.h qla2xxx: Add bsg interface to support statistics counter reset. 2016-07-15 15:35:37 -04:00
qla_dbg.c scsi: qla2xxx: Add multiple queue pair functionality. 2016-12-14 15:37:58 -05:00
qla_dbg.h
qla_def.h qla2xxx: Add framework for async fabric discovery 2017-02-09 00:38:53 -08:00
qla_devtbl.h
qla_dfs.c qla2xxx: Track I-T nexus as single fc_port struct 2017-02-08 23:34:07 -08:00
qla_fw.h qla2xxx: Add framework for async fabric discovery 2017-02-09 00:38:53 -08:00
qla_gbl.h qla2xxx: Add framework for async fabric discovery 2017-02-09 00:38:53 -08:00
qla_gs.c qla2xxx: Add framework for async fabric discovery 2017-02-09 00:38:53 -08:00
qla_init.c qla2xxx: Add framework for async fabric discovery 2017-02-09 00:38:53 -08:00
qla_inline.h qla2xxx: Add framework for async fabric discovery 2017-02-09 00:38:53 -08:00
qla_iocb.c qla2xxx: Add framework for async fabric discovery 2017-02-09 00:38:53 -08:00
qla_isr.c qla2xxx: Add framework for async fabric discovery 2017-02-09 00:38:53 -08:00
qla_mbx.c qla2xxx: Add framework for async fabric discovery 2017-02-09 00:38:53 -08:00
qla_mid.c scsi: qla2xxx: Add multiple queue pair functionality. 2016-12-14 15:37:58 -05:00
qla_mr.c qla2xxx: Fix wrong argument in sp done callback 2017-02-08 23:34:06 -08:00
qla_mr.h
qla_nx2.c qla2xxx: Move two arrays from header files to .c files 2017-01-17 11:26:41 -08:00
qla_nx2.h qla2xxx: Move two arrays from header files to .c files 2017-01-17 11:26:41 -08:00
qla_nx.c qla2xxx: Move two arrays from header files to .c files 2017-01-17 11:26:41 -08:00
qla_nx.h qla2xxx: Move two arrays from header files to .c files 2017-01-17 11:26:41 -08:00
qla_os.c qla2xxx: Add framework for async fabric discovery 2017-02-09 00:38:53 -08:00
qla_settings.h
qla_sup.c Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
qla_target.c qla2xxx: Add framework for async fabric discovery 2017-02-09 00:38:53 -08:00
qla_target.h qla2xxx: Add framework for async fabric discovery 2017-02-09 00:38:53 -08:00
qla_tmpl.c qla2xxx: Include ATIO queue in firmware dump when in target mode 2017-01-17 11:26:53 -08:00
qla_tmpl.h
qla_version.h qla2xxx: Update driver version to 8.07.00.38-k 2016-07-15 15:35:52 -04:00
tcm_qla2xxx.c qla2xxx: Track I-T nexus as single fc_port struct 2017-02-08 23:34:07 -08:00
tcm_qla2xxx.h qla2xxx: Track I-T nexus as single fc_port struct 2017-02-08 23:34:07 -08:00