From mboxrd@z Thu Jan 1 00:00:00 1970 From: aeasi@marvell.com (Arun Easi) Date: Wed, 29 May 2019 16:12:08 -0700 Subject: [PATCH v2 0/7] nvmet/nvmet_fc: add events for discovery controller rescan In-Reply-To: <20190514215808.10572-1-jsmart2021@gmail.com> References: <20190514215808.10572-1-jsmart2021@gmail.com> Message-ID: Apologies for the delay, wanted to test out some of these changes, but it looks it would be a bit longer. Anyway, the series look good to me. -- arun On Tue, 14 May 2019, 2:58pm, James Smart wrote: > A transport may have a transport-specific mechanism that can signal > when discovery controller content has changed and request a host > to rescan to the discovery controller. > > FC is such a transport. RSCNs may be generated by the subsystem's FC > port and sent to the initiator or fabric controller. If a fabric, the > fabric controller will broadcast the RSCN to registered hosts. A host, > upon receiving the RSCN, would validate connectivity then initiate a > discovery controller rescan. > > These patches: > - Modify the nvmet core layer to call a transport callback whenever > a port discovery change occurs. To facilitate the callback and > avoid new routines between core. and discovery.c the port structure > now has a copy of the transport ops structure. > - Modify the nvmet-fc transport to support the nvmet callback, and add > its own internal lldd api to request the lldd to generate an RSCN. > - Update nvme-fcloop test harness to support the lldd api and invoke > the rescan on the host. > - Modify the lpfc driver to support the new interfaces: > - Adds a new routine to transmit an RSCN to the other port (pt2pt) > or fabric controller. Add recognition for receipt of an RSCN. > - Add support for the nvmet lldd api for discovery event, which > invokes the RSCN transmit. > - Ties into the RSCN receipt and requests the nvme_fc transport > to rescan the remote port (discovery event will be posted). > - Adds a sysfs routine to enable manual generation of an RSCN. > > v2: > Revise lpfc patch 6 to check for port role nvme discovery not just > nvme target > > > James Smart (7): > nvmet: add transport discovery change op > nvmet_fc: add transport discovery change event callback support > nvme-fcloop: Add support for nvmet discovery_event op > lpfc: Add support to generate RSCN events for nport > lpfc: add nvmet discovery_event op support > lpfc: Add support for translating an RSCN rcv into a discovery rescan > lpfc: Add sysfs interface to post NVME RSCN > > drivers/nvme/target/core.c | 2 + > drivers/nvme/target/discovery.c | 4 ++ > drivers/nvme/target/fc.c | 11 ++++ > drivers/nvme/target/fcloop.c | 37 ++++++++++++ > drivers/nvme/target/nvmet.h | 2 + > drivers/scsi/lpfc/lpfc.h | 2 + > drivers/scsi/lpfc/lpfc_attr.c | 60 ++++++++++++++++++ > drivers/scsi/lpfc/lpfc_crtn.h | 4 ++ > drivers/scsi/lpfc/lpfc_els.c | 127 +++++++++++++++++++++++++++++++++++++++ > drivers/scsi/lpfc/lpfc_hbadisc.c | 35 +++++++++++ > drivers/scsi/lpfc/lpfc_hw.h | 2 + > drivers/scsi/lpfc/lpfc_nvme.c | 44 ++++++++++++++ > drivers/scsi/lpfc/lpfc_nvmet.c | 17 ++++++ > drivers/scsi/lpfc/lpfc_sli.c | 1 + > include/linux/nvme-fc-driver.h | 6 ++ > 15 files changed, 354 insertions(+) > >