============================ R E A D M E N O T E S ============================ Marvell QLogic FC PowerKit for Windows, Linux and VMware_ESXi ================== Table of Contents ================== [1]. Introduction [2]. Prerequisites [3]. Scope [4]. Limitation [5]. Installation [6]. UnInstallation [7]. Executing Cmdlets 7.(a) Executing Cmdlets on Local and Remote Host through CIM Session: ----------------------------------------------------------------------------- [1]. Executing Cmdlets on [Local Host System]: ---------------------------------------------- a] [Local Windows Host System] [2]. Executing Cmdlets on [Remote Host System]: ---------------------------------------------- i) Connecting Remote Host System through CIM Session: ----------------------------------------------------- a] [Local Windows Host System] --> [Remote Windows Host System] b] [Local Windows Host System] --> [Remote Linux Host System] c] [Local Windows Host System] --> [Remote ESXi Host System] [8]. Available Cmdlets and Description [9]. Known Issues [10]. Open Source License [11]. Contacting Support ================ 1. Introduction: ================ Marvell QLogic FC PowerKit is a PowerShell kit for managing Marvell/QLogic FC family of adapters using PowerShell Cmdlets. The Marvell QLogic FC PowerKit consists of the following two components. a] WMIv2, OMI provider and CIM Provider for Windows, Linux and ESXi respectively. b] PowerShell Cmdlets for managing Marvell/QLogic FC adapter family. ================ 2. Prerequisites: ================ a] WMI/OMI/CIM ESXi provider for Windows/Linux/ESXi is installed properly on the host system with Marvell FC adapter family that is to be managed by the FC Cmdlets. b] Marvell QLogic FC PowerKit be installed properly on the Windows system from which you plan to manage the local/remote Windows, Linux and ESXi host system with Marvell FC adapter family. c] Appropriate device driver for the Marvell FC is to be installed on the host system that is to be managed by the Marvell QLogic FC PowerKit. d] OmiServer must be installed prior to installing the OMI provider on host Linux systems. ========= 3. Scope: ========= a] Windows: ----------- -> Supported Operating Systems for the WMIv2 provider or the Marvell QLogic FC PowerKit as follows. # Windows Server 2016 # Windows Server 2019 [Standard/Data center] # Windows Server 2022 [Standard/Data center] # Windows Server Core 2016 # Windows Server Core 2019 # Windows Server Core 2022 Note : Ensure that the required .Net version is installed on Windows Server. .Net version can be installed from following Microsoft site. https://docs.microsoft.com/en-us/dotnet/framework/install/ b] Linux: --------- -> Supported Operating Systems for the OMI provider and OMI server/CIMOM as follows. # Linux distributions that OMI server/CIMOM is supported. # Please refer to the following link for further details on OMI server/CIMOM: https://github.com/Microsoft/omi (or) https://collaboration.opengroup.org/omi/ c] VMware-ESXi: --------------- -> Supported Operating Systems for Marvell FC VMware ESXi provider and SFCB server/CIMOM as follows. # VMware ESXi_7.0 # VMware ESXi_8.0 ============== 4. Limitation: ============== 1]. Firewall exceptions need to be made for remote host system management using Cmdlets. ================ 5. Installation: ================ 1. Windows: ----------- Off-line installation through Installer files: --------------------------------------------- a] Copy the Marvell QLogic FC PowerKit files to the Windows host. b] Open a powerShell prompt as an administrator and navigate to the directory where you copied the installer files. c] Run the following command to install both WMIv2 provider and the Cmdlets: Simply run below command on "New power-shell prompt session". # .\Install_MRVL_FC_PowerKit.ps1 (or) Run below command on "New power-shell prompt session". # Import-Module .\Install_MRVL_FC_PowerKit.ps1 -Force -> A message will pop-up asking if you want to run software from an untrusted publisher. Type/click 'A' for 'Always run'. d] The Cmdlets will be immediately available. -> Start typing "Get-MRVLFC" and press tab. -> Continue typing Get-MRVLFC and then press tab. -> The Get-MRVLFCAdapter Cmdlet should auto-populate. -> Run the command to confirm the Cmdlets are working properly. Notes: ------ i]. Please make sure that uninstall the old Powerkit (provider and Cmdlets) if the user installed earlier, before installation of new PowerKit (provider and Cmdlets). ii]. Please restart the WMI (Windows Management Instrumentation) from "Services Window Panel" after installation of PowerKit if required. iii]. Please close or end all the old tasks named as "WMI Provider Host" in processes from "Task Manager Window" after installation of PowerKit if required. 2. Linux: --------- a] Download and install the appropriate latest OMI server package for your Linux machine from the following websites. https://github.com/Microsoft/omi (or) https://collaboration.opengroup.org/omi/ RPM packages are provided for the installation of OMI on most enterprise Linux distributions. Choose the package based upon architecture, OpenSSL version and Package format as follows. -> 32-bit (x86) or 64-bit (x64) architecture. -> OpenSSL version 0.9.8, 1.0.x or 1.1.x or 3.x (to determine your OpenSSL version, run: openssl version). -> RPM or Debian package format. Example: # rpm -ivh omi-1.4.2-5.ssl_100.ulinux.x64.rpm b] Make sure omiserver is running on the Linux host system and use the below commands to set httpport and httpsport ports to listen on. # /opt/omi/bin/omiserver --> To see the status of OMI Server. # /opt/omi/bin/omiserver --httpport 5985 --httpsport 5986 -s --> To stop OMI Server on Linux host system. # /opt/omi/bin/omiserver --httpport 5985 --httpsport 5986 -d --> To start OMI Server and set the http port. c] Copy the appropriate Marvell OMI provider rpm package: MRVL_FC_Powerkit-X.X.XX-0.i386.rpm (For x86 Linux) MRVL_FC_Powerkit-X.X.XX-0.x86_64.rpm (For x64 Linux) d] Install the appropriate Marvell OMI provider rpm package. Example: # rpm -ivh MRVL_FC_Powerkit-X.X.XX-0.x86_64.rpm e] Restart the omiserver if necessary. f] Add firewall exceptions to open up the omiserver ports for remote cmdlets to talk to the OMI server/provider. Note: 1] Please make sure that unInstall the old provider if you installed earlier, before installation of new provider. 3. ESXi: -------- Follow the below commands to install Marvell FC VMware ESXi provider VIB on ESXi Host System. On ESXi7.0, unzip the MRVL-FC-Powerkit-ESXi70_X.X.XX-XX_XXXXXXXX-package.zip package which contains installable zip and MOF file. Following command can be used to install VIB. # esxcli software vib install -d /path/to/MRVL-FC-Powerkit-ESXi70_X.X.XX-XX_XXXXXXXX.zip or # esxcli software component apply -d /path/to/MRVL-FC-Powerkit-ESXi70_X.X.XX-XX_XXXXXXXX.zip On ESXi8.0, unzip the MRVL-FC-Powerkit-ESXi80_X.X.XX-XX_XXXXXXXX-package.zip package which contains installable zip and MOF file. Following command can be used to install VIB. # esxcli software vib install -d /path/to/MRVL-FC-Powerkit-ESXi80_X.X.XX-XX_XXXXXXXX.zip or # esxcli software component apply -d /path/to/MRVL-FC-Powerkit-ESXi80_X.X.XX-XX_XXXXXXXX.zip Note: 1] Please make sure that unInstall the old Provider if you installed earlier, before installation of new Provider. 2] The user must reboot the server after successful installation/unInstallation of provider. ================== 6. UnInstallation: ================== 1. Windows: ----------- Off-line unInstallation through UnInstaller files: ------------------------------------------------ -> Please follow the below commands to unInstall the Marvell QLogic FC PowerKit: a] Open a powerShell prompt as administrator and navigate to the directory containing the installer files. b] Run the following command to unInstall the Cmdlets: # .\Uninstall_MRVL_FC_PowerKit.ps1 (or) Run as below on new powerShell prompt session. # Import-Module .\Uninstall_MRVL_FC_PowerKit.ps1 -Force c] Confirm unInstallation by attempting to run Get-MRVLFCAdapter and having it fail. Cmdlets that you have already used in the current PowerShell session may still auto-populate, but will not work if they are ran. 2. Linux: --------- -> Please follow the below to unInstall the Marvell OMI provider rpm package which was installed earlier: # rpm -qa | grep -i MRVL_FC_Powerkit_Linux --> Just to check if the OMI Provider installed or not. # rpm -e MRVL_FC_Powerkit_Linux-XX.XX.XX-XX.x86_64 --> To unInstall OMI Provider. 3. ESXi: -------- ESXi7.0 ------- -> Please follow the below commands to unInstall Marvell FC VMware ESXi provider VIB on ESXi Host System. # esxcli software vib list | grep -i mrvlfc --> Just to check if the Marvell FC ESXi Provider installed or not on Server. # esxcli software vib remove -n mrvlfc --> To unInstall Marvell FC ESXi Provider. Note: 1] The user must reboot the server after successful installation/unInstallation of provider. ESXi8.0 ------- -> Please follow the below commands to unInstall Marvell FC VMware ESXi VIB on ESXi Host System. # esxcli software vib list | grep -i mrvlfcpowerkit --> Just to check if the Marvell FC ESXi 8.0 package installed or not on Server. # esxcli software vib remove -n mrvlfcpowerkit --> To unInstall Marvell FC ESXi 8.0 package. Note: 1] The user must reboot the server after successful installation/unInstallation of provider. ========================================================================= 7.Executing Cmdlets ========================================================================= Notes: ====== a] Windows or Linux or ESXi host systems with Marvell FC adapter family can be managed by Marvell QLogic FC PowerKit Cmdlets. b] You need to have the Marvell QLogic FC PowerKit installed on a Windows system from which you plan to manage locally or remotely the Windows/Linux/ESXi host system with Marvell FC adapter family 7.(a) Executing Cmdlets on Local and Remote Host through CIM Session: ----------------------------------------------------------------------------- The user can execute Cmdlets on Local and Remote Host systems through CIM Session and as following. [1]. Executing Cmdlets on [Local Host System]: ---------------------------------------------- a] [Local Windows Host System] [2]. Executing Cmdlets on [Remote Host System]: ---------------------------------------------- i) Connecting Remote Host System through CIM Session: ----------------------------------------------------- a] [Local Windows Host System] --> [Remote Windows Host System] b] [Local Windows Host System] --> [Remote Linux Host System] c] [Local Windows Host System] --> [Remote ESXi Host System] [1]. Executing Cmdlets on [Local Host System]: ---------------------------------------------- a] [Local Windows Host System]: ----------------------------- - Use the following procedure to connect to a local Windows host system with Marvell FC 25xx/26xx/27xx/28xx adapter family which has the WMIv2 provider already installed: step 1 - Install the latest Marvell QLogic FC PowerKit on Local Windows Host System. Step 2 - Run desired Cmdlets on Local Windows Host System. # Get-MRVLFCAdapter # Get-MRVLFCFunction -> Just invoke the desired Marvell QLogic FC PowerKit cmdlet to managed Marvell FC 25xx/26xx/27xx/28xx adapters on the local Windows host system. Note: You can get the usage/Help of Cmdlet as follows. # Get-Help [-Examples | -Detailed | -Full ] Example: # Get-Help Get-MRVLFCAdapter # Get-Help Get-MRVLFCAdapter -Examples # Get-Help Get-MRVLFCAdapter -Full # Get-Help Get-MRVLFCAdapter -Detailed [2]. Executing Cmdlets on [Remote Host System]: ---------------------------------------------- i) Connecting Remote Host System through CIM Session: ------------------------------------------------------ a] [Local Windows Host System] --> [Remote Windows Host System]: ---------------------------------------------------------------- - Use the following procedure to connect to a remote Windows host system with Marvell FC adapter family which has the WMI provider already installed. Step 1 -> Install the latest Marvell QLogic FC PowerKit on Local Windows Host System. Step 2 -> Add the Remote Windows Host System to trusted host on Local Windows Host System. Example: # winrm set winrm/config/client @{TrustedHosts="172.28.35.225"} --> Run on local Windows machine [in cmd prompt run as admin] Step 3 -> Install the latest Marvell QLogic FC PowerKit on Remote Windows Host System. Step 4 -> Create the cim session on Local Windows Host System.. Syntax: # $Cred = Get-Credential # $Session = New-CimSession -ComputerName -Authentication Negotiate -Credential $Cred -OperationTimeoutSec 1200000 # Get-CimSession Example: # $Cred = Get-Credential Administrator # $Session = New-CimSession -ComputerName 172.28.35.225 -Authentication Negotiate -Credential $Cred -OperationTimeoutSec 1200000 # Get-CimSession Step 5 -> Run desired Cmdlet using CimSession on Local Windows Host System. -> Invoke the desired Cmdlet with "-CimSession $Session" option # Get-MRVLFCAdapter -CimSession $Session b] [Local Windows Host System] --> [Remote Linux Host System]: -------------------------------------------------------------- -> Use the following procedure to connect to a remote Linux host system with Marvell FC adapter family which has both OMI server/CIMOM and OMI provider installed: Step 1 -> Install OMI server on Remote Linux Host System if not installed earlier. Step 2 -> Install latest OMI Provider on Remote Linux Host System. Step 3 -> If you are installing the OMI server 1st time follow the below steps. # /opt/omi/bin/omiserver -s --> To stop OMI Server on remote Linux host machine. # /opt/omi/bin/omiserver --httpport 5985 --httpsport 5986 -d --> To start OMI Server and set the http port. # /opt/omi/bin/omiserver --> To see status of OMI Server on remote Linux machine. Note: -> Add firewall exceptions to open up the omiserver ports for remote Cmdlets to talk to the OMI server/OMI provider. Step 4 -> Install the latest Marvell QLogic FC PowerKit on Local Windows Host System. Step 5 -> Add the Remote Linux Host System to trusted host on Local Windows Host System. Example: # winrm set winrm/config/client @{TrustedHosts="172.28.35.285"} --> Run on local Windows machine [in cmd prompt run as admin] Step 6 -> Create the cim session Local Windows Host System. Syntax: # $Cred = Get-Credential # $Session = New-CimSession -ComputerName -Authentication Basic -Credential $Cred -OperationTimeoutSec 1200000 # Get-CimSession Example: # $Cred = Get-Credential root # $Session = New-CimSession -ComputerName 172.28.35.285 -Authentication Basic -Credential $Cred -OperationTimeoutSec 1200000 # Get-CimSession Step 7 -> Run desired Cmdlet using CimSession on Local Windows Host System.. -> Invoke the desired Cmdlet with "-CimSession $Session" option. Examples: # Get-MRVLFCAdapter -CimSession $Session c] [Local Windows Host System] --> [Remote ESXi Host System]: ------------------------------------------------------------- For ESXi7.0 ------------ -> Use the following procedure to connect to a remote ESXi7.0 host system with Marvell FC adapter family which has both SFCB server/CIMOM and Marvell FC VMware ESXi7.0 provider installed: Step 1 -> Install latest Marvell QLogic FC VMware-ESXi Provider VIB on Remote ESXi Host System. Step 2 -> Reboot the server after installation of Provider VIB. Other Commands: # /etc/init.d/sfcbd-watchdog restart --> To restart SFCB server on remote ESXi machine. # /etc/init.d/sfcbd-watchdog stop --> To stop SFCB server on remote ESXi host machine. # /etc/init.d/sfcbd-watchdog start --> To start SFCB server. Note: -> Add firewall exceptions to open up the SFCB ports for remote cmdlets to talk to the SFCB server/provider. Step 3 -> Install the latest Marvell QLogic FC PowerKit on Local Windows Host System. Step 4 -> Add the Remote ESXi7.0 Host System to trusted host on Local Windows Host System. Example: winrm set winrm/config/client @{TrustedHosts="172.28.35.285"} --> Run on local Windows machine [in cmd propmt run as admin] Step 5 -> Create the CIM Session as follows on Local Windows Host System. # $Cred = Get-Credential # $CIMOpt = New-CimSessionOption -SkipCACheck -SkipCNCheck -SkipRevocationCheck -Usessl # $Session = New-CimSession -ComputerName -Authentication Basic -Credential $Cred -Sessionoption $CIMOpt -port 443 -OperationTimeoutSec 1200000 # Get-CimSession Example: # $Cred = Get-Credential root # $CIMOpt = New-CimSessionOption -SkipCACheck -SkipCNCheck -SkipRevocationCheck -Usessl # $Session = New-CimSession -Authentication Basic -Credential $Cred -ComputerName "172.28.3.190" -Sessionoption $CIMOpt -port 443 -OperationTimeoutSec 1200000 Step 6 -> Run desired Cmdlet using CimSession on Local Windows Host System.. Examples: # Get-MRVLFCAdapter -CimSession $Session -> Invoke the desired Cmdlet with "-CimSession $Session" option. For ESXi8.0 ----------- -> Use the following procedure to connect to a remote ESXi8.0 host system with Marvell FC adapter family. Step 1 -> Install latest Marvell QLogic FC VMware-ESXi 8.0 VIB on Remote ESXi Host System. Step 2 -> Reboot the server after installation of VIB. -> Add firewall exceptions to open up the REST API ports for remote cmdlets for port 39999. Step 3 -> Install the latest Marvell QLogic FC PowerKit on Local Windows Host System. Step 4 -> Create the credential to connect to remote ESXi8.0 # $Cred = Get-Credential Example: # $Cred = Get-Credential root Step 5 -> Run desired Cmdlet using ComputerName & Credential arguments on Local Windows Host System. Examples: # Get-MRVLFCAdapter -ComputerName 10.30.45.200 -Credential $cred ===================================== 8. Available Cmdlets and Description: ===================================== i) The following table consists of list of available Cmdlets. ii) User can get the usage/Help of each Cmdlet as follows. # Get-Help [-Examples | -Detailed | -Full ] Example: # Get-Help Get-MRVLFCAdapter # Get-Help Get-MRVLFCAdapter -Examples # Get-Help Get-MRVLFCAdapter -Full # Get-Help Get-MRVLFCAdapter -Detailed iii)The user can run the following command on PowerShell Prompt to see list of all available cmdlets after PowerKit installation. # Get-Module -ListAvailable | Where-Object {$_.Name.StartsWith('QLGCFC_') } | select name,exportedcommands | Format-Table -Wrap iv)Please check the Powerkit User guide document for more information. #----------------------------------------------------------------- # S.No # Cmdlet Name #----------------------------------------------------------------- a]. Local and Remote Host Cmdlets: ------------------------------------------------------------- 1. Get-MRVLFCManagedLocalHost ------------------------------------------------------------- b]. Adapter Level Cmdlets( Flash Update and Adapter Configs): ------------------------------------------------------------- 2. Get-MRVLFCAdapter 3. Update-MRVLFCFlashFromFile 4. Get-MRVLFCAdapterFlashInformation 5. Save-MRVLFCAdapterConfigToFile 6. Set-MRVLFCAdapterConfigFromFile 7. Save-MRVLFCRISCFirmwareDumpToFile 8. Save-MRVLFCMPIFirmwareDumpToFile 9. Get-MRVLFCAdapterPersonalityType 10. Update-MRVLFCAdapterPersonalityType ------------------------------------------------------------- c]. Port Level Cmdlets: ------------------------------------------------------------- 11. Get-MRVLFCPort 12. Get-MRVLFCPortBeaconStatus 13. Update-MRVLFCPortBeaconStatus 14. Reset-MRVLFCDefaultNVRAM 15. Get-MRVLFCFECMode 16. Set-MRVLFCFECMode 17. Reset-MRVLFCFECCounters 18. Get-MRVLFCFECStats 19. Get-MRVLFCPortStats 20. Get-MRVLFCPortBBCRCreditRecoveryStatus 21. Enable-MRVLFCPortBBCRCreditRecovery 22. Disable-MRVLFCPortBBCRCreditRecovery 23. Get-MRVLFCPortVPDData 24. Save-MRVLFCPortNVRAMToFile 25. Set-MRVLFCPortNVRAMFromFile ------------------------------------------------------------- d]. PortTarget Level Cmdlet: ------------------------------------------------------------- 26. Get-MRVLFCPortTarget 27. Get-MRVLFCTargetLinkSpeed 28. Set-MRVLFCTargetLinkSpeed ------------------------------------------------------------- e]. PortTargetLUN Level Cmdlet: ------------------------------------------------------------- 29. Get-MRVLFCPortTargetLUN ------------------------------------------------------------- f]. Boot Config Cmdlets: ------------------------------------------------------------- 30. Get-MRVLFCBootConfig 31. Save-MRVLFCBootConfigToXMLFile 32. Set-MRVLFCBootConfigFromXMLFile ------------------------------------------------------------- g]. Diagnostic Test Cmdlets: ------------------------------------------------------------- 33. Start-MRVLFCPortCTCommandDiagnosticTest 34. Reset-MRVLFCPortCTCommandDiagnosticTest 35. Start-MRVLFCPortEchoDiagnosticTest 36. Reset-MRVLFCPortEchoDiagnosticTest 37. Start-MRVLFCPortPingDiagnosticTest 38. Reset-MRVLFCPortPingDiagnosticTest 39. Start-MRVLFCPortRDPDiagnosticTest 40. Start-MRVLFCPortLinkStatusDiagnosticTest 41. Reset-MRVLFCPortLinkStatusDiagnosticTest 42. Start-MRVLFCPortLoopbackDiagnosticTest 43. Reset-MRVLFCPortLoopbackDiagnosticTest 44. Start-MRVLFCPortReadWriteBufferDiagnosticTest 45. Reset-MRVLFCPortReadWriteBufferDiagnosticTest 46. Start-MRVLFCDPortDiagTest 47. Enable-MRVLFCDPort 48. Disable-MRVLFCDPort 49. Get-MRVLFCAdapterNVRAMVarEnableDPortValue 50. Get-MRVLFCPortDMIData 51. Get-MRVLFCPortFCETrace ------------------------------------------------------------- g]. Port Parameters Cmdlets: ------------------------------------------------------------- 52. Get-MRVLFCPortParameters 53. Save-MRVLFCHBAParamsToXMLFile 54. Set-MRVLFCHBAParamsFromXMLFile ------------------------------------------------------------- h]. Virtual Port Cmdlets: ------------------------------------------------------------- 55. New-MRVLFCVPort 56. Remove-MRVLFCVPort 57. Get-MRVLFCAvailableVPorts 58. Get-MRVLFCVPort ------------------------------------------------------------- i]. Syncing Host CmdLets: ------------------------------------------------------------- 59. Sync-MRVLFCHost ------------------------------------------------------------- j]. Universal SAN Congestion Mitigation (USCM) CmdLets: ------------------------------------------------------- 60. Get-MRVLFCPortSCMCheck 61. Get-MRVLFCTargetSCMCheck 62. Get-MRVLFCPortSCMStats 63. Get-MRVLFCTargetSCMStats 64. Reset-MRVLFCPortSCMStatistics 65. Get-MRVLFCPortSCMProfile 66. Set-MRVLFCPortSCMActivation 67. Set-MRVLFCPortSCMProfileDriverSettings ------------------------------------------------------------- k]. UEFI Boot Config CmdLets: ------------------------------------------------------------- 68. Get-MRVLFCUEFIBootConfig 69. Save-MRVLFCUEFIBootConfigToXMLFile 70. Set-MRVLFCUEFIBootConfigFromXMLFile ------------------------------------------------------------- l]. NVMe Boot Config CmdLets: ------------------------------------------------------------- 71. Get-MRVLFCNVMeBootConfig 72. Save-MRVLFCNVMeBootConfigToXMLFile 73. Set-MRVLFCNVMeBootConfigFromXMLFile ------------------------------------------------------------- m]. Port Driver/FW stats ------------------------------------------------------------- 74. Get-MRVLFCPortDriverStats 75. Get-MRVLFCPortFWStats 76. Reset-MRVLFCPortFWStats ------------------------------------------------------------- n]. Target Stats ------------------------------------------------------------- 77. Get-MRVLFCTargetStats ------------------------------------------------------------- o]. Alias CmdLet: ------------------------------------------------------- 78. Get-MRVLFCAdapterAlias 79. Update-MRVLFCAdapterAlias 80. Get-MRVLFCPortAlias 81. Update-MRVLFCPortAlias 82. Get-MRVLFCVPortAlias 83. Update-MRVLFCVPortAlias ------------------------------------------------------------- ================ 9. Known Issues: ================ * CT FC Trace Route, CT Ping and FC Ping diagnostics commands failure is seen with NVMe targets and FCP targets without LUN 0. * CT FC Trace Route command failure is seen when garbage value of paths is provided by switch. ======================== 10. Open Source License ======================== 10.1 SNIA HBA API Version: 2.0 http://hbaapi.sourceforge.net/ License: Storage Networking Industry Association Public License http://hbaapi.sourceforge.net/faq.htm The SNIA Common HBA API is an industry standard "C" language Application Programming Interface for management of Fibre Channel Host Bus Adapters and discovery of SAN resources. Developed through the Storage Networking Industry Association (SNIA), the HBA API has been overwhelmingly adopted by Storage Area Network vendors to help manage, monitor, and deploy storage area networks. It defines a scope within which application software can be written without attention to vendor-specific infrastructure behavior. 10.2 libXML Version: 2.9.7 Libxml2 is the XML C parser and toolkit developed for the Gnome project (but usable outside of the Gnome platform), it is free software available under the MIT License. http://xmlsoft.org/ License: MIT Libxml2 is the XML C parser and toolkit developed for the Gnome project (but usable outside of the Gnome platform), it is free software available under the MIT License. XML itself is a metalanguage to design markup languages, i.e. text language where semantic and structure are added to the content using extra "markup" information enclosed between angle brackets. HTML is the most well-known markup language. Though the library is written in C a variety of language bindings make it available in other environments. 10.3 libsysfs The sysfs library is licensed under the GNU Lesser Public License (LGPL) Version 2.1.1-10, August 2006. The full text of the LGPL is located at: sysfsutils/lib/LGPL This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 10.4 Pistache Pistache is a modern and elegant HTTP and REST framework for C++. It is entirely written in pure-C++17* and provides a clear and pleasant API. https://github.com/pistacheio/pistache ------------------------ Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: You must give any other recipients of the Work or Derivative Works a copy of this License; and You must cause any modified files to carry prominent notices stating that You changed the files; and You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS ------------------------ ======================== 11. Contacting Support: ======================== Please feel free to contact Marvell QLogic Support at https://www.marvell.com/support.html for further assistance. For more information, please refer to "Marvell QLogic PowerKit 2500, 2600, 2700 Series Fibre Channel Adapters User’s Guide" UserGuide document available on www.marvell.com. Some features in the doc on marvell.com may or may not apply to the OEM SW release, please refer to the QCC CLI UG for the set of supported features for the respective OEM SW release. (c) Copyright 2019-2023. All rights reserved worldwide. Marvell, the Marvell logo is registered trademarks of Marvell Semiconductor Inc. All other brand and product names are trademarks or registered trademarks of their respective owners.