All, For the past several months, Emulex has been updating our driver to support the N_Port ID Virtualization (NPIV). We have reached a maturity point where we would like to move the NPIV support into our upstream driver. This is a request to review the modifications we have made for NPIV. NPIV is a mechanism by which a FC port can acquire more than 1 Address on a FC fabric. Using this mechanism, virtual FC ports can be instantiated on the same physical Port. Each NPIV instance is a unique WWPN and N_Port ID on the fabric. For all intents, it is another hba on the fabric. Each instance has its own view of what is present on the fabric, each has its own discovery engine, and each NPIV instances has a separate and unique login context with each remote port. In order to support NPIV, there were 3 major blocks of changes made to the driver: - First, the driver is reorganized to separate the handling of the adapter from the handling of the FC port. Adapter handling includes submissions of command requests, receiving responses, and managing adapter resources. The FC port includes the discovery engine, login handling, and the mapping of a Scsi_Host on the "port". Although not a large functional change, as it touches core structures and functions, resulting in a large text delta. - Second, NPIV support is only available via new adapter interface extensions, termed SLI-3. This interface changes some of the basic behaviors such as command and response ring element sizes and data structures, as well as a change in buffer posting. Note: the new firmware extensions are found only on our mid-range and enterprise 4Gig adapters - so NPIV support is available only on these newer adapters. The latest firmware can be downloaded from the Emulex support page. - Lastly, NPIV support is added to the driver. It utilizes the interfaces of the fc transport for the creation and deletion of vports. Within the driver, a new Scsi_Host is created for each NPIV instance, and is paired with a new instance of a FC port. This allows N FC Port elements to share a single Adapter. Given that the patch sets are rather large, I have placed them on our lpfc page on SourceForge. See: https://sourceforge.net/project/showfiles.php?group_id=103050&package_id=188761&release_id=504988 We have also taken this opportunity to address some of the long-standing methods that are suboptimal, but have been in the driver forever. The patches are labeled and numbered per the descriptions above. They apply on top of the recent 8.1.12 driver. I have also included a final tarball of the resulting driver, which we have renumbered to 8.2.0. We appreciate any feedback on the patch sets. -- james s - To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html