From mboxrd@z Thu Jan 1 00:00:00 1970 From: jsmart2021@gmail.com (James Smart) Date: Tue, 14 May 2019 14:58:01 -0700 Subject: [PATCH v2 0/7] nvmet/nvmet_fc: add events for discovery controller rescan Message-ID: <20190514215808.10572-1-jsmart2021@gmail.com> 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(+) -- 2.13.7