Introduction: The Fibre Channel Transport Service provides FC network intelligence in host applications and also provide the host intelligence in FC network. This service can act as a bridge or transport mechanism between applications running on host and the FC network connected to the host.  Presently, the service automates the marginal path failover by utilizing the FC network intelligence. The service uses Fabric Performance Impact Notification (FPIN) frames, as defined in the FC standards by T11 Committee, to perform a deterministic path failover.  How it works: When the FC network detects a shaky or marginal link in the Fabric, it finds the impacted devices, gets the device's unique World-Wide-Name (WWNs) and populates the FPIN Link Integrity frame with the WWNs of these impacted devices. This frame is then sent to the FC host, through the Host Bus Adapters (HBAs).  The FC transport service interprets the data received through HBA, and fails the corresponding marginal paths using the device mapper and multipath libraries.  Below are the ways where the marginal path can be moved to active. 1.port toggling after resolving the link issues in fabric 2.Host intervention using multipathd utilities.  The code is available in the below GIT repository.  https://github.com/brocade/bsn-linux-open-os-contributions   Please refer to the README for more details regarding compilation, service functionality and usage.    Contributors: Muneendra:(muneendra.kumar@xxxxxxxxxxxx) Ganesh:(ganesh.pai@xxxxxxxxxxxx)  Future Work: Instead of moving the path to fail state we are planning to move the path to special priority group as defined by dm-multipath(which is to be implemented)  History:  The kernel related changes to send the ELS notifications to the user space is already available in the upstream. Below are the links related to the same.  Linux: All the HBA and scsi transport related changes are available in linux upstream  https://github.com/torvalds/linux/              CommitId: 1a61e5486aeb90d94dd6116c9749e36edd10bf9b èhttps://github.com/torvalds/linux/commit/1a61e5486aeb90d94dd6116c9749e36edd10bf9b  c39e0af64bce3bba61c3986d6083df7b8f29a310 èhttps://github.com/torvalds/linux/commit/c39e0af64bce3bba61c3986d6083df7b8f29a310  2b1be55819dc7ae35576b3ba621c7fed0c323e04 èhttps://github.com/torvalds/linux/commit/2b1be55819dc7ae35576b3ba621c7fed0c323e04  a7dff3ad4787381a3aa831d558fb720b8f354435 èhttps://github.com/torvalds/linux/commit/a7dff3ad4787381a3aa831d558fb720b8f354435  Regards, Muneendra. |
-- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel