<html><head><meta http-equiv="Content-Type" content="text/html; charset=us-ascii"><meta name="Generator" content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style></head><body lang="EN-US" link="#0563C1" vlink="#954F72"><div class="WordSection1"><p class="MsoNormal">Introduction:</p><p class="MsoNormal">The Fibre Channel Transport Service provides FC network intelligence in host</p><p class="MsoNormal">applications and also provide the host intelligence in FC network. This service</p><p class="MsoNormal">can act as a bridge or transport mechanism between applications running on host</p><p class="MsoNormal">and the FC network connected to the host.</p><p class="MsoNormal"> </p><p class="MsoNormal">Presently, the service automates the marginal path failover by utilizing the</p><p class="MsoNormal">FC network intelligence. The service uses Fabric Performance Impact Notification</p><p class="MsoNormal">(FPIN) frames, as defined in the FC standards by T11 Committee, to perform a</p><p class="MsoNormal">deterministic path failover.</p><p class="MsoNormal"> </p><p class="MsoNormal">How it works:</p><p class="MsoNormal">When the FC network detects a shaky or marginal link in the Fabric, it finds</p><p class="MsoNormal">the impacted devices, gets the device's unique World-Wide-Name (WWNs) and</p><p class="MsoNormal">populates the FPIN Link Integrity frame with the WWNs of these impacted devices.</p><p class="MsoNormal">This frame is then sent to the FC host, through the Host Bus Adapters (HBAs).</p><p class="MsoNormal"> </p><p class="MsoNormal">The FC transport service interprets the data received through HBA, and fails</p><p class="MsoNormal">the corresponding marginal paths using the device mapper and multipath</p><p class="MsoNormal">libraries.</p><p class="MsoNormal"> </p><p class="MsoNormal">Below are the ways where the marginal path can be moved to active.</p><p class="MsoNormal">1.port toggling after resolving the link issues in fabric</p><p class="MsoNormal">2.Host intervention using multipathd utilities.</p><p class="MsoNormal"> </p><p class="MsoNormal">The code is available in the below GIT repository.</p><p class="MsoNormal"> </p><p class="MsoNormal"><a href="https://github.com/brocade/bsn-linux-open-os-contributions">https://github.com/brocade/bsn-linux-open-os-contributions</a></p><p class="MsoNormal"> </p><p class="MsoNormal"> </p><p class="MsoNormal">Please refer to the README for more details regarding compilation, service</p><p class="MsoNormal">functionality and usage.</p><p class="MsoNormal"> </p><p class="MsoNormal"><a href="https://github.com/brocade/bsn-linux-open-os-contributions/tree/master/mpio/Fabric_Assist/FC_Transport_Daemon">https://github.com/brocade/bsn-linux-open-os-contributions/tree/master/mpio/Fabric_Assist/FC_Transport_Daemon</a></p><p class="MsoNormal"> </p><p class="MsoNormal"> </p><p class="MsoNormal">Contributors:</p><p class="MsoNormal"><a href="mailto:Benjamin%3Abmarzins@redhat.com">Benjamin:bmarzins@redhat.com</a>,</p><p class="MsoNormal">Muneendra:(<a href="mailto:muneendra.kumar@broadcom.com">muneendra.kumar@broadcom.com</a>)</p><p class="MsoNormal">Ganesh:(<a href="mailto:ganesh.pai@broadcom.com">ganesh.pai@broadcom.com</a>)</p><p class="MsoNormal"> </p><p class="MsoNormal">Future Work:</p><p class="MsoNormal">Instead of moving the path to fail state we are planning to move the path to special priority group</p><p class="MsoNormal">as defined by dm-multipath(which is to be implemented)</p><p class="MsoNormal"> </p><p class="MsoNormal">History:</p><p class="MsoNormal"> </p><p class="MsoNormal">The kernel related changes to send the ELS notifications to the user space is already available in the upstream.</p><p class="MsoNormal">Below are the links related to the same.</p><p class="MsoNormal"> </p><p class="MsoNormal"><span style="font-size:9.0pt;font-family:Consolas;color:#444d56;background:white">Linux:</span></p><p class="MsoNormal"><span style="font-size:9.0pt;font-family:Consolas;color:#444d56;background:white">All the HBA and scsi transport related changes are available in linux upstream</span></p><p class="MsoNormal"><span style="font-size:9.0pt;font-family:Consolas;color:#444d56;background:white"> </span></p><p class="MsoNormal"><a href="https://github.com/torvalds/linux/">https://github.com/torvalds/linux/</a><span style="color:#1f497d">              </span></p><p class="MsoNormal"><span style="color:#1f497d"> </span></p><p class="MsoNormal"><span style="color:#1f497d">CommitId:</span></p><p class="MsoNormal"><span style="font-size:9.0pt;font-family:Consolas;color:#444d56;background:white">1a61e5486aeb90d94dd6116c9749e36edd10bf9b </span><span style="font-size:9.0pt;font-family:Wingdings;color:#444d56;background:white">è</span><a href="https://github.com/torvalds/linux/commit/1a61e5486aeb90d94dd6116c9749e36edd10bf9b">https://github.com/torvalds/linux/commit/1a61e5486aeb90d94dd6116c9749e36edd10bf9b</a><span style="font-size:9.0pt;font-family:Consolas;color:#444d56;background:white"></span></p><p class="MsoNormal"><span style="font-size:9.0pt;font-family:Consolas;color:#444d56;background:white"> </span></p><p class="MsoNormal"><span style="font-size:9.0pt;font-family:Consolas;color:#444d56;background:white">c39e0af64bce3bba61c3986d6083df7b8f29a310 </span><span style="font-size:9.0pt;font-family:Wingdings;color:#444d56;background:white">è</span><a href="https://github.com/torvalds/linux/commit/c39e0af64bce3bba61c3986d6083df7b8f29a310">https://github.com/torvalds/linux/commit/c39e0af64bce3bba61c3986d6083df7b8f29a310</a></p><p class="MsoNormal"><span style="font-size:9.0pt;font-family:Consolas;color:#444d56;background:white"> </span></p><p class="MsoNormal"><span style="font-size:9.0pt;font-family:Consolas;color:#444d56;background:white">2b1be55819dc7ae35576b3ba621c7fed0c323e04 </span><span style="font-size:9.0pt;font-family:Wingdings;color:#444d56;background:white">è</span><a href="https://github.com/torvalds/linux/commit/2b1be55819dc7ae35576b3ba621c7fed0c323e04">https://github.com/torvalds/linux/commit/2b1be55819dc7ae35576b3ba621c7fed0c323e04</a></p><p class="MsoNormal"><span style="font-size:9.0pt;font-family:Consolas;color:#444d56;background:white"> </span></p><p class="MsoNormal"><span style="font-size:9.0pt;font-family:Consolas;color:#444d56;background:white">a7dff3ad4787381a3aa831d558fb720b8f354435 </span><span style="font-size:9.0pt;font-family:Wingdings;color:#444d56;background:white">è</span><a href="https://github.com/torvalds/linux/commit/a7dff3ad4787381a3aa831d558fb720b8f354435">https://github.com/torvalds/linux/commit/a7dff3ad4787381a3aa831d558fb720b8f354435</a><span style="font-size:9.0pt;font-family:Consolas;color:#444d56;background:white"></span></p><p class="MsoNormal"><span style="color:#1f497d"> </span></p><p class="MsoNormal">Regards,</p><p class="MsoNormal">Muneendra.</p></div></body></html>