--- /dev/null
+' InstallShield-12 CustomActions used in the WinOF (Windows OpenFabrics) Release\r
+' File is based on the file contributed by Mellanox Technologies.\r
+\r
+Function Architecture()\r
+ Dim Arch,item\r
+ For Each item In GetObject("winmgmts:root/cimv2").ExecQuery("SELECT Architecture FROM Win32_Processor")\r
+ Arch=item.Architecture\r
+ Exit For\r
+ Next\r
+ \r
+ If (Arch=0) Then\r
+ Arch="x86"\r
+ Elseif (Arch=1) Then\r
+ Arch="MIPS"\r
+ Elseif (Arch=2) Then\r
+ Arch="Alpha"\r
+ Elseif (Arch=3) Then\r
+ Arch="PowerPC"\r
+ Elseif (Arch=6) Then\r
+ Arch="ia64"\r
+ Elseif (Arch=9) Then\r
+ 'Arch="x64"\r
+ Arch="amd64"\r
+ Else\r
+ WScript.echo "Arch ID=" & Arch\r
+ Arch="CustomAction.vbs: Unable to determine Architecture"\r
+ End If\r
+ Architecture=Arch\r
+\r
+End Function\r
+\r
+\r
+' Since a CustomAction (CA) that runs before SetupFinalize as deffered actions can see the\r
+' properties only through 'customactiondata'\r
+\r
+Function WinOF_setup()\r
+ ' Driver Install Properties: 0-INSTALLDIR;1-SystemFolder;2-System64Folder;3-WindowsFolder\r
+ Session.Property("DriverInstall") = Session.Property("INSTALLDIR") & ";" & Session.Property("SystemFolder") & ";" & Session.Property("System64Folder") & ";" & Session.Property("WindowsFolder") \r
+ \r
+ ' Extract Files Properties: 0-Installdir\r
+ ' Session.Property("ExtractFiles") = Session.Property("INSTALLDIR")\r
+ \r
+ WinOF_setup = 0\r
+End Function\r
+\r
+\r
+''''''''''' Remove Driver Files ''''''''''''\r
+\r
+'Waiting to delete a file until it's free\r
+\r
+Function FileDeleteUntilFree(filename)\r
+ Set objFSO=CreateObject("Scripting.FileSystemObject") \r
+ Set WshShell = CreateObject("WScript.Shell")\r
+ dim too_much \r
+ too_much = 0\r
+ Do While objFSO.FileExists(filename)\r
+ On Error Resume Next \r
+ objFSO.DeleteFile(filename)\r
+ WScript.Sleep 100 ' milliseconds\r
+ too_much = too_much + 1 'We do not wait to much to delete the file, then we don't delete it.\r
+ if too_much > 50 then\r
+ msgbox "delete Timeout(5) " & filename\r
+ exit Do\r
+ End If\r
+ err.clear \r
+ Loop \r
+End Function\r
+\r
+Function FileDelete(filename)\r
+ Dim fso\r
+ Set fso = CreateObject("Scripting.FileSystemObject")\r
+ Err.clear\r
+ If fso.FileExists(filename) Then\r
+ fso.DeleteFile(filename), True\r
+ If Err Then\r
+ msgbox "Could not delete: " & filename\r
+ ' Display error number and description if applicable\r
+ ShowError\r
+ Err.clear\r
+ End If \r
+ End If\r
+End Function\r
+\r
+' Move and then Delete a file. File is moved into %TEMP%\basename(filename)\r
+' then deleted; pesky files in 'system32\drivers'.\r
+\r
+Function FileMDelete(filename)\r
+ Dim fso\r
+ Set fso = CreateObject("Scripting.FileSystemObject")\r
+ Err.clear\r
+ If fso.FileExists(filename) Then\r
+ Set WshShell = CreateObject("WScript.Shell")\r
+ Return = WshShell.Run ("cmd.exe /c del /Q /F " & filename, 0, true)\r
+ If Err Then\r
+ msgbox "Could not delete: " & filename\r
+ ' Display error number and description if applicable\r
+ ShowError\r
+ Err.clear\r
+ End If \r
+ End If\r
+End Function\r
+\r
+Function FileMove(filename,destination)\r
+ Dim fso\r
+ Set fso = CreateObject("Scripting.FileSystemObject")\r
+ If fso.FileExists(filename) Then\r
+ On Error Resume Next \r
+ fso.MoveFile filename,destination\r
+ 'if err then msgbox "Could not move: " & filename\r
+ err.clear \r
+ End If\r
+ ' Display error number and description if applicable\r
+ If Err Then ShowError\r
+End Function\r
+\r
+\r
+Function RemoveInstalledFiles()\r
+ Dim Win\r
+ Dim sDRIVERS\r
+ Dim sSystem64Folder \r
+ Dim sInstalldir\r
+ Dim sSystemFolder\r
+ \r
+ ' Function can be called from the Driver{Install/Uninstall} rtns.\r
+ ' (properties are different).\r
+ dim CheckMode\r
+ CheckMode = Session.Property("CustomActionData")\r
+ If not CheckMode = "" Then\r
+ Dim PropArray\r
+ PropArray = Split(Session.Property("CustomActionData"), ";") \r
+ Win = PropArray(3)\r
+ sSystem64Folder = PropArray(2)\r
+ sSystemFolder = PropArray(1)\r
+ sInstalldir = PropArray(0)\r
+ Else\r
+ Win = Session.Property("WINDOWS")\r
+ sSystem64Folder = Session.Property("System64Folder") \r
+ sInstalldir = Session.Property("INSTALLDIR") \r
+ sSystemFolder = Session.Property("SystemFolder") \r
+ End if\r
+ \r
+ MTARCH = Architecture \r
+ sDRIVERS = sSystem64Folder \r
+ If (MTARCH="x86") Then\r
+ sDRIVERS = sSystemFolder ' holds Session.Property("SystemFolder")\r
+ End If\r
+ sDRIVERS = sDRIVERS & "drivers\"\r
+\r
+' msgbox "RM sDrivers " & sDRIVERS & " sSystemFolder " & sSystemFolder & " sSystem64Folder " & sSystem64Folder \r
+' msgbox " sDrivers " & sDRIVERS\r
+' msgbox " sSystemFolder " & sSystemFolder\r
+' msgbox " sSystem64Folder " & sSystem64Folder\r
+ \r
+ FileMDelete(sDRIVERS & "ibbus.sys")\r
+ FileMDelete(sDRIVERS & "mthca.sys")\r
+ FileMDelete(sDRIVERS & "ipoib.sys")\r
+ FileMDelete(sDRIVERS & "ibsrp.sys")\r
+ FileMDelete(sDRIVERS & "vnic.sys")\r
+ \r
+ If (MTARCH="amd64") Then\r
+ ' System64Folder = System32, SystemFolder = Syswow64\r
+ ' check/remove from .dll cache prior to removal from system32\\r
+ Dim dllCache\r
+ dllCache = sSystem64Folder & "dllcache\"\r
+ FileDelete(dllCache & "ibal.dll")\r
+ FileDelete(dllCache & "ibald.dll")\r
+ FileDelete(dllCache & "complib.dll")\r
+ FileDelete(dllCache & "complibd.dll")\r
+ FileDelete(dllCache & "mthcau.dll")\r
+ FileDelete(dllCache & "mthcaud.dll")\r
+ FileDelete(dllCache & "IbInstaller.dll")\r
+ FileDelete(dllCache & "ibwsd.dll")\r
+ FileDelete(dllCache & "ibsrp.dll")\r
+ FileDelete(dllCache & "ibsrpd.dll")\r
+ \r
+ FileDelete(sSystem64Folder & "ibal.dll")\r
+ FileDelete(sSystem64Folder & "ibald.dll")\r
+ FileDelete(sSystem64Folder & "complib.dll")\r
+ FileDelete(sSystem64Folder & "complibd.dll")\r
+ FileDelete(sSystem64Folder & "mthcau.dll")\r
+ FileDelete(sSystem64Folder & "mthcaud.dll")\r
+ FileDelete(sSystem64Folder & "IbInstaller.dll")\r
+ FileDelete(sSystem64Folder & "ibwsd.dll")\r
+ FileDelete(sSystem64Folder & "ibsrp.dll")\r
+ FileDelete(sSystem64Folder & "ibsrpd.dll")\r
+ End If \r
+ \r
+ ' MTARCH=x86 SystemFolder = System32\r
+ ' MTARCH=amd64 SystemFolder = Syswow64\r
+ FileDelete(sSystemFolder & "ibal.dll")\r
+ FileDelete(sSystemFolder & "ibald.dll")\r
+ FileDelete(sSystemFolder & "complib.dll")\r
+ FileDelete(sSystemFolder & "complibd.dll")\r
+ FileDelete(sSystemFolder & "mthcau.dll")\r
+ FileDelete(sSystemFolder & "mthcaud.dll")\r
+ FileDelete(sSystemFolder & "ibsrp.dll")\r
+ FileDelete(sSystemFolder & "ibsrpd.dll")\r
+ FileDelete(sSystemFolder & "IbInstaller.dll")\r
+ FileDelete(sSystemFolder & "ibwsd.dll")\r
+ \r
+ FileDelete(Win & "lastgood\system32\ibwsd.dll")\r
+ FileDelete(Win & "lastgood\sys64wow\ibwsd.dll")\r
+ \r
+ ' delete opensm file\r
+ FileDelete(sInstalldir & "etc\guid2lid")\r
+ \r
+ ' Delete oem*.inf and oem*.pnf files\r
+ dim InfFiles, PnfFiles, IFILES, PFILES\r
+ Set WshShell = CreateObject("WScript.Shell")\r
+ Set infFilesExec = WshShell.Exec ("cmd.exe /c for /f %i in ('findstr /m Mellanox %WINDIR%\inf\oem*.*') do @echo %i")\r
+ ' Display error number and description if applicable\r
+ If Err Then ShowError\r
+ \r
+ InfFiles = infFilesExec.StdOut.ReadAll\r
+ PnfFiles = Replace(InfFiles,".inf",".pnf")\r
+ \r
+ IFILES = Split(InfFiles,vbCrLf)\r
+ PFILES = Split(PnfFiles,vbCrLf)\r
+ \r
+ For Each file in IFILES\r
+ If (file <> "") Then\r
+ FileDelete(file)\r
+ End IF\r
+ Next\r
+ \r
+ For Each file in PFILES\r
+ If (file <> "") Then\r
+ FileDelete(file)\r
+ End IF\r
+ Next\r
+ \r
+ ' cleanup DAPL/DAT\r
+ Dim tmp\r
+ tmp = Win & "dat.dll"\r
+ FileMDelete(tmp)\r
+ tmp = Win & "dapl.dll"\r
+ FileMDelete(tmp)\r
+ \r
+End Function\r
+\r
+''''''''''' Delete registry key ''''''''''''\r
+\r
+Function DeleteRegKey(KeyPath)\r
+ Const HKEY_LOCAL_MACHINE = &H80000002\r
+ dim strComputer\r
+ strComputer = "."\r
+ Set objReg=GetObject("winmgmts:" & _\r
+ "{impersonationLevel=impersonate}!\\" & _\r
+ strComputer & "\root\default:StdRegProv")\r
+\r
+ ' Display error number and description if applicable\r
+ ' If Err Then ShowError\r
+ Return = objReg.DeleteKey(HKEY_LOCAL_MACHINE, KeyPath)\r
+ \r
+End Function\r
+\r
+\r
+''''''''''' Delete registry value ''''''''''''\r
+\r
+Function DeleteRegValue(strKeyPath, strValueName)\r
+ Const HKEY_LOCAL_MACHINE = &H80000002\r
+ \r
+ dim strComputer\r
+ strComputer = "."\r
+ \r
+ Set objReg=GetObject("winmgmts:" & _\r
+ "{impersonationLevel=impersonate}!\\" & _ \r
+ strComputer & "\root\default:StdRegProv")\r
+\r
+ \r
+ Return = objReg.DeleteValue(HKEY_LOCAL_MACHINE, strKeyPath, strValueName)\r
+ ' Display error number and description if applicable\r
+ If Err Then ShowError\r
+' If (Return = 0) And (Err.Number = 0) Then\r
+' WScript.Echo value & "Registry value HKEY_LOCAL_MACHINE," & _\r
+' strKeyPath & "," & strValueName & "," & dwValue & " deleted"\r
+' Else\r
+' WScript.Echo "Registry value not deleted" & VBNewLine & _\r
+' "Error = " & Err.Number\r
+' End If\r
+\r
+End Function\r
+\r
+\r
+\r
+\r
+' not used\r
+''''''''''' Check installation status ''''''''''''\r
+\r
+Function install_verify()\r
+ Dim Status\r
+ Dim sInstalldir\r
+ sInstalldir = Session.Property("INSTALLDIR")\r
+ Set WshShell = CreateObject("WScript.Shell")\r
+ Set vstat = WshShell.Exec(sInstalldir & "\bin\vstat.exe")\r
+ install_verify = vstat.ExitCode\r
+\r
+End Function\r
+\r
+'-------------------------------------------------------------\r
+\r
+' add registry key\r
+Function CreateRegKey(KeyPath)\r
+ Const HKEY_LOCAL_MACHINE = &H80000002\r
+ dim strComputer\r
+ strComputer = "."\r
+ Set objReg=GetObject("winmgmts:" & _\r
+ "{impersonationLevel=impersonate}!\\" & _\r
+ strComputer & "\root\default:StdRegProv")\r
+\r
+ ' Display error number and description if applicable\r
+ If Err Then ShowError\r
+ Return = objReg.CreateKey(HKEY_LOCAL_MACHINE, KeyPath)\r
+ \r
+End Function\r
+\r
+\r
+\r
+'--------------------------------------------------------\r
+\r
+\r
+' Function to add registry DWORD val.\r
+Function AddRegDWORDValue(strKeyPath, strValueName, dwValue)\r
+const HKEY_LOCAL_MACHINE = &H80000002\r
+strComputer = "."\r
+ \r
+Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" &_ \r
+strComputer & "\root\default:StdRegProv")\r
+ \r
+If Err Then ShowError\r
+oReg.SetDWORDValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,dwValue\r
+If Err Then ShowError\r
+\r
+End Function\r
+\r
+'-------------------------------------------------\r
+\r
+' Function to add registry Expanded string val.\r
+Function AddRegExpandValue(strKeyPath, strValueName, dwValue)\r
+const HKEY_LOCAL_MACHINE = &H80000002\r
+strComputer = "."\r
+ \r
+Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" &_ \r
+strComputer & "\root\default:StdRegProv")\r
+ \r
+If Err Then ShowError\r
+oReg.SetExpandedStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,dwValue\r
+If Err Then ShowError\r
+\r
+End Function\r
+\r
+'------------------------------------------------------------------------\r
+\r
+\r
+' Function to add registry string val.\r
+Function AddRegStringValue(strKeyPath, strValueName, dwValue)\r
+const HKEY_LOCAL_MACHINE = &H80000002\r
+strComputer = "."\r
+ \r
+Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" &_ \r
+strComputer & "\root\default:StdRegProv")\r
+ \r
+If Err Then ShowError\r
+oReg.SetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,dwValue\r
+If Err Then ShowError\r
+\r
+End Function\r
+\r
+'------------------------------------------------------------------------\r
+\r
+\r
+\r
+\r
+''''''''''' Driver Install ''''''''''''\r
+\r
+Sub DriverInstall()\r
+ MTARCH = Architecture\r
+ \r
+ ' Get the value of INSTALLDIR\r
+ Dim PropArray\r
+ PropArray = Split(Session.Property("CustomActionData"), ";") 'in defered action this is the way to pass arguments.\r
+ Dim sInstalldir\r
+ sInstalldir = PropArray(0)\r
+ \r
+ RemoveInstalledFiles\r
+ \r
+ Set WshShell = CreateObject("WScript.Shell")\r
+ \r
+ ' rescan system buses\r
+ Return = WshShell.Run ("cmd.exe /c cd " & sInstalldir & "mthca & devman.exe rescan", 0, true)\r
+ ' Display error number and description if applicable\r
+ If Err Then ShowError\r
+ \r
+ ' Install HCA Driver\r
+ Return = WshShell.Run ("cmd.exe /c cd " & sInstalldir & "mthca & devman.exe update mthca.inf PCI\VEN_15b3", 0, true)\r
+ ' Display error number and description if applicable\r
+ If Err Then ShowError\r
+ \r
+ Dim fso\r
+ Set fso = CreateObject("Scripting.FileSystemObject")\r
+\r
+ ' Check/install IPoIB driver\r
+ ' Only if InstallShield component 'net' is NOT tagged as containing a Device Driver \r
+ ' If fso.FileExists(sInstalldir & "net\netipoib.inf") Then\r
+ ' Return = WshShell.Run ("cmd.exe /c cd " & sInstalldir & "net & ..\mthca\devman.exe update netipoib.inf IBA\IPoIB", 0, true)\r
+ ' End If\r
+ \r
+ ' Copy 32 bit dlls on amd64 architecture\r
+ If (MTARCH="amd64") Then\r
+ Dim SYSWOW\r
+ SYSWOW = PropArray(1) \r
+ ' msgbox "driverInstall syswow " & SYSWOW\r
+ \r
+ if fso.FileExists(sInstalldir & "mthca\cl32.dll") then\r
+ fso.CopyFile sInstalldir & "mthca\cl32.dll", SYSWOW & "complib.dll"\r
+ end if\r
+ if fso.FileExists(sInstalldir & "mthca\cl32d.dll") then\r
+ fso.CopyFile sInstalldir & "mthca\cl32d.dll", SYSWOW & "complibd.dll"\r
+ end if\r
+ if fso.FileExists(sInstalldir & "mthca\ibal32.dll") then\r
+ fso.CopyFile sInstalldir & "mthca\ibal32.dll", SYSWOW & "ibal.dll"\r
+ end if\r
+ if fso.FileExists(sInstalldir & "mthca\ibal32d.dll") then\r
+ fso.CopyFile sInstalldir & "mthca\ibal32d.dll", SYSWOW & "ibald.dll"\r
+ end if\r
+ if fso.FileExists(sInstalldir & "mthca\mtuvpd32.dll") then\r
+ fso.CopyFile sInstalldir & "mthca\mtuvpd32.dll", SYSWOW & "mthcau.dll"\r
+ end if\r
+ if fso.FileExists(sInstalldir & "mthca\mtuvpd32d.dll") then\r
+ fso.CopyFile sInstalldir & "mthca\mtuvpd32d.dll", SYSWOW & "mthcaud.dll"\r
+ end if\r
+ if fso.FileExists(sInstalldir & "net\ibwsd32.dll") then\r
+ fso.CopyFile sInstalldir & "net\ibwsd32.dll", SYSWOW & "ibwsd.dll"\r
+ end if\r
+ End If \r
+ \r
+ err.clear \r
+End Sub\r
+\r
+\r
+'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''\r
+\r
+' Find IBA devices using Devcon\r
+\r
+Function FindDevices() \r
+ Dim sInstalldir\r
+ MTARCH = Architecture\r
+ sInstalldir = Session.Property("INSTALLDIR")\r
+ Set WshShell = CreateObject("WScript.Shell")\r
+\r
+ Set ibaDevicesExec = WshShell.Exec ("cmd.exe /c cd " & sInstalldir & "mthca & devman.exe FindAll * | FIND ""IBA""")\r
+ ibaDevices = split(ibaDevicesExec.StdOut.ReadAll, vbCrLF)\r
+\r
+ ' Getting the array Size\r
+ dim arrSize\r
+ arrSize = 0\r
+ for each deviceCan in ibaDevices\r
+ if (Instr(deviceCan,"IBA\") = 1) Then\r
+ arrSize = arrSize + 1\r
+ End if\r
+ next\r
+ 'Creating array of IBA\ devices\r
+ dim ibaDev()\r
+ Redim ibaDev(arrSize - 1)\r
+ index = 0\r
+ for each deviceCan in ibaDevices\r
+ if (Instr(deviceCan,"IBA\") = 1) Then\r
+ ibaDev(index) = deviceCan\r
+ index = index + 1\r
+ End if\r
+ next\r
+\r
+ ' Return array of devices\r
+ FindDevices=ibaDev \r
+End Function\r
+\r
+\r
+' returns an array of all Local Area Connections which\r
+' were created for IPoIB.\r
+\r
+Function Find_IPOIB_LAC()\r
+ Set WshShell = CreateObject("WScript.Shell")\r
+\r
+ Set ibaDevicesExec = WshShell.Exec ("cmd.exe /c reg query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network /f ""IBA\IPOIB"" /s /d | FIND ""Connection""")\r
+ ibaDevices = split(ibaDevicesExec.StdOut.ReadAll, vbCrLF)\r
+\r
+ ' Getting the array Size\r
+ dim arrSize\r
+ arrSize = 0\r
+ for each deviceCan in ibaDevices\r
+ arrSize = arrSize + 1\r
+ next\r
+ 'Creating array of Local Area Connections based on IPoIB\r
+ dim ibaDev()\r
+ Redim ibaDev(arrSize - 1)\r
+ index = 0\r
+ for each deviceCan in ibaDevices\r
+ ibaDev(index) = deviceCan\r
+ index = index + 1\r
+ next\r
+ Find_IPOIB_LAC=ibaDev\r
+End Function\r
+\r
+\r
+''''''''''' Driver Uninstall ''''''''''''\r
+\r
+Sub DriverUninstall() \r
+ on error resume next\r
+ MTARCH = Architecture\r
+ \r
+ Dim sInstalldir\r
+ sInstalldir = Session.Property("INSTALLDIR")\r
+ Set WshShell = CreateObject("WScript.Shell")\r
+ Dim fso\r
+ Set fso = CreateObject("Scripting.FileSystemObject")\r
+\r
+ ' if WSD enabled, then shut down the service\r
+ If fso.FileExists(sInstalldir & "installsp.exe") Then\r
+ Return = WshShell.Run ("cmd.exe /c cd " & sInstalldir & " & installsp.exe -r", 0, true)\r
+ End If\r
+ ' Display error number and description if applicable\r
+ If Err Then ShowError\r
+ \r
+ ' if opensm.service.txt exists - stop the service.\r
+ ' Display error number and description if applicable\r
+ If fso.FileExists(sInstalldir & "opensm.service.txt") Then\r
+ Return = WshShell.Run ("cmd.exe /c sc.exe stop opensm", 0, true)\r
+ ' delete opensm service from regisry\r
+ Return = WshShell.Run ("cmd.exe /c sc.exe delete opensm", 0, true)\r
+ If Err Then ShowError\r
+ fso.DeleteFile(sInstalldir & "opensm.service.txt"),true\r
+ End If\r
+ \r
+ dim devices \r
+ ' create a list of IBA\ devices via 'devcon findall'\r
+ devices = FindDevices\r
+ \r
+ ' Remove IPoIB Adapter instances\r
+ for each deviceCan in devices\r
+ if (Instr(deviceCan,"IBA\IPOIB") = 1) Then\r
+ device = split(deviceCan, " ")\r
+ ' Removing\r
+ Return = WshShell.Run ("cmd.exe /c cd " & sInstalldir & "mthca & devman.exe remove @" & device(0), 0, true)\r
+ End if\r
+ Next\r
+\r
+ ' Removing SRP - Searching for I/O UNIT and then removing it.\r
+ for each deviceCan in devices\r
+ if (Instr(deviceCan,"InfiniBand I/O Unit")) Then\r
+ device = split(deviceCan, " ")\r
+ ' Removing I/O Unit of the SRP\r
+ Return = WshShell.Run ("cmd.exe /c cd " & sInstalldir & " & mthca\devman.exe remove @" & device(0), 0, true)\r
+ End if\r
+ Next\r
+ \r
+ ' Removing SRP - Searching for SRP devices.\r
+ for each deviceCan in devices\r
+ if (Instr(deviceCan,"SRP")) Then\r
+ device = split(deviceCan, " ")\r
+ ' Removing SRP\r
+ Return = WshShell.Run ("cmd.exe /c cd " & sInstalldir & " & mthca\devman.exe remove @" & device(0), 0, true)\r
+ End if\r
+ Next\r
+\r
+ ' Remove BUS/Fabric driver\r
+ Return = WshShell.Run ("cmd.exe /c cd " & sInstalldir & "mthca & devman.exe remove {94f41ced-78eb-407c-b5df-958040af0fd8}", 0, true)\r
+ ' Display error number and description if applicable\r
+ If Err Then ShowError\r
+\r
+ ' Remove HCAs\r
+ Return = WshShell.Run ("cmd.exe /c cd " & sInstalldir & "mthca & devman.exe remove PCI\VEN_15b3", 0, true)\r
+ ' Display error number and description if applicable\r
+ If Err Then ShowError\r
+\r
+ ' Remove Service entries from the registry\r
+ \r
+ DeleteRegKey "System\CurrentControlSet\Services\ibbus"\r
+ DeleteRegKey "System\CurrentControlSet\Services\mthca"\r
+ DeleteRegKey "System\CurrentControlSet\Services\ipoib"\r
+ \r
+ 'DeleteRegKey "System\CurrentControlSet\Services\EventLog\Application\OpenSm"\r
+ DeleteRegValue "SYSTEM\CurrentControlSet\Control\CoDeviceInstallers" , "{58517E00-D3CF-40c9-A679-CEE5752F4491}"\r
+ DeleteRegKey "SYSTEM\CurrentControlSet\Control\Class\{58517E00-D3CF-40C9-A679-CEE5752F4491}" \r
+ \r
+ ' in livefish mode the delete didn't suceed. So we delete it in another way\r
+ Return = WshShell.Run ("reg.exe delete HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{58517E00-D3CF-40C9-A679-CEE5752F4491} /f", 0, true)\r
+ If Err Then ShowError\r
+ \r
+ Return = WshShell.Run ("reg.exe delete HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ibbus /f", 0, true)\r
+ Return = WshShell.Run ("reg.exe delete HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\mthca /f", 0, true)\r
+ Return = WshShell.Run ("reg.exe delete HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ipoib /f", 0, true)\r
+\r
+ ' remove all Local Area Connection which were constructed for IPoIB\r
+ ' create a list of IBA\IPOIB Local Area Connections via 'reg query'\r
+ Dim IPOIB_LAC\r
+ IPOIB_LAC = Find_IPOIB_LAC\r
+\r
+ For each LAC in IPOIB_LAC\r
+ If LAC <> "" Then\r
+ Return = WshShell.Run ("reg.exe delete " & LAC & " /f", 0, true)\r
+ If Err Then ShowErr\r
+ End if\r
+ Next\r
+ \r
+ ' remove driver installed files\r
+ RemoveInstalledFiles\r
+ \r
+ Session.Property("REBOOT") = "FORCE"\r
+\r
+ err.clear \r
+End Sub\r
+\r
+\r
+Sub WSDEnable()\r
+ Dim sInstalldir\r
+ sInstalldir = Session.Property("INSTALLDIR")\r
+ Set WshShell = CreateObject("WScript.Shell")\r
+ \r
+ Dim fso\r
+ Set fso = CreateObject("Scripting.FileSystemObject")\r
+ If fso.FileExists(sInstalldir & "installsp.exe") Then\r
+ ' install the WinSockdirect service\r
+ Return = WshShell.Run ("cmd.exe /c cd " & sInstalldir & " & installsp.exe -i", 0, true)\r
+ End If\r
+ ' Display error number and description if applicable\r
+ If Err Then ShowError\r
+\r
+End Sub\r
+\r
+\r
+Sub ShowError()\r
+ strMsg = vbCrLf & "Error # " & Err.Number & vbCrLf & _\r
+ Err.Description & vbCrLf & vbCrLf\r
+ 'Syntax\r
+ WScript.Echo strMsg\r
+End Sub\r
+\r
+\r
+\r
+' Function will add registry key for the opensm service\r
+\r
+Sub OpensmServiceEvent()\r
+ Dim sInstalldir\r
+ Dim opensmPath\r
+ Dim opensmService\r
+ Dim WshShell\r
+ sInstalldir = Session.Property("INSTALLDIR")\r
+ opensmService = sInstalldir & "opensm.service.txt"\r
+ opensmPath = sInstalldir & "opensm.exe"\r
+ Dim fso\r
+ Set fso = CreateObject("Scripting.FileSystemObject")\r
+ Set WshShell = CreateObject("WScript.Shell")\r
+ \r
+ ' if opensm.service.txt exists then the install requestor\r
+ ' has asked that opensm be run as a service.\r
+ \r
+ If Not fso.FileExists(opensmService) Then\r
+ Exit sub\r
+ End if\r
+\r
+ If fso.FileExists(opensmPath) Then\r
+ Dim sc\r
+ sc = "sc.exe create opensm binPath= """ &opensmPath & " -e --service"" start= auto DisplayName= ""InfiniBand Subnet Manager"" "\r
+ Return = WshShell.Run ("cmd.exe /c " & sc, 0, true)\r
+ sc = "sc.exe description opensm ""Configures and manage the InfiniBand Subnet"" "\r
+ Return = WshShell.Run ("cmd.exe /c " & sc, 0, true)\r
+ Return = WshShell.Run ("cmd.exe /c sc.exe start opensm", 0, true)\r
+ End If\r
+ If Err Then ShowError\r
+ err.clear\r
+End Sub\r
+\r
+\r
+' Determine if an existing WinOF or openib-window installation exists.\r
+' If existing, determined by registry entry for service/ibbus,\r
+' then uninstall and reboot.\r
+' Called in immediate mode, condition: INSTALL=1\r
+\r
+Function ChkInstallAndReboot()\r
+ Dim status ' check if ibbus.sys exists, if not the reboot won't happen\r
+ Dim fso\r
+ Set fso = CreateObject("Scripting.FileSystemObject") \r
+ status = 0\r
+ \r
+ Set WshShell = CreateObject("WScript.Shell")\r
+ Return = WshShell.Run ("reg.exe query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ibbus /v ImagePath", 0, true)\r
+ If (Return = 0) And (Err.Number = 0) Then\r
+ Status = Status + 1\r
+ End if\r
+ \r
+ ' if we can't find registry entry, then no need to uninstall/restart.\r
+ ' Proceed with installation\r
+ If status = 0 then\r
+ 'msgbox "No existing InfiniBand installation detected"\r
+ Exit Function\r
+ End if\r
+ \r
+ ' Uninstall the existing WinOF/openib-windows installation and reboot\r
+ ' upon restart, WinOF installation will resume.\r
+\r
+ DriverUninstall\r
+\r
+ ' Rebooting the system\r
+ \r
+ dim res ' return result of restart question\r
+ \r
+ res = msgbox("An existing InfiniBand installation has been detected and will be uninstalled - To complete the WinOF installation you must restart your computer and then restart the WinOF Installation." & vbCrLf,vbYesNo + vbDefaultButton1,"WinOF")\r
+ If res <> 6 Then ' answer = No\r
+ ChkInstallAndReboot = 1\r
+ Exit Function\r
+ End if\r
+ \r
+ ' XXX - not working.\r
+ ' Get product code and putting it in the runonce registry key for\r
+ ' install upon restart\r
+\r
+ dim p_code: p_code = Session.Property("ProductCode")\r
+ dim run_once_cmd\r
+ dim srcp \r
+ ' srcp = WScript.ScriptFullName # returns <null> in this env?\r
+ ' p_code = Session.Property("ProductCode")\r
+ run_once_cmd = "cmd.exe /c " & srcp ' & " /S " \r
+ ' msgbox (" run_once " & run_once_cmd)\r
+\r
+ ' key_name = "Software\Microsoft\Windows\CurrentVersion\RunOnce"\r
+ ' AddRegStringValue key_name,"WinOFinstall",run_once_cmd\r
+ \r
+ ChkInstallAndReboot = 0\r
+\r
+ ' the driveruninstall call sets reboot=force, ForceReboot action\r
+ ' following this one will fire when reboot is set =force.\r
+ \r
+End Function\r
+\r
+\r
+\r
+' deferred action to increment ticks while action is taking place\r
+'\r
+Function AddProgressInfo( )\r
+ Const INSTALLMESSAGE_ACTIONSTART = &H08000000\r
+ Const INSTALLMESSAGE_ACTIONDATA = &H09000000 \r
+ Const INSTALLMESSAGE_PROGRESS = &H0A000000 \r
+\r
+ Set rec = Installer.CreateRecord(3)\r
+ \r
+ rec.StringData(1) = "callAddProgressInfo"\r
+ rec.StringData(2) = "Incrementing the progress bar..."\r
+ rec.StringData(3) = "Incrementing tick [1] of [2]"\r
+ \r
+ 'Message INSTALLMESSAGE_ACTIONSTART, rec\r
+ \r
+ rec.IntegerData(1) = 1\r
+ rec.IntegerData(2) = 1\r
+ rec.IntegerData(3) = 0\r
+ \r
+ Message INSTALLMESSAGE_PROGRESS, rec\r
+ \r
+ Set progrec = Installer.CreateRecord(3)\r
+ \r
+ progrec.IntegerData(1) = 2\r
+ progrec.IntegerData(2) = 5000\r
+ progrec.IntegerData(3) = 0\r
+ \r
+ rec.IntegerData(2) = 1500000\r
+ \r
+ For i = 0 To 5000000 Step 5000\r
+ rec.IntegerData(1) = i\r
+ ' action data appears only if a text control subscribes to it\r
+ ' Message INSTALLMESSAGE_ACTIONDATA, rec\r
+ Message INSTALLMESSAGE_PROGRESS, progrec\r
+ Next ' i\r
+ \r
+ ' return success to MSI\r
+ AddProgressInfo = 0\r
+End Function\r
+\r
+\r
+\r
--- /dev/null
+<h1 align="left">\r
+<img border="0" src="openfabrics.gif" width="107" height="93"> \r
+<a name="TOP" href="#TOP"></a> </h1>\r
+<h1 align="center">Windows OpenFabrics </h1>\r
+<h1 align="center">User's Manual</h1>\r
+<h2 align="center">Release 1.0</h2>\r
+<h3 align="center">\r
+<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%m/%d/%Y" startspan -->04/23/2007<!--webbot bot="Timestamp" endspan i-checksum="12562" --></h3>\r
+<h2 align="left"><u>Overview</u></h2>\r
+<p align="left">This is the Windows OpenFabrics (WinOF) software package \r
+supporting InfiniBand fabrics. It is composed of several software modules \r
+intended for use on a computer cluster constructed as an InfiniBand fabric.</p>\r
+<p align="left">The Windows OpenFabrics software package contains the \r
+following:<br>\r
+<br>\r
+OpenFabrics Infiniband core drivers and User Level Protocols (ULPs):</p>\r
+<ul>\r
+ <li>\r
+ <p align="left">HCA (Host Channel Adapter) driver mthca</li>\r
+<li>\r
+<p align="left">Infiniband Core modules: IB verbs and IB access layer</li>\r
+<li>\r
+<p align="left">Upper Layer Protocols: IPoIB, WSD, VNIC, SRP Initiator and uDAPL</li>\r
+</ul>\r
+<p align="left">OpenFabrics utilities:</p>\r
+<ul>\r
+ <li>\r
+ <p align="left">OpenSM: InfiniBand Subnet Manager</li>\r
+<li>\r
+<p align="left">Performance tests</li>\r
+<li>\r
+<p align="left">Diagnostic tools</li>\r
+</ul>\r
+<p align="left">Documentation</p>\r
+<ul>\r
+ <li>\r
+ <p align="left">User's manual</li>\r
+<li>\r
+<p align="left">Release Notes</li>\r
+</ul>\r
+<h2 align="left"><u>Features</u></h2>\r
+<ul>\r
+ <li>\r
+ <h3 align="left">Tools</h3></li>\r
+</ul>\r
+<blockquote>\r
+ <blockquote>\r
+ <p align="left">The OpenFabrics Alliance Windows release contains a set of \r
+ user mode tools which are designed to faciliate the smooth operation of an \r
+ Windows OpenFabrics installation.</p>\r
+ <h4 align="left">Infiniband Subnet Management</h4>\r
+ <ul>\r
+ <li>\r
+ <p align="left"><a href="#opensm">opensm</a> Open Subnet \r
+ Management - configure a subnet</li>\r
+ <li>\r
+ <p align="left"><a href="#osmtest">osmtest</a> \r
+ Subnet management tests</li>\r
+ <li>\r
+ <p align="left"><a href="#ibtrapgen">ib_trapgen</a> Generate Infiniband Subnet \r
+ Management Traps for testing purposes</li>\r
+ </ul>\r
+ <h4 align="left"><a href="#verbs_benchmarks">Performance</a></h4>\r
+ <ul>\r
+ <li>\r
+ <p align="left"><a href="#ibsend_lat">ib_send_lat</a> Infiniband send \r
+latency measurement</li>\r
+ <li>\r
+ <p align="left"><a href="#ibsend_bw">ib_send_bw</a> Infiniband send bandwidth \r
+ measurement</li>\r
+ <li>\r
+ <p align="left"><a href="#ibwrite_lat">ib_write_lat</a> Infiniband RDMA write \r
+latency measurement</li>\r
+ <li>\r
+ <p align="left">i<a href="#ibwrite_bw">b_write_bw</a> Infiniband RDMA write bandwidth \r
+measurement</li>\r
+ <li>\r
+ <p align="left"><a href="#ttcp">ttcp</a> \r
+TCP performance measurements</li>\r
+ </ul>\r
+ <h4 align="left"><a href="#diags">Diagnostics</a></h4>\r
+ <ul>\r
+ <li>\r
+ <p align="left"><a href="#iblimits">ib_limits</a> \r
+ Infiniband verb tests</li>\r
+ <li>\r
+ <p align="left"><a href="#cmtest">cmtest </a> Connection Manager tests</li>\r
+ <li>\r
+ <p align="left"><a href="#printip">PrintIP</a> Display \r
+an Internet Protocol address associated with an IB GUID.</li>\r
+ <li>\r
+ <p align="left"><a href="#vstat">vstat</a> \r
+Display HCA attributes, statistics and error counters.<br> </li>\r
+ </ul>\r
+ </blockquote>\r
+</blockquote>\r
+<ul>\r
+ <li>\r
+ <h3 align="left"><a href="#IPoIB">IPoIB - Internet Protocols over InfiniBand</a></h3>\r
+ </li>\r
+ <li>\r
+ <h3 align="left"><a href="#winsockdirect">Winsock Direct Service Provider</a></h3>\r
+ </li>\r
+ <li>\r
+ <h3 align="left"><a href="#DAT">DAT and uDAPL</a></h3></li>\r
+ <li>\r
+ <h3 align="left"><a href="#SRP">SRP - SCSI RDMA Protocol</a></h3></li>\r
+</ul>\r
+<h3 align="left"> </h3>\r
+<p align="left"> </p>\r
+<hr>\r
+<p align="left"> </p>\r
+<h3 align="left"><a name="verbs_benchmarks"></a>User mode verbs micro-benchmarks<br>\r
+ </h3>\r
+<p align="left">These micro-benchmarks tests are intended as useful benchmarks for HW or SW \r
+tuning and/or functional testing.</p>\r
+<blockquote>\r
+ <p align="left">Tests use CPU cycle counters to get time stamps without \r
+ context switch.<br>\r
+ <br>Tests measure round-trip time but report half of that as one-way latency<br>\r
+ (i.e.. May not be sufficiently accurate for \r
+ asymmetrical configurations).<br>\r
+ <br>Min/Median/Max result is reported.<br>The median (vs. average) is less sensitive to extreme scores.<br>Typically the "Max" value is the first value measured.<br>\r
+ <br>larger samples only marginally help. The default (1000) is pretty good.<br>Note that an array of cycles_t (typically unsigned long) is allocated<br>once to collect samples and again to store the difference between them.<br>Really big sample sizes (e.g. 1 million) might expose other problems<br>with the program.<br>\r
+ <br>"-H" option will dump the histogram for additional statistical analysis.<br>See xgraph, ygraph, r-base (http://www.r-project.org/), pspp, or other\r
+ <br>statistical math programs.<br><br>Architectures tested: x86, x86_64, ia64</p>\r
+</blockquote>\r
+<h4 align="left"><a name="ibsend_lat"></a>ib_send_lat.exe - latency test with \r
+send transactions</h4>\r
+<blockquote>\r
+ <p align="left">Usage:</p>\r
+ <blockquote>\r
+ <p align="left">ib_send_lat start a server and wait for connection<br>\r
+ ib_send_lat <host> connect to server at <host></p>\r
+ </blockquote>\r
+ <p align="left">Options:</p>\r
+ <blockquote>\r
+ <p align="left">-p, --port=<port> listen on/connect to port <port> \r
+ (default 18515)<br>\r
+ -c, --connection=<RC/UC> connection type RC/UC (default RC)<br>\r
+ -m, --mtu=<mtu> mtu size (default 2048)<br>\r
+ -d, --ib-dev=<dev> use IB device <dev> (default first device found)<br>\r
+ -i, --ib-port=<port> use port <port> of IB device (default 1)<br>\r
+ -s, --size=<size> size of message to exchange (default 1)<br>\r
+ -t, --tx-depth=<dep> size of tx queue (default 50)<br>\r
+ -l, --signal signal completion on each msg<br>\r
+ -a, --all Run sizes from 2 till 2^23<br>\r
+ -n, --iters=<iters> number of exchanges (at least 2, default 1000)<br>\r
+ -C, --report-cycles report times in cpu cycle units (default \r
+ microseconds)<br>\r
+ -H, --report-histogram print out all results (default print summary \r
+ only)<br>\r
+ -U, --report-unsorted (implies -H) print out unsorted results (default \r
+ sorted)<br>\r
+ -V, --version display version number<br>\r
+ -e, --events sleep on CQ events (default poll)</p>\r
+ </blockquote>\r
+</blockquote>\r
+<h4 align="left"><a name="ibsend_bw"></a>ib_send_bw.exe - BW (BandWidth) test with send transactions</h4>\r
+<blockquote>\r
+ <p align="left">Usage:</p>\r
+ <blockquote>\r
+ <p align="left">ib_send_bw start a server and wait for connection<br>\r
+ ib_send_bw <host> connect to server at <host></p>\r
+ </blockquote>\r
+ <p align="left">Options:</p>\r
+ <blockquote>\r
+ <p align="left">-p, --port=<port> listen on/connect to port <port> \r
+ (default 18515)<br>\r
+ -d, --ib-dev=<dev> use IB device <dev> (default first device found)<br>\r
+ -i, --ib-port=<port> use port <port> of IB device (default 1)<br>\r
+ -c, --connection=<RC/UC> connection type RC/UC/UD (default RC)<br>\r
+ -m, --mtu=<mtu> mtu size (default 1024)<br>\r
+ -s, --size=<size> size of message to exchange (default 65536)<br>\r
+ -a, --all Run sizes from 2 till 2^23<br>\r
+ -t, --tx-depth=<dep> size of tx queue (default 300)<br>\r
+ -n, --iters=<iters> number of exchanges (at least 2, default 1000)<br>\r
+ -b, --bidirectional measure bidirectional bandwidth (default \r
+ unidirectional)<br>\r
+ -V, --version display version number<br>\r
+ -e, --events sleep on CQ events (default poll)</p>\r
+ </blockquote>\r
+</blockquote>\r
+<h4 align="left"><a name="ibwrite_lat"></a>ib_write_lat.exe - latency test with RDMA write \r
+transactions</h4>\r
+<blockquote>\r
+ <p align="left">Usage:</p>\r
+ <blockquote>\r
+ <p align="left">ib_write_lat start a server and wait for connection<br>\r
+ ib_write_lat <host> connect to server at <host></p>\r
+ </blockquote>\r
+ <p align="left">Options:</p>\r
+ <blockquote>\r
+ <p align="left">-p, --port=<port> listen on/connect to port <port> \r
+ (default 18515)<br>\r
+ -c, --connection=<RC/UC> connection type RC/UC (default RC)<br>\r
+ -m, --mtu=<mtu> mtu size (default 1024)<br>\r
+ -d, --ib-dev=<dev> use IB device <dev> (default first device found)<br>\r
+ -i, --ib-port=<port> use port <port> of IB device (default 1)<br>\r
+ -s, --size=<size> size of message to exchange (default 1)<br>\r
+ -a, --all Run sizes from 2 till 2^23<br>\r
+ -t, --tx-depth=<dep> size of tx queue (default 50)<br>\r
+ -n, --iters=<iters> number of exchanges (at least 2, default 1000)<br>\r
+ -C, --report-cycles report times in cpu cycle units (default \r
+ microseconds)<br>\r
+ -H, --report-histogram print out all results (default print summary \r
+ only)<br>\r
+ -U, --report-unsorted (implies -H) print out unsorted results (default \r
+ sorted)<br>\r
+ -V, --version display version number</p>\r
+ </blockquote>\r
+</blockquote>\r
+<h4 align="left"><a name="ibwrite_bw"></a>ib_write_bw.exe - BW test with RDMA write transactions</h4>\r
+<blockquote>\r
+ <p align="left">Usage:</p>\r
+ <blockquote>\r
+ <p align="left">ib_write_bw \r
+ # start a server and wait for connection<br>\r
+ ib_write_bw <host> # connect to server at <host></p>\r
+ </blockquote>\r
+ <p align="left">Options:</p>\r
+ <blockquote>\r
+ <p align="left">-p, --port=<port> listen on/connect to port <port> \r
+ (default 18515)<br>\r
+ -d, --ib-dev=<dev> use IB device <dev> (default first device found)<br>\r
+ -i, --ib-port=<port> use port <port> of IB device (default 1)<br>\r
+ -c, --connection=<RC/UC> connection type RC/UC (default RC)<br>\r
+ -m, --mtu=<mtu> mtu size (default 1024)<br>\r
+ -g, --post=<num of posts> number of posts for each qp in the chain \r
+ (default tx_depth)<br>\r
+ -q, --qp=<num of qp's> Num of qp's(default 1)<br>\r
+ -s, --size=<size> size of message to exchange (default 65536)<br>\r
+ -a, --all Run sizes from 2 till 2^23<br>\r
+ -t, --tx-depth=<dep> size of tx queue (default 100)<br>\r
+ -n, --iters=<iters> number of exchanges (at least 2, default 5000)<br>\r
+ -b, --bidirectional measure bidirectional bandwidth (default \r
+ unidirectional)<br>\r
+ -V, --version display version number</p>\r
+ </blockquote>\r
+</blockquote>\r
+<h4 align="left"><a href="#TOP"><font color="#000000"><return-to-top></font></a></h4>\r
+<p align="left"><br>\r
+ </p>\r
+<h4 align="left"><a name="ttcp"></a>ttcp - Test TCP performance</h4>\r
+<blockquote>\r
+ <pre>Usage: ttcp -t [-options] host \r
+ ttcp -r [-options]\r
+Common options:\r
+ -l ## length of bufs read from or written to network (default 8192)\r
+ -u use UDP instead of TCP\r
+ -p ## port number to send to or listen at (default 5001)\r
+ -A align the start of buffers to this modulus (default 16384)\r
+ -O start buffers at this offset from the modulus (default 0)\r
+ -d set SO_DEBUG socket option\r
+ -b ## set socket buffer size (if supported)\r
+ -f X format for rate: k,K = kilo{bit,byte}; m,M = mega; g,G = giga\r
+Options specific to -t:\r
+ -n## number of source bufs written to network (default 2048)\r
+ -D don't buffer TCP writes (sets TCP_NODELAY socket option)\r
+Options specific to -r:\r
+ -B for -s, only output full blocks as specified by -l (for TAR)\r
+ -T "touch": access each byte as it's read</pre>\r
+ <p align="left">Requires a receiver (server) side and a transmitter (client) \r
+ side, host1 and host2 are IPoIB connected hosts.</p>\r
+ <p align="left">at host1 (receiver) \r
+ ttcp -r -f M -l 4096</p>\r
+ <p align="left">at host2 (transmitter) ttcp -t -f M -l \r
+ 4096 -n1000 host1</p>\r
+</blockquote>\r
+<h4 align="left"><a href="#TOP"><font color="#000000"><return-to-top></font></a></h4>\r
+<p align="left"> </p>\r
+<p align="left"> </p>\r
+<h3 align="left"><a name="diags"></a>Diagnostics</h3>\r
+<p align="left"> </p>\r
+<h3 align="left"><a name="iblimits"></a>ib_limits - Infiniband verbs tests</h3>\r
+<p align="left">Usage: ib_limits [options]</p>\r
+<blockquote>\r
+ <p align="left">Options:<br>-m or --memory<br> Direct ib_limits to test memory registration<br>-c or --cq<br> Direct ib_limits to test CQ creation<br>-r or --resize_cq<br> direct ib_limits to test CQ resize<br>-q or --qp<br> Directs ib_limits to test QP creation<br>-v or --verbose<br> Enable verbosity level to debug console.<br>-h or --help<br> Display this usage info then exit.</p>\r
+</blockquote>\r
+<h4 align="left"><a href="#TOP"><font color="#000000"><return-to-top></font></a></h4>\r
+<p align="left"> </p>\r
+<h3 align="left"><a name="cmtest"></a>cmtest - Connection Manager Tests</h3>\r
+<p>Usage: cmtest [options]</p>\r
+<p> Options:</p>\r
+<blockquote>\r
+ <p> -s --server This option directs cmtest to act as a Server<br>\r
+ -l\r
+ <lid>--local\r
+ <lid>This option specifies the local endpoint.<br>\r
+ -r\r
+ <lid>--remote\r
+ <lid>This option specifies the remote endpoint.<br>\r
+ -c\r
+ <number>--connect\r
+ <number>This option specifies the number of connections to open. Default of \r
+ 1.<br>\r
+ -m\r
+ <bytes>--msize\r
+ <bytes>This option specifies the byte size of each message. Default is 100 \r
+ bytes.<br>\r
+ -n\r
+ <number>--nmsgs\r
+ <number>This option specifies the number of messages to send at a time.<br>\r
+ -p --permsg This option indicates if a separate buffer should be used per \r
+ message. Default is one buffer for all messages.<br>\r
+ -i\r
+ <number>--iterate\r
+ <number>This option specifies the number of times to loop through 'nmsgs'. \r
+ Default of 1.<br>\r
+ -v --verbose This option enables verbosity level to debug console.<br>\r
+ -h --help Display this usage info then exit.</p>\r
+</blockquote>\r
+<h4 align="left"><a href="#TOP"><font color="#000000"><return-to-top></font></a></h4>\r
+<p align="left"> </p>\r
+<p align="left"> </p>\r
+<h3 align="left"><a name="printip"></a>PrintIP - print ip adapters and their addresses</h3>\r
+<blockquote>\r
+ <p align="left">PrintIP is used to print IP adapters and their addresses, or \r
+ ARP (Address Resolution Protocol) and IP address.<br>\r
+ <br>\r
+ Usage:<br>\r
+ printip <print_ips><br>\r
+ printip <remoteip> <ip> \r
+ (example printip remoteip 10.10.2.20)</p>\r
+</blockquote>\r
+<h3 align="left"><a href="#TOP"><font color="#000000"><return-to-top></font></a></h3>\r
+<p align="left"> </p>\r
+<h3 align="left">\r
+<br>\r
+<a name="vstat"></a>vstat - HCA Stats and Counters</h3>\r
+<blockquote>\r
+ <p align="left">Display HCA (Host channel Adapter) attributes.</p>\r
+ <p align="left">Usage: vstat [-v] [-c]<br>\r
+ -v - verbose mode<br>\r
+ -c - HCA error/statistic \r
+ counters</p>\r
+</blockquote>\r
+<h4 align="left"><a href="#TOP"><font color="#000000"><return-to-top></font></a></h4>\r
+<p align="left"> </p>\r
+<h3 align="left"><a name="opensm"></a>Subnet Management with OpenSM Rev: openib-1.2.0</h3>\r
+<p align="left">A single running process (opensm.exe) is required to configure \r
+and thus make an Infiniband subnet useable. For most cases, invoking \r
+opensm.exe with no arguments from a command window is sufficient to correctly configure most \r
+Infiniband fabrics.</p>\r
+<p align="left">The Infiniband subnet management process (opensm) may exist on a \r
+Windows (WinOF) node or a Linux (OFED) node but not both!<br>\r
+One OpenSM per IB fabric.</p>\r
+<h4>OpenIB Subnet Management as a Windows Service</h4>\r
+<p>InfiniBand subnet management is installed by default, although it is NOT \r
+enabled by default. There are two ways to enable OpenSM on a node:</p>\r
+<ol style="margin-bottom: 0in">\r
+ <li>Manual - In a command window run 'opensm.exe', command window/opensm.exe \r
+ must remain active in order for the fabric to remain configured.</li>\r
+ <li>Start OpenSM as a Windows service:<br>\r
+ a) Request a 'Custom' install, selecting the OpenSM install feature; the \r
+ preferred method.<br>\r
+ b) Manually create/start the OpenSM service:<br>\r
+ 1) sc create opensm binPath= "<a href="file:///C:/Program%20Files/WinOF/opensm.exe%20--service" style="color: blue; text-decoration: underline">C:\Program \r
+ Files\WinOF\opensm.exe --service</a>" start= auto DisplayName= "IB Subnet \r
+ Manager"<br>\r
+ 2) sc start opensm<br>\r
+ 3) sc qc opensm \r
+ rem Query service description, 'sc stop opensm' Stops the opensm \r
+ service</li>\r
+</ol>\r
+<p>WARNING - only 'one' OpenSM per IB fabric.</p>\r
+<hr>\r
+<p align="left">Usage: opensm [options]</p>\r
+<p align="left">Options:</p>\r
+<blockquote>\r
+ <p align="left">-c<br>\r
+ --cache-options</p>\r
+ <blockquote>\r
+ <p align="left">Cache the given command line options into the file<br>\r
+ /var/cache/osm/opensm.opts for use next invocation<br>\r
+ The cache directory can be changed by the environment<br>\r
+ variable OSM_CACHE_DIR</p>\r
+ </blockquote>\r
+ <p align="left">-g[=]<GUID in hex><br>\r
+ --guid[=]<GUID in hex></p>\r
+ <blockquote>\r
+ <p align="left">This option specifies the local port GUID value with \r
+ which OpenSM should bind. OpenSM may be<br>\r
+ bound to 1 port at a time. If GUID given is 0, OpenSM displays a \r
+ list of possible port GUIDs and waits for user input. Without -g, OpenSM \r
+ trys to use the default port.</p>\r
+ </blockquote>\r
+ <p align="left">-l <LMC><br>\r
+ --lmc <LMC></p>\r
+ <blockquote>\r
+ <p align="left">This option specifies the subnet's LMC value.<br>\r
+ The number of LIDs assigned to each port is 2^LMC.<br>\r
+ The LMC value must be in the range 0-7.<br>\r
+ LMC values > 0 allow multiple paths between ports.<br>\r
+ LMC values > 0 should only be used if the subnet<br>\r
+ topology actually provides multiple paths between<br>\r
+ ports, i.e. multiple interconnects between switches.<br>\r
+ Without -l, OpenSM defaults to LMC = 0, which allows<br>\r
+ one path between any two ports.</p>\r
+ </blockquote>\r
+ <p align="left">-p <PRIORITY><br>\r
+ --priority <PRIORITY></p>\r
+ <blockquote>\r
+ <p align="left">This option specifies the SM's PRIORITY.<br>\r
+ This will effect the handover cases, where master<br>\r
+ is chosen by priority and GUID.<br>\r
+ -smkey <SM_Key><br>\r
+ This option specifies the SM's SM_Key (64 bits).<br>\r
+ This will effect SM authentication.</p>\r
+ </blockquote>\r
+ <p align="left">-r<br>\r
+ --reassign_lids</p>\r
+ <blockquote>\r
+ <p align="left"><br>\r
+ This option causes OpenSM to reassign LIDs to all end nodes. Specifying \r
+ -r on a running subnet<br>\r
+ may disrupt subnet traffic. Without -r, OpenSM attempts to \r
+ preserve existing LID assignments resolving multiple use of same LID.</p>\r
+ </blockquote>\r
+ <p align="left">-u<br>\r
+ --updn</p>\r
+ <blockquote>\r
+ <p align="left">This option activate UPDN algorithm instead of Min Hop \r
+ algorithm (default).</p>\r
+ </blockquote>\r
+ <p align="left">-a<br>\r
+ --add_guid_file <path to file></p>\r
+ <blockquote>\r
+ <p align="left">Set the root nodes for the Up/Down routing algorithm to \r
+ the guids provided in the given file (one per line)</p>\r
+ </blockquote>\r
+ <p align="left">-o<br>\r
+ --once</p>\r
+ <blockquote>\r
+ <p align="left">This option causes OpenSM to configure the subnet once, \r
+ then exit. Ports remain in the ACTIVE state.</p>\r
+ </blockquote>\r
+ <p align="left">-s <interval><br>\r
+ --sweep <interval></p>\r
+ <blockquote>\r
+ <p align="left">This option specifies the number of seconds between \r
+ subnet sweeps. Specifying -s 0 disables sweeping.<br>\r
+ Without -s, OpenSM defaults to a sweep interval of 10 seconds.</p>\r
+ </blockquote>\r
+ <p align="left">-t <milliseconds><br>\r
+ --timeout <milliseconds></p>\r
+ <blockquote>\r
+ <p align="left">This option specifies the time in milliseconds<br>\r
+ used for transaction timeouts.<br>\r
+ Specifying -t 0 disables timeouts.<br>\r
+ Without -t, OpenSM defaults to a timeout value of<br>\r
+ 200 milliseconds.</p>\r
+ </blockquote>\r
+ <p align="left">-maxsmps <number></p>\r
+ <blockquote>\r
+ <p align="left">This option specifies the number of VL15 SMP MADs \r
+ allowed on the wire at any one time.<br>\r
+ Specifying -maxsmps 0 allows unlimited outstanding SMPs.<br>\r
+ Without -maxsmps, OpenSM defaults to a maximum of one outstanding SMP.</p>\r
+ </blockquote>\r
+ <p align="left">-i <equalize-ignore-guids-file><br>\r
+ -ignore-guids <equalize-ignore-guids-file></p>\r
+ <blockquote>\r
+ <p align="left">This option provides the means to define a set of ports\r
+ (by guids) that will be ignored by the link load \r
+ equalization algorithm.</p>\r
+ </blockquote>\r
+ <p align="left">-x<br>\r
+ --honor_guid2lid</p>\r
+ <blockquote>\r
+ <p align="left">This option forces OpenSM to honor the guid2lid file,\r
+ when it comes out of Standby state, if such file exists\r
+ under OSM_CACHE_DIR, and is valid.\r
+ By default this is FALSE.</p>\r
+ </blockquote>\r
+ <p align="left">-f<br>\r
+ --log_file</p>\r
+ <blockquote>\r
+ <p align="left">This option defines the log to be the given file. By \r
+ default the log goes to %SystemRoot%\temp\osm.log.<br>\r
+ For the log to go to standard output use -f stdout.</p>\r
+ </blockquote>\r
+ <p align="left">-e<br>\r
+ --erase_log_file</p>\r
+ <blockquote>\r
+ <p align="left">This option will cause deletion of the log file \r
+ (if it previously exists). By default, the log file is accumulative.</p>\r
+ </blockquote>\r
+ <p align="left">-y<br>\r
+ --stay_on_fatal</p>\r
+ <blockquote>\r
+ <p align="left">This option will cause SM not to exit on fatal \r
+ initialization\r
+ issues: if SM discovers duplicated guids or 12x link with\r
+ lane reversal badly configured.\r
+ By default, the SM will exit on these errors.</p>\r
+ </blockquote>\r
+ <p align="left">-v<br>\r
+ --verbose</p>\r
+ <blockquote>\r
+ <p align="left">This option increases the log verbosity level.\r
+ The -v option may be specified multiple times\r
+ to further increase the verbosity level. \r
+ See the -vf option for more information about.\r
+ log verbosity.</p>\r
+ </blockquote>\r
+ <p align="left">-V</p>\r
+ <blockquote>\r
+ <p align="left">This option sets the maximum verbosity level and\r
+ forces log flushing.<br>\r
+ The -V is equivalent to '-vf 0xFF -d 2'.\r
+ See the -vf option for more information about\r
+ log verbosity.</p>\r
+ </blockquote>\r
+ <p align="left">-D <flags></p>\r
+ <blockquote>\r
+ <p align="left">This option sets the log verbosity level. A flags \r
+ field must follow the -D option.<br>\r
+ A bit set/clear in the flags enables/disables a specific log level as \r
+ follows:<br>\r
+ BIT LOG LEVEL ENABLED<br>\r
+ ---- -----------------<br>\r
+ 0x01 - ERROR (error messages)<br>\r
+ 0x02 - INFO (basic messages, low volume)<br>\r
+ 0x04 - VERBOSE (interesting stuff, moderate volume)<br>\r
+ 0x08 - DEBUG (diagnostic, high volume)<br>\r
+ 0x10 - FUNCS (function entry/exit, very high volume)<br>\r
+ 0x20 - FRAMES (dumps all SMP and GMP frames)<br>\r
+ 0x40 - ROUTING (dump FDB routing information)<br>\r
+ 0x80 - currently unused.<br>\r
+ Without -D, OpenSM defaults to ERROR + INFO (0x3).<br>\r
+ Specifying -D 0 disables all messages.<br>\r
+ Specifying -D 0xFF enables all messages (see -V).<br>\r
+ High verbosity levels may require increasing the transaction timeout \r
+ with the -t option.</p>\r
+ </blockquote>\r
+ <p align="left">-d <number><br>\r
+ --debug <number></p>\r
+ <blockquote>\r
+ <p align="left">This option specifies a debug option. These options are \r
+ not normally needed. The number following -d selects the debug option to \r
+ enable as follows:<br>\r
+ OPT Description<br>\r
+ --- -----------------<br>\r
+ -d0 - Ignore other SM nodes<br>\r
+ -d1 - Force single threaded dispatching<br>\r
+ -d2 - Force log flushing after each log message<br>\r
+ -d3 - Disable multicast support<br>\r
+ -d4 - Put OpenSM in memory tracking mode<br>\r
+ -d10 - Put OpenSM in testability mode<br>\r
+ Without -d, no debug options are enabled</p>\r
+ </blockquote>\r
+ <p align="left">-h<br>\r
+ --help</p>\r
+ <blockquote>\r
+ <p align="left">Display this usage info then exit.</p>\r
+ </blockquote>\r
+ <p align="left">-?</p>\r
+ <blockquote>\r
+ <p align="left">Display this usage info then exit.</p>\r
+ </blockquote>\r
+</blockquote>\r
+<h4 align="left"><a href="#TOP"><font color="#000000"><return-to-top></font></a></h4>\r
+<h3 align="left"> </h3>\r
+<h3 align="left"><a name="osmtest"></a>Osmtest - Subnet Management Tests</h3>\r
+<p align="left">Invoke open subnet management tests.</p>\r
+<blockquote>\r
+ <p align="left"> Usage: osmtest [options]</p>\r
+ <p align="left">Options:</p>\r
+ <blockquote>\r
+ <p align="left"> -f <c|a|v|s|e|f|m|q|t><br>\r
+ --flow <c|a|v|s|e|f|m|q|t></p>\r
+\r
+ <p align="left">This option directs osmtest to run a specific flow:</p>\r
+ <p align="left">FLOW DESCRIPTIONS<br>\r
+ c = create an inventory file with all nodes, ports & paths.<br>\r
+ a = run all validation tests (expecting an input inventory)<br>\r
+ v = only validate the given inventory file.<br>\r
+ s = run service registration, un-registration and lease.<br>\r
+ e = run event forwarding test.<br>\r
+ f = flood the SA with queries accoring to the stress mode.<br>\r
+ m = multicast flow.<br>\r
+ q = QoS info - VLArb and SLtoVL tables.<br>\r
+ t = run trap 64/65 flow; requires running an external tool.<br>\r
+ (default is all but QoS).</p>\r
+ \r
+ <p align="left">-w <trap_wait_time><br>\r
+ --wait <trap_wait_time></p>\r
+ <blockquote>\r
+ <p align="left">This option specifies the wait time for trap 64/65 \r
+ in seconds.<br>\r
+ It is used only when running -f t - the trap 64/65 flow<br>\r
+ (default to 10 sec).</p>\r
+ </blockquote>\r
+ <p align="left">-d <number><br>\r
+ --debug <number></p>\r
+ <blockquote>\r
+ <p align="left">This option specifies a debug option.\r
+ These options are not normally needed.<br>\r
+ The number following -d selects the debug\r
+ option to enable as follows:<br>\r
+ OPT Description<br>\r
+ --- -----------------<br>\r
+ -d0 - Unused.<br>\r
+ -d1 - Do not scan/compare path records.<br>\r
+ -d2 - Force log flushing after each log message.<br>\r
+ -d3 - Use mem tracking.<br>\r
+ Without -d, no debug options are enabled.</p>\r
+ </blockquote>\r
+ <p align="left">-m <LID in hex><br>\r
+ --max_lid <LID in hex></p>\r
+ <blockquote>\r
+ <p align="left">This option specifies the maximal LID number to be \r
+ searched\r
+ for during inventory file build (default to 100).</p>\r
+ </blockquote>\r
+ <p align="left">-g <GUID in hex><br>\r
+ --guid <GUID in hex></p>\r
+ <blockquote>\r
+ <p align="left">This option specifies the local port GUID value\r
+ with which osmtest should bind. osmtest may be\r
+ bound to 1 port at a time.\r
+ Without -g, osmtest displays a menu of possible\r
+ port GUIDs and waits for user input.</p>\r
+ </blockquote>\r
+ <p align="left">-h<br>\r
+ --help</p>\r
+ <blockquote>\r
+ <p align="left">Display this usage info then exit.</p>\r
+ </blockquote>\r
+ <p align="left">-i <filename><br>\r
+ --inventory <filename></p>\r
+ <blockquote>\r
+ <p align="left">This option specifies the name of the inventory \r
+ file.\r
+ Normally, osmtest expects to find an inventory file,\r
+ which osmtest uses to validate real-time information\r
+ received from the SA during testing.\r
+ If -i is not specified, osmtest defaults to the file\r
+ 'osmtest.dat'.<br>\r
+ See the -c option for related information.</p>\r
+ </blockquote>\r
+ <p align="left">-s<br>\r
+ --stress</p>\r
+ <blockquote>\r
+ <p align="left">This option runs the specified stress test instead \r
+ of the normal test suite.<br>\r
+ Stress test options are as follows:<br>\r
+ OPT Description<br>\r
+ --- -----------------<br>\r
+ -s1 - Single-MAD response SA queries .<br>\r
+ -s2 - Multi-MAD (RMPP) response SA queries.<br>\r
+ -s3 - Multi-MAD (RMPP) Path Record SA queries.<br>\r
+ Without -s, stress testing is not performed.</p>\r
+ </blockquote>\r
+ <p align="left">-M<br>\r
+ --Multicast_Mode</p>\r
+ <blockquote>\r
+ <p align="left">This option specify length of Multicast test :<br>\r
+ OPT Description<br>\r
+ --- -----------------<br>\r
+ -M1 - Short Multicast Flow (default) - single mode.<br>\r
+ -M2 - Short Multicast Flow - multiple mode.<br>\r
+ -M3 - Long Multicast Flow - single mode.<br>\r
+ -M4 - Long Multicast Flow - multiple mode.<br>\r
+ Single mode - Osmtest is tested alone , with no other <br>\r
+ apps that interact vs. OpenSM MC.<br>\r
+ Multiple mode - Could be run with other apps using MC vs.<br>\r
+ OpenSM. Without -M, default flow testing is performed.</p>\r
+ </blockquote>\r
+ <p align="left">-t <milliseconds></p>\r
+ <blockquote>\r
+ <p align="left">This option specifies the time in milliseconds used \r
+ for transaction timeouts.<br>\r
+ Specifying -t 0 disables timeouts.<br>\r
+ Without -t, osmtest defaults to a timeout value of 1 second.</p>\r
+ </blockquote>\r
+ <p align="left">-l<br>\r
+ --log_file</p>\r
+ <blockquote>\r
+ <p align="left">This option defines the log to be the given file.<br>\r
+ By default the log goes to stdout.</p>\r
+ </blockquote>\r
+ <p align="left">-v</p>\r
+ <blockquote>\r
+ <p align="left">This option increases the log verbosity level. The \r
+ -v option may be specified multiple times<br>\r
+ to further increase the verbosity level. See the -vf option for more \r
+ information about log verbosity.</p>\r
+ </blockquote>\r
+ <p align="left">-V</p>\r
+ <blockquote>\r
+ <p align="left">This option sets the maximum verbosity level and \r
+ forces log flushing.<br>\r
+ The -V is equivalent to '-vf 0xFF -d 2'.<br>\r
+ See the -vf option for more information about log verbosity.</p>\r
+ </blockquote>\r
+ <p align="left">-vf <flags></p>\r
+ <blockquote>\r
+ <p align="left">This option sets the log verbosity level. A flags \r
+ field must follow the -vf option.<br>\r
+ A bit set/clear in the flags enables/disables a specific log level \r
+ as follows:<br>\r
+ BIT LOG LEVEL ENABLED<br>\r
+ ---- -----------------<br>\r
+ 0x01 - ERROR (error messages)<br>\r
+ 0x02 - INFO (basic messages, low volume)<br>\r
+ 0x04 - VERBOSE (interesting stuff, moderate volume)<br>\r
+ 0x08 - DEBUG (diagnostic, high volume)<br>\r
+ 0x10 - FUNCS (function entry/exit, very high volume)<br>\r
+ 0x20 - FRAMES (dumps all SMP and GMP frames)<br>\r
+ 0x40 - currently unused.<br>\r
+ 0x80 - currently unused.<br>\r
+ Without -vf, osmtest defaults to ERROR + INFO (0x3).<br>\r
+ Specifying -vf 0 disables all messages.<br>\r
+ Specifying -vf 0xFF enables all messages (see -V).<br>\r
+ High verbosity levels may require increasing<br>\r
+ the transaction timeout with the -t option.</p>\r
+ </blockquote>\r
+ </blockquote>\r
+</blockquote>\r
+<h4 align="left"><a href="#TOP"><font color="#000000"><return-to-top></font></a></h4>\r
+<h3 align="left"> </h3>\r
+<h3 align="left"><br>\r
+<a name="ibtrapgen"></a>ibtrapgen - Generate Infiniband subnet management traps</h3>\r
+<p align="left">Usage: ibtrapgen -t|--trap_num <TRAP_NUM> -n|--number <NUM_TRAP_CREATIONS><br>\r
+ \r
+-r|--rate <TRAP_RATE> -l|--lid <LIDADDR> <br>\r
+ \r
+-s|--src_port <SOURCE_PORT> -p|--port_num <PORT_NUM><br>\r
+<br>\r
+Options: one of the following optional flows:</p>\r
+<blockquote>\r
+ <p align="left">-t <TRAP_NUM><br>\r
+ --trap_num <TRAP_NUM><br>\r
+ This option specifies the \r
+ number of the trap to generate. Valid values are 128-131.<br>\r
+ -n <NUM_TRAP_CREATIONS><br>\r
+ --number <NUM_TRAP_CREATIONS><br>\r
+ This option specifies the \r
+ number of times to generate this trap.<br>\r
+ If not specified - \r
+ default to 1.<br>\r
+ -r <TRAP_RATE><br>\r
+ --rate <TRAP_RATE><br>\r
+ This option specifies the \r
+ rate of the trap generation.<br>\r
+ What is the time period \r
+ between one generation and another?<br>\r
+ The value is given in \r
+ miliseconds. <br>\r
+ If the number of trap \r
+ creations is 1 - this value is ignored.<br>\r
+ -l <LIDADDR><br>\r
+ --lid <LIDADDR><br>\r
+ This option specifies the \r
+ lid address from where the trap should be generated.<br>\r
+ -s <SOURCE_PORT><br>\r
+ --src_port <SOURCE_PORT><br>\r
+ This option specifies the \r
+ port number from which the trap should<br>\r
+ be generated. If trap \r
+ number is 128 - this value is ignored (since<br>\r
+ trap 128 is not sent with \r
+ a specific port number)<br>\r
+ -p <port num><br>\r
+ --port_num <port num><br>\r
+ This is the port number \r
+ used for communicating with the SA.<br>\r
+ -h<br>\r
+ --help<br>\r
+ Display this usage info \r
+ then exit.<br>\r
+ -o<br>\r
+ --out_log_file<br>\r
+ This option defines the \r
+ log to be the given file.<br>\r
+ By default the log goes \r
+ to stdout.<br>\r
+ -v<br>\r
+ This option increases the \r
+ log verbosity level.<br>\r
+ The -v option may be \r
+ specified multiple times to further increase the verbosity level.<br>\r
+ See the -vf option for \r
+ more information about log verbosity.<br>\r
+ -V<br>\r
+ This option sets the \r
+ maximum verbosity level and forces log flushing.<br>\r
+ The -V is equivalent to \r
+ '-vf 0xFF -d 2'.<br>\r
+ See the -vf option for \r
+ more information about. log verbosity.<br>\r
+ -x <flags><br>\r
+ This option sets the log \r
+ verbosity level.<br>\r
+ A flags field must follow \r
+ the -vf option.<br>\r
+ A bit set/clear in the \r
+ flags enables/disables a<br>\r
+ specific log level as \r
+ follows:</p>\r
+ <blockquote>\r
+ <p align="left">BIT LOG LEVEL ENABLED<br>\r
+ ---- -----------------<br>\r
+ 0x01 - ERROR (error messages)<br>\r
+ 0x02 - INFO (basic messages, low volume)<br>\r
+ 0x04 - VERBOSE (interesting stuff, moderate volume)<br>\r
+ 0x08 - DEBUG (diagnostic, high volume)<br>\r
+ 0x10 - FUNCS (function entry/exit, very high volume)<br>\r
+ 0x20 - FRAMES (dumps all SMP and GMP frames)<br>\r
+ 0x40 - currently unused.<br>\r
+ 0x80 - currently unused.<br>\r
+ Without -x, ibtrapgen defaults to ERROR + INFO (0x3).<br>\r
+ Specifying -x 0 disables all messages.<br>\r
+ Specifying -x 0xFF enables all messages (see -V).</p>\r
+ </blockquote>\r
+</blockquote>\r
+<h4 align="left"><a href="#TOP"><font color="#000000"><return-to-top></font></a></h4>\r
+<p align="left"> </p>\r
+<p align="left"> </p>\r
+<h3 align="left"><a name="IPoIB"></a>IPoIB - Internet Protocols over InfiniBand</h3>\r
+<p align="left">IPoIB enables the use of Internet Protocol utilities (e.g., ftp, \r
+telnet) to function correctly over an Infiniband fabric. IPoIB is implemented as \r
+an NDIS Miniport driver with a WDM lower edge.</p>\r
+<p align="left">The IPoIB Network adapters are \r
+located via 'My Computer->Manage->Device Manager->Network adapters->IPoIB'.<br>\r
+'My \r
+Network Places->Properties' will display IPoIB Local Area Connection instances and should be used to \r
+configure IP addresses for the IPoIB interfaces; one Local Area Connection \r
+instance per HCA port. The IP \r
+(Internet Protocol) address bound to the IPoIB adapter instance can be assigned \r
+by DHCP or as a static IP addresses via<br>\r
+'My Network Places->Properties->Local \r
+Area Connection X->Properties->(General Tab)Internet Protocol(TCP/IP)->Properties'.</p>\r
+<p align="left">When the subnet manager (opensm) configures/sweeps the local \r
+Infiniband HCA, the Local Area Connection will become enabled. If you discover \r
+the Local Area Connection to be disabled, then likely your subnet manager \r
+(opensm) is not running or functioning correctly.</p>\r
+<h4 align="left"><a href="#TOP"><font color="#000000"><return-to-top></font></a></h4>\r
+<p align="left"> </p>\r
+<p align="left"> </p>\r
+<h3 align="left"><a name="winsockdirect"></a>Winsock Direct Service Provider</h3>\r
+<p align="left">Winsock Direct (WSD) is Microsoft's proprietary protocol that \r
+predates SDP (Sockets Direct Protocol) for accelerating TCP/IP applications by \r
+using RDMA hardware. Microsoft had a significant role in defining the SDP \r
+protocol, hence SDP and WSD are remarkably similar, though unfortunately \r
+incompatible.<br>\r
+<br>\r
+WSD is made up of two parts, the winsock direct switch and the winsock direct \r
+provider. The WSD switch is in the winsock DLL that ships in all editions of \r
+Windows Server 2003, and is responsible for routing socket traffic over either \r
+the regular TCP/IP stack, or offload it to a WSD provider. The WSD provider is a \r
+hardware specific DLL that implements connection management and data transfers \r
+over particular RDMA hardware.</p>\r
+<p align="left">The WSD Protocol seamlessly transports TCP \r
+ data using Infiniband data packets in 'buffered' mode or Infiniband \r
+ RDMA in 'direct' mode. Either way the user mode socket application sees no \r
+ difference in the standard Inet socket which it created other than \r
+reduced data transfer times and increased bandwidth.<br>\r
+<br>\r
+The Windows OpenFabrics release includes a WSD provider library that has been \r
+extensively tested with Microsoft Windows Server 2003.</p>\r
+<div id="tiki-main">\r
+ <div id="tiki-mid">\r
+ <table id="table1" cellSpacing="0" cellPadding="0" border="0">\r
+ <tr>\r
+ <td id="centercolumn">\r
+ <div id="tiki-center">\r
+ <div class="wikitext">\r
+ Environment variables can be used to change the behavior \r
+ of the WSD provider:<br>\r
+ <br>\r
+ IBWSD_NO_READ - Disables RDMA Read operations when set \r
+ to any value. Note that this variable must be used \r
+ consistently throughout the cluster or communication \r
+ will fail.<br>\r
+ <br>\r
+ IBWSD_POLL - Sets the number of times to poll the \r
+ completion queue after processing completions in \r
+ response to a CQ event. Reduces latency at the cost of \r
+ CPU utilization. Default is 500.<br>\r
+ <br>\r
+ IBWSD_SA_RETRY - Sets the number of times to retry SA \r
+ query requests. Default is 4, can be increased if \r
+ connection establishment fails.<br>\r
+ <br>\r
+ IBWSD_SA_TIMEOUT - Sets the number of milliseconds to \r
+ wait before retrying SA query requests. Default is 4, \r
+ can be increased if connection establishment fails.<br>\r
+ <br>\r
+ IBWSD_NO_IPOIB - SA query timeouts by default allow the \r
+ connection to be established over IPoIB. Setting this \r
+ environment variable to any value prevents fall back to \r
+ IPoIB if SA queries time out.<br>\r
+ <br>\r
+ IBWSD_DBG - Controls debug output when using a debug \r
+ version of the WSD provider. Takes a hex value, with \r
+ leading '0x', default value is '0x80000000'<br>\r
+ <br>\r
+ <table class="wikitable" id="table2">\r
+ <tr>\r
+ <td class="wikicell">0x00000001</td>\r
+ <td class="wikicell">DLL</td>\r
+ </tr>\r
+ <tr>\r
+ <td class="wikicell">0x00000002</td>\r
+ <td class="wikicell">socket info</td>\r
+ </tr>\r
+ <tr>\r
+ <td class="wikicell">0x00000004</td>\r
+ <td class="wikicell">initialization code</td>\r
+ </tr>\r
+ <tr>\r
+ <td class="wikicell">0x00000008</td>\r
+ <td class="wikicell">WQ related functions</td>\r
+ </tr>\r
+ <tr>\r
+ <td class="wikicell">0x00000010</td>\r
+ <td class="wikicell">Enpoints related functions</td>\r
+ </tr>\r
+ <tr>\r
+ <td class="wikicell">0x00000020</td>\r
+ <td class="wikicell">memory registration</td>\r
+ </tr>\r
+ <tr>\r
+ <td class="wikicell">0x00000040</td>\r
+ <td class="wikicell">CM</td>\r
+ </tr>\r
+ <tr>\r
+ <td class="wikicell">0x00000080</td>\r
+ <td class="wikicell">connections</td>\r
+ </tr>\r
+ <tr>\r
+ <td class="wikicell">0x00000200</td>\r
+ <td class="wikicell">socket options</td>\r
+ </tr>\r
+ <tr>\r
+ <td class="wikicell">0x00000400</td>\r
+ <td class="wikicell">network events</td>\r
+ </tr>\r
+ <tr>\r
+ <td class="wikicell">0x00000800</td>\r
+ <td class="wikicell">Hardware</td>\r
+ </tr>\r
+ <tr>\r
+ <td class="wikicell">0x00001000</td>\r
+ <td class="wikicell">Overlapped I/O request</td>\r
+ </tr>\r
+ <tr>\r
+ <td class="wikicell">0x00002000</td>\r
+ <td class="wikicell">Socket Duplication</td>\r
+ </tr>\r
+ <tr>\r
+ <td class="wikicell">0x00004000</td>\r
+ <td class="wikicell">Performance Monitoring</td>\r
+ </tr>\r
+ <tr>\r
+ <td class="wikicell">0x01000000</td>\r
+ <td class="wikicell">More verbose than \r
+ IBSP_DBG_LEVEL3</td>\r
+ </tr>\r
+ <tr>\r
+ <td class="wikicell">0x02000000</td>\r
+ <td class="wikicell">More verbose than \r
+ IBSP_DBG_LEVEL2</td>\r
+ </tr>\r
+ <tr>\r
+ <td class="wikicell">0x04000000</td>\r
+ <td class="wikicell">More verbose than \r
+ IBSP_DBG_LEVEL1</td>\r
+ </tr>\r
+ <tr>\r
+ <td class="wikicell">0x08000000</td>\r
+ <td class="wikicell">Verbose output</td>\r
+ </tr>\r
+ <tr>\r
+ <td class="wikicell">0x20000000</td>\r
+ <td class="wikicell">Function enter/exit</td>\r
+ </tr>\r
+ <tr>\r
+ <td class="wikicell">0x40000000</td>\r
+ <td class="wikicell">Warnings</td>\r
+ </tr>\r
+ <tr>\r
+ <td class="wikicell">0x80000000</td>\r
+ <td class="wikicell">Errors</td>\r
+ </tr>\r
+ </table>\r
+ </div>\r
+ </div>\r
+ </td>\r
+ </tr>\r
+ </table>\r
+ </div>\r
+</div>\r
+<p align="left"><br>\r
+See <a href="https://wiki.openfabrics.org/tiki-index.php?page=Winsock+Direct">\r
+https://wiki.openfabrics.org/tiki-index.php?page=Winsock+Direct</a> for the \r
+latest WSD status.</p>\r
+<h3 align="left">Install Winsock Direct Service Provider</h3>\r
+<p align="left">When the custom install option 'WSD' is selected the WSD service \r
+is automatically installed and started as part of the installation.<br>\r
+Manual control is performed via the \Program Files\WinOF\installsp.exe utility.</p>\r
+<blockquote>\r
+ <p align="left">usage: installsp [-i | -r | -l]<br>\r
+ <br>\r
+ -i Install the Winsock Direct (WSD) service provider<br>\r
+ -r Remove the WSD service provider<br>\r
+ -r <name> Remove the specified service provider<br>\r
+ -l List service providers<br>\r
+ </p>\r
+</blockquote>\r
+<h4 align="left"><a href="#TOP"><font color="#000000"><return-to-top></font></a></h4>\r
+<p align="left"> </p>\r
+<p align="left"> </p>\r
+<h3 align="left"><a name="DAT"></a>DAT (Direct Access Transport) Library and uDAPL (usermode Direct Access Programing \r
+Library)</h3>\r
+<p align="left">DAT and uDAPL are based on the 1.1 DAT specification. The DAPL \r
+(Direct Access Provider Library) provider now fully supports Infiniband RDMA and \r
+IPoIB.</p>\r
+<div align="left">\r
+ <h3 align="left"><font face="Courier New" size="3">DAT EXECUTION ENVIRONMENT</font><font face="Courier New" size="2">:</font></h3>\r
+</div>\r
+<blockquote>\r
+ <p align="left"><font face="Courier New" size="2">In order for DAT/uDAPL \r
+ programs to execute correctly, the 'dat.dll' file must be present in the \r
+ current directory,\r
+ %SystemRoot%\system32, %SystemRoot% or in the library search path.</font></p>\r
+ <p align="left"><font face="Courier New" size="2">The default WinOF \r
+ installation places the file dat.dll in the '%SystemRoot%' folder.</font></p>\r
+ <p align="left"><font face="Courier New" size="2">The DAPL configuration \r
+ file by default is defined as '%SystemDrive%\DAT\dat.conf'. This default \r
+ specification can be overriden by use of the environment variable \r
+ DAT_OVERRIDE; see following environment variable discussion.</font></p>\r
+ <p align="left"><font face="Courier New" size="2">Within the dat.conf file, \r
+ the DAPL library specification can be located as the 5th whitespace \r
+ separated line argument. By default the DAPL library file is installed as<br>\r
+ '%SystemRoot%\dapl.dll'.</font></p>\r
+ <p align="left"><font face="Courier New" size="2">Should you choose to \r
+ relocated the DAPL library file to a path where whitespace appears in the \r
+ full library path specification, then the full library file specification \r
+ must be contained within double-quotes. A side effect of the double-quotes \r
+ is the library specification is treated as a Windows string which implies \r
+ the '\' (backslash character) is treated as an 'escape' character. Hence \r
+ all backslashes in the library path must be duplicated when enclosed in \r
+ double-quotes\r
+ (e.g., "C:\\Programs Files\\WinOF\\dapl.dll").</font></p>\r
+ <p align="left"><font face="Courier New" size="2">A sample dat.conf file is \r
+ installed as '\Program Files\WinOF\dat.conf '.<br>\r
+ After the WinOF installation, move the \Program Files\WinOF\dat.conf file to \r
+ the default DAT configuration file location\r
+ '%SystemDrive%\DAT\dat.conf'.</font></p>\r
+ <p align="left"><font face="Courier New" size="2">In order to preserve existing installations, \r
+ the dat.conf file is not automatically installed in it's default location.</font></p>\r
+ <p align="left"> </p>\r
+ <h4>\r
+<u>DAT library environment variables</u>:<br>\r
+ </h4>\r
+ <pre>\r
+DAT_OVERRIDE\r
+------------\r
+Value used as the static registry configuration file, overriding the\r
+default location, 'C:\DAT\dat.conf'.\r
+\r
+Example: set DAT_OVERRIDE=%SystemDrive%\path\to\my\private.conf\r
+\r
+\r
+DAT_DBG_TYPE\r
+------------\r
+\r
+Value specifies which parts of the registry will print debugging\r
+information, valid values are \r
+\r
+DAT_OS_DBG_TYPE_ERROR = 0x1\r
+DAT_OS_DBG_TYPE_GENERIC = 0x2\r
+DAT_OS_DBG_TYPE_SR = 0x4\r
+DAT_OS_DBG_TYPE_DR = 0x8\r
+DAT_OS_DBG_TYPE_PROVIDER_API = 0x10\r
+DAT_OS_DBG_TYPE_CONSUMER_API = 0x20\r
+DAT_OS_DBG_TYPE_ALL = 0xff\r
+\r
+or any combination of these. For example you can use 0xC to get both \r
+static and dynamic registry output.\r
+\r
+Example set DAT_DBG_TYPE=0xC\r
+\r
+DAT_DBG_DEST\r
+------------ \r
+\r
+Value sets the output destination, valid values are \r
+\r
+DAT_OS_DBG_DEST_STDOUT = 0x1\r
+DAT_OS_DBG_DEST_SYSLOG = 0x2 \r
+DAT_OS_DBG_DEST_ALL = 0x3 \r
+\r
+For example, 0x3 will output to both stdout and the syslog. \r
+</pre>\r
+ <h4>\r
+<u>DAPL Provider library environment variables</u></h4>\r
+ <p>\r
+<br>\r
+<font size="2">DAPL_DBG_TYPE<br>\r
+-------------<br>\r
+<br>\r
+<font face="Courier New">Value specifies which parts of the registry will print \r
+debugging information, valid values are</font> <br>\r
+<br>\r
+</font><font face="Courier New"><font size="2">DAPL_DBG_TYPE_ERR = 0x0001<br>\r
+DAPL_DBG_TYPE_WARN = 0x0002<br>\r
+DAPL_DBG_TYPE_EVD = 0x0004<br>\r
+DAPL_DBG_TYPE_CM = 0x0008<br>\r
+DAPL_DBG_TYPE_EP = 0x0010<br>\r
+DAPL_DBG_TYPE_UTIL = 0x0020<br>\r
+DAPL_DBG_TYPE_CALLBACK = 0x0040<br>\r
+DAPL_DBG_TYPE_DTO_COMP_ERR = 0x0080<br>\r
+DAPL_DBG_TYPE_API = 0x0100<br>\r
+DAPL_DBG_TYPE_RTN = 0x0200<br>\r
+DAPL_DBG_TYPE_EXCEPTION = 0x0400<br>\r
+<br>\r
+or any combination of these. For example you can use 0xC to get both <br>\r
+EVD and CM output.<br>\r
+<br>\r
+Example set DAPL_DBG_TYPE=0xC<br>\r
+<br>\r
+<br>\r
+DAPL_DBG_DEST<br>\r
+-------------<br>\r
+<br>\r
+Value sets the output destination, valid values are <br>\r
+<br>\r
+DAPL_DBG_DEST_STDOUT = 0x1<br>\r
+DAPL_DBG_DEST_SYSLOG = 0x2 <br>\r
+DAPL_DBG_DEST_ALL = 0x3 <br>\r
+<br>\r
+For example, 0x3 will output to both stdout and the syslog.</font> </font><br>\r
+<br>\r
+<br>\r
+\r
+</p>\r
+</blockquote><hr>\r
+<h3>DAPLTEST</h3>\r
+<pre>\r
+\r
+ dapltest - test for the Direct Access Provider Library (DAPL)\r
+\r
+DESCRIPTION\r
+\r
+ Dapltest is a set of tests developed to exercise, characterize,\r
+ and verify the DAPL interfaces during development and porting.\r
+ At least two instantiations of the test must be run. One acts\r
+ as the server, fielding requests and spawning server-side test\r
+ threads as needed. Other client invocations connect to the\r
+ server and issue test requests.\r
+\r
+ The server side of the test, once invoked, listens continuously\r
+ for client connection requests, until quit or killed. Upon\r
+ receipt of a connection request, the connection is established,\r
+ the server and client sides swap version numbers to verify that\r
+ they are able to communicate, and the client sends the test\r
+ request to the server. If the version numbers match, and the\r
+ test request is well-formed, the server spawns the threads\r
+ needed to run the test before awaiting further connections.\r
+\r
+USAGE\r
+\r
+ dapltest [ -f script_file_name ]\r
+ [ -T S|Q|T|P|L ] [ -D device_name ] [ -d ] [ -R HT|LL|EC|PM|BE ]\r
+\r
+ With no arguments, dapltest runs as a server using default values,\r
+ and loops accepting requests from clients. The -f option allows\r
+ all arguments to be placed in a file, to ease test automation.\r
+ The following arguments are common to all tests:\r
+\r
+ [ -T S|Q|T|P|L ] Test function to be performed:\r
+ S - server loop\r
+ Q - quit, client requests that server\r
+ wait for any outstanding tests to\r
+ complete, then clean up and exit\r
+ T - transaction test, transfers data between \r
+ client and server\r
+ P - performance test, times DTO operations\r
+ L - limit test, exhausts various resources,\r
+ runs in client w/o server interaction\r
+ Default: S\r
+\r
+ [ -D device_name ] Specifies the name of the device (interface adapter).\r
+ Default: host-specific, look for DT_MdepDeviceName\r
+ in dapl_mdep.h\r
+\r
+ [ -d ] Enables extra debug verbosity, primarily tracing\r
+ of the various DAPL operations as they progress.\r
+ Repeating this parameter increases debug spew.\r
+ Errors encountered result in the test spewing some\r
+ explanatory text and stopping; this flag provides\r
+ more detail about what lead up to the error.\r
+ Default: zero\r
+\r
+ [ -R BE ] Indicate the quality of service (QoS) desired.\r
+ Choices are:\r
+ HT - high throughput\r
+ LL - low latency\r
+ EC - economy (neither HT nor LL)\r
+ PM - premium\r
+ BE - best effort\r
+ Default: BE\r
+\r
+USAGE - Quit test client\r
+\r
+ dapltest [Common_Args] [ -s server_name ]\r
+\r
+ Quit testing (-T Q) connects to the server to ask it to clean up and\r
+ exit (after it waits for any outstanding test runs to complete).\r
+ In addition to being more polite than simply killing the server,\r
+ this test exercises the DAPL object teardown code paths.\r
+ There is only one argument other than those supported by all tests:\r
+\r
+ -s server_name Specifies the name of the server interface.\r
+ No default.\r
+\r
+\r
+USAGE - Transaction test client\r
+\r
+ dapltest [Common_Args] [ -s server_name ]\r
+ [ -t threads ] [ -w endpoints ] [ -i iterations ] [ -Q ] \r
+ [ -V ] [ -P ] OPclient OPserver [ op3, \r
+\r
+ Transaction testing (-T T) transfers a variable amount of data between \r
+ client and server. The data transfer can be described as a sequence of \r
+ individual operations; that entire sequence is transferred 'iterations' \r
+ times by each thread over all of its endpoint(s).\r
+\r
+ The following parameters determine the behavior of the transaction test:\r
+\r
+ -s server_name Specifies the hostname of the dapltest server.\r
+ No default.\r
+\r
+ [ -t threads ] Specify the number of threads to be used.\r
+ Default: 1\r
+\r
+ [ -w endpoints ] Specify the number of connected endpoints per thread.\r
+ Default: 1\r
+\r
+ [ -i iterations ] Specify the number of times the entire sequence\r
+ of data transfers will be made over each endpoint.\r
+ Default: 1000\r
+\r
+ [ -Q ] Funnel completion events into a CNO.\r
+ Default: use EVDs\r
+\r
+ [ -V ] Validate the data being transferred.\r
+ Default: ignore the data\r
+\r
+ [ -P ] Turn on DTO completion polling\r
+ Default: off\r
+\r
+ OP1 OP2 [ OP3, ... ]\r
+ A single transaction (OPx) consists of:\r
+\r
+ server|client Indicates who initiates the\r
+ data transfer.\r
+\r
+ SR|RR|RW Indicates the type of transfer:\r
+ SR send/recv\r
+ RR RDMA read\r
+ RW RDMA write\r
+ Defaults: none\r
+\r
+ [ seg_size [ num_segs ] ]\r
+ Indicates the amount and format\r
+ of the data to be transferred.\r
+ Default: 4096 1\r
+ (i.e., 1 4KB buffer)\r
+\r
+ [ -f ] For SR transfers only, indicates\r
+ that a client's send transfer\r
+ completion should be reaped when\r
+ the next recv completion is reaped.\r
+ Sends and receives must be paired\r
+ (one client, one server, and in that\r
+ order) for this option to be used.\r
+\r
+ Restrictions: \r
+ \r
+ Due to the flow control algorithm used by the transaction test, there \r
+ must be at least one SR OP for both the client and the server. \r
+\r
+ Requesting data validation (-V) causes the test to automatically append \r
+ three OPs to those specified. These additional operations provide \r
+ synchronization points during each iteration, at which all user-specified \r
+ transaction buffers are checked. These three appended operations satisfy \r
+ the "one SR in each direction" requirement.\r
+\r
+ The transaction OP list is printed out if -d is supplied.\r
+\r
+USAGE - Performance test client\r
+\r
+ dapltest [Common_Args] -s server_name [ -m p|b ]\r
+ [ -i iterations ] [ -p pipeline ] OP\r
+\r
+ Performance testing (-T P) times the transfer of an operation.\r
+ The operation is posted 'iterations' times.\r
+\r
+ The following parameters determine the behavior of the transaction test:\r
+\r
+ -s server_name Specifies the hostname of the dapltest server.\r
+ No default.\r
+\r
+ -m b|p Used to choose either blocking (b) or polling (p)\r
+ Default: blocking (b)\r
+\r
+ [ -i iterations ] Specify the number of times the entire sequence\r
+ of data transfers will be made over each endpoint.\r
+ Default: 1000\r
+\r
+ [ -p pipeline ] Specify the pipline length, valid arguments are in \r
+ the range [0,MAX_SEND_DTOS]. If a value greater than \r
+ MAX_SEND_DTOS is requested the value will be\r
+ adjusted down to MAX_SEND_DTOS.\r
+ Default: MAX_SEND_DTOS\r
+\r
+ OP\r
+ An operation consists of:\r
+\r
+ RR|RW Indicates the type of transfer:\r
+ RR RDMA read\r
+ RW RDMA write\r
+ Default: none\r
+\r
+ [ seg_size [ num_segs ] ]\r
+ Indicates the amount and format\r
+ of the data to be transferred.\r
+ Default: 4096 1\r
+ (i.e., 1 4KB buffer)\r
+\r
+USAGE - Limit test client\r
+\r
+ Limit testing (-T L) neither requires nor connects to any server\r
+ instance. The client runs one or more tests which attempt to\r
+ exhaust various resources to determine DAPL limits and exercise\r
+ DAPL error paths. If no arguments are given, all tests are run.\r
+\r
+ Limit testing creates the sequence of DAT objects needed to\r
+ move data back and forth, attempting to find the limits supported\r
+ for the DAPL object requested. For example, if the LMR creation\r
+ limit is being examined, the test will create a set of\r
+ {IA, PZ, CNO, EVD, EP} before trying to run dat_lmr_create() to\r
+ failure using that set of DAPL objects. The 'width' parameter\r
+ can be used to control how many of these parallel DAPL object\r
+ sets are created before beating upon the requested constructor.\r
+ Use of -m limits the number of dat_*_create() calls that will\r
+ be attempted, which can be helpful if the DAPL in use supports\r
+ essentailly unlimited numbers of some objects.\r
+\r
+ The limit test arguments are:\r
+\r
+ [ -m maximum ] Specify the maximum number of dapl_*_create()\r
+ attempts.\r
+ Default: run to object creation failure\r
+\r
+ [ -w width ] Specify the number of DAPL object sets to\r
+ create while initializing.\r
+ Default: 1\r
+\r
+ [ limit_ia ] Attempt to exhaust dat_ia_open()\r
+\r
+ [ limit_pz ] Attempt to exhaust dat_pz_create()\r
+\r
+ [ limit_cno ] Attempt to exhaust dat_cno_create()\r
+\r
+ [ limit_evd ] Attempt to exhaust dat_evd_create()\r
+\r
+ [ limit_ep ] Attempt to exhaust dat_ep_create()\r
+\r
+ [ limit_rsp ] Attempt to exhaust dat_rsp_create()\r
+\r
+ [ limit_psp ] Attempt to exhaust dat_psp_create()\r
+\r
+ [ limit_lmr ] Attempt to exhaust dat_lmr_create(4KB)\r
+\r
+ [ limit_rpost ] Attempt to exhaust dat_ep_post_recv(4KB)\r
+\r
+ [ limit_size_lmr ] Probe maximum size dat_lmr_create()\r
+\r
+ Default: run all tests\r
+\r
+\r
+EXAMPLES\r
+\r
+ dapltest -T S -d -D ibnic0\r
+\r
+ Starts a server process with debug verbosity.\r
+ \r
+ dapltest -T T -d -s winIB -D ibnic0 -i 100 \\r
+ client SR 4096 2 server SR 4096 2\r
+\r
+ Runs a transaction test, with both sides\r
+ sending one buffer with two 4KB segments,\r
+ one hundred times; dapltest server is on host winIB.\r
+\r
+ dapltest -T P -d -s winIB -D JniIbdd0 -i 100 SR 4096 2\r
+\r
+ Runs a performance test, with the client \r
+ sending one buffer with two 4KB segments,\r
+ one hundred times.\r
+\r
+ dapltest -T Q -s winIB -D ibnic0\r
+\r
+ Asks the dapltest server at host 'winIB' to clean up and exit.\r
+\r
+ dapltest -T L -D ibnic0 -d -w 16 -m 1000\r
+\r
+ Runs all of the limit tests, setting up\r
+ 16 complete sets of DAPL objects, and\r
+ creating at most a thousand instances\r
+ when trying to exhaust resources.\r
+\r
+ dapltest -T T -V -d -t 2 -w 4 -i 55555 -s winIB -D ibnic0 \\r
+ client RW 4096 1 server RW 2048 4 \\r
+ client SR 1024 4 server SR 4096 2 \\r
+ client SR 1024 3 -f server SR 2048 1 -f\r
+\r
+ Runs a more complicated transaction test,\r
+ with two thread using four EPs each,\r
+ sending a more complicated buffer pattern\r
+ for a larger number of iterations,\r
+ validating the data received.\r
+\r
+\r
+BUGS (and To Do List)\r
+\r
+ Use of CNOs (-Q) is not yet supported.\r
+\r
+ Further limit tests could be added.</pre>\r
+<h4 align="left"><a href="#TOP"><font color="#000000"><return-to-top></font></a></h4>\r
+<p align="left"> </p>\r
+<p align="left"> </p>\r
+<h3 align="left"><u><a name="SRP"></a>SRP - SCSI RDMA Protocol</u></h3>\r
+<p align="left">[ADD text here]</p>\r
+<h4 align="left"><a href="#TOP"><font color="#000000"><return-to-top></font></a></h4>\r
--- /dev/null
+[4-24-07]\r
+\r
+How to generate a Windows OpenFabrics Release (WinOF) using the\r
+InstallShield-12 product.\r
+\r
+Download the desired openib-windows binary release\r
+ http://openib.tc.cornell.edu/downloads/binaries/1.0.0.614/\r
+ to\r
+ '...\WinOF\InstallShield\bin\'.\r
+\r
+The .zip archives reduce the download/copy overhead.\r
+\r
+The resulting bin\ folder structure must look like the following:\r
+\r
+ bin\\r
+ DAPL\\r
+ amd64\\r
+ x86\\r
+ ia64\ \r
+ HCA\\r
+ amd64\\r
+ x86\\r
+ ia64\\r
+ net\\r
+ amd64\\r
+ x86\\r
+ ia64\\r
+ storage\\r
+ amd64\\r
+ x86\\r
+ ia64\\r
+ tools\\r
+ amd64\\r
+ debug\\r
+ release\\r
+ x86\\r
+ debug\\r
+ release\\r
+ ia64\\r
+ debug\\r
+ release\\r
+\r
+\r
+Update Release_notes.htm file.\r
+\r
+ Release ID number (e.g., 1.1)\r
+\r
+ New features\r
+\r
+ Know issues\r
+\r
+Update the Manual.htm file for new features, etc.\r
+\r
+\r
+See the arch specific BOM-arch.txt file for bin/ file references and where\r
+they are installed to.\r
+\r
+To generate an x64 WinOF release, cd WinOF_x64\r
+\r
+WinOF_x64\\r
+ WinOF_x64.ism # WinOF x64 installShield src, double click this file to start\r
+ WinOF_x64\ # InstallShield-12 build files: <...>\DIsk1\setup.exe\r
+ # is the end product; rename to WinOF_arch_Vx-y_setup.exe\r
+\r
+Assuming you have an InstallShield product installed on your system, double-click the WinOF_x64.ism\r
+file and proceed to the Installation Designer Tab.\r
+\r
+From the Installation Designer, find the 'Media' section (lower left); click '+' to open.\r
+\r
+Select Path variables.\r
+\r
+Edit the following Path Variables to reflect the full path to your WinOF build location.\r
+Such that ...\WinOF\InstallShield is changed to <your-path>\WinOF\InstallShield.\r
+Edit paths:\r
+ PATH_TO_OFW_FILES\r
+ PATH_TO_WINOF_INSTALL\r
+ Changing the 'Defined' value will also change the 'current' value.\r
+ set 'Defined' value to '<your-path>\WinOF\InstallShield'.\r
+Save.\r
+Now you can build.\r
+\r
+When building expect 4 warnings, as the referenced features are intended to be part of a Custom\r
+installation.\r
+\r
+The resulting install file is located:\r
+WinOF\InstallShield\WinOF_x64\WInOF_x64\PROJECT_ASSISTANT\SINGLE_EXE_IMAGE\DiskImages\Disk1\setup.exe\r
+\r
+Buckle-in InstallShield is a strange ride if your not familiar with it; very powerful and\r
+confusing at the same time.\r
+\r
+\r
--- /dev/null
+<html>\r
+\r
+<head>\r
+<meta http-equiv=Content-Type content="text/html; charset=windows-1252">\r
+<meta name=Generator content="Microsoft Word 11 (filtered)">\r
+\r
+<style>\r
+<!--\r
+ /* Font Definitions */\r
+ @font-face\r
+ {font-family:Wingdings;\r
+ panose-1:5 0 0 0 0 0 0 0 0 0;}\r
+@font-face\r
+ {font-family:"MS Mincho";\r
+ panose-1:2 2 6 9 4 2 5 8 3 4;}\r
+@font-face\r
+ {font-family:"\@MS Mincho";\r
+ panose-1:2 2 6 9 4 2 5 8 3 4;}\r
+ /* Style Definitions */\r
+ p.MsoNormal, li.MsoNormal, div.MsoNormal\r
+ {margin:0in;\r
+ margin-bottom:.0001pt;\r
+ font-size:12.0pt;\r
+ font-family:"Times New Roman";}\r
+h1\r
+ {margin-right:0in;\r
+ margin-left:0in;\r
+ font-size:24.0pt;\r
+ font-family:"Times New Roman";\r
+ font-weight:bold;}\r
+h2\r
+ {margin-right:0in;\r
+ margin-left:0in;\r
+ font-size:18.0pt;\r
+ font-family:"Times New Roman";\r
+ font-weight:bold;}\r
+h3\r
+ {margin-right:0in;\r
+ margin-left:0in;\r
+ font-size:13.5pt;\r
+ font-family:"Times New Roman";\r
+ font-weight:bold;}\r
+h4\r
+ {margin-right:0in;\r
+ margin-left:0in;\r
+ font-size:12.0pt;\r
+ font-family:"Times New Roman";\r
+ font-weight:bold;}\r
+a:link, span.MsoHyperlink\r
+ {color:blue;\r
+ text-decoration:underline;}\r
+a:visited, span.MsoHyperlinkFollowed\r
+ {color:blue;\r
+ text-decoration:underline;}\r
+p.MsoPlainText, li.MsoPlainText, div.MsoPlainText\r
+ {margin:0in;\r
+ margin-bottom:.0001pt;\r
+ font-size:10.0pt;\r
+ font-family:"Courier New";}\r
+p\r
+ {margin-right:0in;\r
+ margin-left:0in;\r
+ font-size:12.0pt;\r
+ font-family:"Times New Roman";}\r
+@page Section1\r
+ {size:8.5in 11.0in;\r
+ margin:1.0in 65.95pt 1.0in 65.95pt;}\r
+div.Section1\r
+ {page:Section1;}\r
+ /* List Definitions */\r
+ ol\r
+ {margin-bottom:0in;}\r
+ul\r
+ {margin-bottom:0in;}\r
+-->\r
+</style>\r
+\r
+</head>\r
+\r
+<body lang=EN-US link=blue vlink=blue>\r
+\r
+<div class=Section1>\r
+\r
+<h1 align=center style='text-align:left'><img width=107 height=93\r
+src=openfabrics.gif></h1>\r
+\r
+<h1 align=center style='text-align:center'>Windows OpenFabrics </h1>\r
+\r
+<h1 align=center style='text-align:center'>1.0 Release Notes</h1>\r
+\r
+<h3 align=center style='text-align:center'>\r
+<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%m/%d/%Y" startspan -->04/23/2007<!--webbot bot="Timestamp" endspan i-checksum="12562" --></h3>\r
+\r
+<div class=MsoNormal align=center style='text-align:center'>\r
+\r
+<hr size=2 width="100%" align=center>\r
+\r
+</div>\r
+\r
+<h2><u>Overview</u></h2>\r
+\r
+<p class=MsoPlainText><span style='font-size:12.0pt;font-family:"Times New Roman"'>The\r
+Windows OpenFabrics (WinOF) release package is composed of software modules\r
+intended for use on Microsoft Windows based computer systems connected via an\r
+InfiniBand fabric.</span></p>\r
+\r
+<p class=MsoPlainText><span style='font-size:12.0pt;font-family:"Times New Roman"'> Binary\r
+files from the openib-windows developers release tree <a\r
+href="http://openib.tc.cornell.edu/downloads/binaries/1.0.0.614">http://openib.tc.cornell.edu/downloads/binaries/1.0.0.614</a>\r
+are packaged into an InstallShield single file install package referred to as\r
+the Windows OpenFabrics (WinOF) release.</span></p>\r
+\r
+<p>The Windows OpenFabrics (WinOF) release package contains the following:<br>\r
+<br>\r
+OpenFabrics InfiniBand core drivers and User Level Protocols (ULPs):</p>\r
+<ul>\r
+ <li>\r
+ <p style='margin-left:.5in;text-indent:-.25in'><span dir=LTR>HCA driver mthca</span></p>\r
+ </li>\r
+ <li>\r
+ <p style='margin-left:.5in;text-indent:-.25in'><span dir=LTR>Infiniband Core components</span></p>\r
+ </li>\r
+ <li>\r
+ <p style='margin-left:.5in;text-indent:-.25in'><span dir=LTR>Upper Layer Protocols: IPoIB, WSD, SRP Initiator\r
+and uDAPL</span></p></li>\r
+</ul>\r
+\r
+<p>OpenFabrics utilities:</p>\r
+\r
+<ul>\r
+ <li>\r
+ <p style='margin-left:.5in;text-indent:-.25in'><span dir=LTR>OpenSM: InfiniBand fabric Subnet Manager</span></p>\r
+ </li>\r
+ <li>\r
+ <p style='margin-left:.5in;text-indent:-.25in'><span dir=LTR>Performance tests</span></p>\r
+ </li>\r
+ <li>\r
+ <p style='margin-left:.5in;text-indent:-.25in'><span dir=LTR>Diagnostic tools</span></p>\r
+ </li>\r
+</ul>\r
+\r
+<p>Documentation</p>\r
+\r
+<ul>\r
+ <li>\r
+ <p style='margin-left:.5in;text-indent:-.25in'><span dir=LTR>User's manual</span></p>\r
+ </li>\r
+ <li>\r
+ <p style='margin-left:.5in;text-indent:-.25in'><span dir=LTR>Release Notes</span></p>\r
+ </li>\r
+</ul>\r
+\r
+<h2> </h2>\r
+<h2><u>Supported Platforms, Operating Systems and Infiniband Hardware</u></h2>\r
+\r
+<h4>CPU architectures</h4>\r
+\r
+<ul>\r
+ <li>\r
+ <p style='margin-left:.5in;text-indent:-.25in'><span dir=LTR>x64 (x86_64, amd64)</span></p>\r
+ </li>\r
+ <li>\r
+ <p style='margin-left:.5in;text-indent:-.25in'><span dir=LTR>x86</span></p>\r
+ </li>\r
+ <li>\r
+ <p style='margin-left:.5in;text-indent:-.25in'><span dir=LTR>IA64</span></p>\r
+ </li>\r
+</ul>\r
+\r
+<h4>Operating Systems</h4>\r
+\r
+<ul>\r
+ <li>\r
+ <p style='margin-left:.5in;text-indent:-.25in'><span dir=LTR>Windows Server 2003</span></p>\r
+ </li>\r
+ <li>\r
+ <p style='margin-left:.5in;text-indent:-.25in'><span dir=LTR>Windows Server 2003 Compute Cluster Edition</span></p>\r
+ </li>\r
+ <li>\r
+ <p style='margin-left:.5in;text-indent:-.25in'><span dir=LTR>Windows XP (SP2)</span></p>\r
+ </li>\r
+</ul>\r
+\r
+<h4><u>Supported HCAs (Host Channel Adapters)</u></h4>\r
+\r
+<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>\r
+\r
+<p>Mellanox (mthca.inf)</p>\r
+<ul>\r
+ <li>\r
+ <p style='margin-left:.5in;text-indent:-.25in'><span dir=LTR>InfiniHost</span></p>\r
+ </li>\r
+ <li>\r
+ <p style='margin-left:.5in;text-indent:-.25in'><span dir=LTR>InfiniHost III Ex (both modes: with memory and MemFree)</span></p>\r
+ </li>\r
+ <li>\r
+ <p style='margin-left:.5in;text-indent:-.25in'><span dir=LTR>InfiniHost III Lx</span></p>\r
+ </li>\r
+</ul>\r
+\r
+<p>Both SDR and DDR mode of the InfiniHost III family are supported.<br>\r
+<br>\r
+For official Firmware (FW) versions and update tools please see:<br>\r
+<a href="http://www.mellanox.com/support/firmware_table.php">http://www.mellanox.com/support/firmware_table.php</a></p>\r
+\r
+</blockquote>\r
+\r
+<h4><u>Supported Switches</u></h4>\r
+\r
+<ul>\r
+ <li>\r
+ <p style='margin-left:.5in;text-indent:-.25in'><span dir="LTR">QLogic</span></p>\r
+ </li>\r
+ <li>\r
+ <p style='margin-left:.5in;text-indent:-.25in'><span dir=LTR>SilverStorm</span></p>\r
+ </li>\r
+ <li>\r
+ <p style='margin-left:.5in;text-indent:-.25in'><span dir="LTR">Voltaire</span></p>\r
+ </li>\r
+ <li>\r
+ <p style='margin-left:.5in;text-indent:-.25in'><span dir=LTR>Flextronics</span></p>\r
+ </li>\r
+</ul>\r
+\r
+<h2><u>Installation Specifics</u></h2>\r
+\r
+<p>All installed files are located in '%SystemDrive%\Program\r
+Files\WinOF'. Installed user mode executables are designed to be run from\r
+a Command Prompt window; see</p>\r
+<blockquote>\r
+ <p>'Start->Program Files->OpenFabrics Alliance-> Windows OpenFabrics-> Command Prompt'.</p>\r
+</blockquote>\r
+\r
+<p>The \91default\92 installation installs \91released/free\92 (not\r
+checked/debug) versions of drivers, libraries and executables.</p>\r
+\r
+<p>A single instance of a subnet manager, opensm.exe, must be\r
+running on a fabric connected node in order for the Infiniband fabric to be\r
+configured and useful; either Windows or Linux opensm work fine.</p>\r
+<p>It is recommended that Opensm be run as a Windows service;\r
+see WinOF Manual for details on opensm as a service.</p>\r
+\r
+<p>Note, the opensm.exe process must continue to run in order\r
+to maintain Infiniband fabric configuration. Should the opensm.exe process die,\r
+restart the service if not automatic or run opensm.exe in order to continue\r
+correct fabric operation.</p>\r
+\r
+<p>For more subnet management information, consult the Windows\r
+OpenFabrics manual.</p>\r
+\r
+<p class=MsoNormal> </p>\r
+\r
+<h2><u>How to Install</u></h2>\r
+\r
+<h3>Requirements</h3>\r
+\r
+<p>Install HCA hardware prior to installing the Windows OpenFabrics Release\r
+package. Upon reboot, ignore/cancel any attempts to install new device hardware.</p>\r
+\r
+<p>If you have previously installed openib-windows, Windows OpenFabrics\r
+packages or vendor supplied Infiniband packages, uninstall them prior to\r
+installing this version of Windows OpenFabrics .</p>\r
+\r
+<p>openib-windows uninstall:</p>\r
+\r
+<ol start=1 type=1>\r
+ <li class=MsoNormal>Disable any Local Area Connections which are bound to the\r
+ IPoIB network adapter.</li>\r
+ <li class=MsoNormal>Uninstall the IPoIB driver - My\r
+ computer->Manage->Devices->Network Adapters->IPoIB*</li>\r
+ <li class=MsoNormal>Uninstall the Infiniband HCA device; don't forget the \r
+ System Device-> InfiniBand Fabric</li>\r
+</ol>\r
+\r
+<p> For an existing Windows OpenFabrics uninstall<br>\r
+ Control Panel -> Add or Remove Programs-> Windows\r
+OpenFabrics->Remove.</p>\r
+\r
+<p>REBOOT</p>\r
+\r
+<p>Upon reboot, cancel the 'Found New Hardware Wizard' attempt to install \r
+drivers for newly discovered PCI device.</p>\r
+<p>'My Computer->Manage->Device Manager' should display\r
+'?Other Devices->?PCI device' which is your HCA device.</p>\r
+\r
+<h3>Install</h3>\r
+\r
+<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>\r
+\r
+<p>From a login with administrator privileges, double-click the\r
+WinOF_arch_setup.exe file to begin the Windows OpenFabrics installation; \r
+where '_arch_' can be (_x64_ for amd64 or Intel EMT64 systems, _x86_ for x86\r
+compatible systems or _ia64_ for Intel IA64 systems). </p>\r
+\r
+<p>Follow the instructions.<br>\r
+Answer 'yes' or 'Continue' to any notifier windows which reference non-signed \r
+driver installation.</p>\r
+<p> <font size="4">**** WARNING ****</font></p>\r
+<blockquote>\r
+ <p>Should any 'Welcome to the Found New Hardware Wizard' windows popup after the install has \r
+started, IGNORE them as they will go away. Under <font color="#FF0000">NO</font> \r
+ circumstances should you interact with the misdirected 'Found New Hardware \r
+ Wizard' popup windows during an install; doing so will cause the install to fail - just ignore \r
+ them until such a time that they no longer appear - we are working on a fix!</p>\r
+ <p>You do need to answer 'Yes' or 'Continue' to those notifier windows which \r
+ reference non-signed driver installation.<br>\r
+ </p>\r
+</blockquote>\r
+\r
+<h4>Install types:</h4>\r
+\r
+<h4>Minimal</h4>\r
+\r
+<ul type=disc>\r
+ <li class=MsoNormal>Basics - Release Notes, Manual, Command Window</li>\r
+ <li class=MsoNormal>Tools - Subnet Management [opensm], Performance &\r
+ Diagnostic utilities</li>\r
+ <li class=MsoNormal>mthca HCA driver</li>\r
+ <li class=MsoNormal>IB fabric driver</li>\r
+</ul>\r
+\r
+<h4>Typical</h4>\r
+\r
+<ul style='margin-top:0in' type=disc>\r
+ <li class=MsoNormal>Minimal install 'plus'</li>\r
+</ul>\r
+\r
+<ul style='margin-top:0in' type=disc>\r
+ <li class=MsoNormal>IPoIB - Internet Protocols over InfiniBand (aka,\r
+ ftp/telnet/... over IB fabric).</li>\r
+ <li class=MsoNormal>DAPL - DAT and uDAPL support</li>\r
+</ul>\r
+\r
+<h4>Custom</h4>\r
+\r
+<ul type=disc>\r
+ <li class=MsoNormal>Basics - Release Notes, Manual, Command Window</li>\r
+ <li class=MsoNormal>Tools - Subnet Management [opensm], Performance &\r
+ Diagnostic utilities</li>\r
+ <li class=MsoNormal>mthca HCA driver</li>\r
+ <li class=MsoNormal>IB fabric driver</li>\r
+ <li class=MsoNormal>Optional:<br> IPoIB<br> WSD - Winsock Direct Provider, service started; see \r
+ installsp.exe -l<br> VNIC - Virtual Ethernet device over Infiniband<br> SRP - SCSI over RDMA Protocol<br> DAPL<br>\r
+ OpenSM - InfiniBand Subnet Management as a Windows Service</li>\r
+</ul>\r
+\r
+</blockquote>\r
+\r
+<h2><u>Trouble Shooting</u></h2>\r
+\r
+<h3>Correct Installation Validation</h3>\r
+<p>From the Device Manager you should fine the following devices:</p>\r
+<ul>\r
+ <li>InfiniBand Host Channel Adapters -> Infinihost</li>\r
+ <li>System Devices -> InfiniBand Fabric</li>\r
+ <li>Network Adapters -> OpenIB IPoIB Adapter (an Instance per HCA port).</li>\r
+</ul>\r
+<blockquote>\r
+ <h4>Validation Test</h4>\r
+ <p>Open a WinOF command window</p>\r
+ <ol>\r
+ <li>Start->Program Files->OpenFabrics Alliance->Windows OpenFabrics -> Command \r
+Window</li>\r
+ <li>run vstat.exe to view HCA configuration.</li>\r
+ <li>If IPoIB is installed (Device Manager->Network Adapters) ping another node on the InfiniBand fabric 'ping a.b.c.d'<br>\r
+ </li>\r
+ </ol>\r
+</blockquote>\r
+<h3>OpenIB Subnet Management as a Windows Service</h3>\r
+<p>InfiniBand subnet management is installed by default, although it is NOT \r
+enabled by default. There are two ways to enable OpenSM on a node:</p>\r
+<ol>\r
+ <li>Manual - In a command window run 'opensm.exe', cmd-window/opensm.exe \r
+ must remain active in order for the fabric to remain configured.</li>\r
+ <li>Start OpenSM as a Windows service:<br>\r
+ a) Request a 'Custom' install, selecting the OpenSM install feature.<br>\r
+ b) Manually create the OpenSM service:<br>\r
+ 1) sc create opensm binPath= "<a href="file:///C:/Program%20Files/WinOF/opensm.exe%20--service">C:\Program \r
+ Files\WinOF\opensm.exe --service</a>" start= auto DisplayName= "IB Subnet \r
+ Manager"<br>\r
+ 2) sc start opensm<br>\r
+ 3) sc qc opensm \r
+ rem Query service description, 'sc stop opensm' Stops the opensm \r
+ service</li>\r
+</ol>\r
+<p>WARNING - only 'one' OpenSM per IB fabric.</p>\r
+<p> </p>\r
+<h3>Local Network Adapter Ordering</h3>\r
+<p>Local Network Adapter ordering, which results in the IP address advertised \r
+for the system, can be managed from<br> 'My Network Places-> Advanced Tab-> Advanced settings'<br>From the Advanced settings display the ordering Local Network Adapters can be \r
+reordered after the IPoIB Local Network Adapters have been installed. Please \r
+check for your desired adapter ordering.<br> </p>\r
+<h3>Which WinOF release is installed?</h3>\r
+<p>1) Start->Programs->OpenFabrics Alliance->Windows OpenFabrics->Release Notes \r
+(2nd Line)<br>2) Driver confirmation:<br> Query My Computer-> Manage-> Device Manager-> Network \r
+Adapters-> OpenIB IPoIB Adapter-> Properties-> Driver-> Details<br> The subversion (svn) revision number will be listed under \r
+'Driver Version'. The svn revision number will match what's listed in the \r
+release<br> notes.</p>\r
+<p>WinOF 1.0 is based on svn revision 614.</p>\r
+<h3> </h3>\r
+<h3>DAT & uDAPL Configuration</h3>\r
+<p align="left">In order for DAT/uDAPL programs to execute correctly, the 'dat.dll' \r
+file must be present in the current directory,<br>\r
+%SystemRoot%\ or in the library search path.</p>\r
+<p align="left">The default WinOF installation places the file dat.dll in '%SystemRoot%' \r
+folder (a.k.a. \Windows).</p>\r
+<p align="left">The DAPL configuration file by default is defined as \r
+'%SystemDrive%\DAT\dat.conf'. This default specification can be overriden by use \r
+of the environment variable DAT_OVERRIDE. Such that 'DAT_OVERRIDE=D:\MyDAT\test.conf' \r
+would be a valid override specification.</p>\r
+<p align="left">Within the dat.conf file, the DAPL library specification can be \r
+located as the 5th whitespace separated line argument. By default the DAPL \r
+library file is installed as %SystemRoot%\dapl.dll'.</p>\r
+<p align="left">Should you choose to relocated the DAPL library file to a path \r
+where whitespace appears in the full library path specification, then the full \r
+library file specification must be contained within double-quotes. A side effect \r
+of the double-quotes is the library specification is treated as a Windows string \r
+which implies the '\' (backslash character) is treated as an 'escape' character. \r
+Hence all backslashes in the library path must be duplicated when enclosed in \r
+double-quotes (e.g., "C:\\Programs Files\\WinOF\\dapl.dll").</p>\r
+<p align="left">A sample dat.conf file is installed as '\Program Files\WinOF\dat.conf \r
+'.<br>\r
+After the WinOF installation, move the \Program Files\WinOF\dat.conf file to the \r
+default DAT configuration file location<br>\r
+'%SystemDrive%\DAT\dat.conf'. In order to preserve existing installations, the \r
+dat.conf file is not automatically installed in it's default location.</p>\r
+<p> </p>\r
+<h3><u>Uninstall</u></h3>\r
+\r
+<p>Use the Add Remove Programs from the control panel to remove the Windows\r
+OpenFabrics installation.</p>\r
+\r
+<h2><u>Known Issues</u></h2>\r
+\r
+<p class=MsoPlainText><span style='font-size:12.0pt'>TBD</span></p>\r
+\r
+</div>\r
+\r
+</body>\r
+\r
+</html>\r
--- /dev/null
+\r
+\r
+BOM (Bill of Materials) Windows OpenFabrics Release 1.0 (x64)\r
+\r
+Binaries from http://openib.tc.cornell.edu/downloads/binaries/1.0.0.614/\r
+\r
+HCA firmware management tools omitted as they are vendor specific and available\r
+from the respective vendors.\r
+\r
+Where/which files are installed from a single file installer (WinOF_1-0_x64.exe)\r
+\r
+\r
+%SystemDrive%\Program Files\WinOF\\r
+\r
+ Manual.htm\r
+ Release_Notes.htm\r
+ Command Window <shortcut> - starts in \Program Files\WinOF\r
+ openfabrics.gif\r
+ openfabrics.ico\r
+\r
+ # DAPL files\r
+ dapltest.exe\r
+ dapl32.dll\r
+ dapl32d.dll\r
+ dapld.dll\r
+ dat32.dll\r
+ dat32d.dll\r
+ datd.dll\r
+ dat.conf\r
+\r
+\r
+ # Diagnostics & performance tests\r
+ cmtest.exe\r
+ ib_limits.exe\r
+ PrintIP.exe\r
+ vstat.exe\r
+\r
+ ib_send_bw.exe\r
+ ib_send_lat.exe\r
+ ib_write_bw.exe\r
+ ib_write_lat.exe\r
+ ttcp.exe\r
+\r
+ # IB subnet management\r
+ opensm.exe\r
+ osmtest.exe\r
+ ibtrapgen.exe\r
+\r
+ # Infiniband Stack files\r
+ mthca\\r
+ mthca.inf\r
+ IbInstaller.dll\r
+ mthca.sys\r
+ mthcau.dll\r
+ mthcaud.dll\r
+ mthca32.dll\r
+ mthca32d.dll \r
+ ib_bus.inf\r
+ ibbus.sys\r
+ ibiou.sys\r
+ ibal.dll\r
+ ibald.dll\r
+ complib.dll\r
+ complibd.dll\r
+ cl32.dll\r
+ cl32d.dll\r
+ ibal32.dll\r
+ ibal32d.dll\r
+ net\\r
+ netipoib.inf\r
+ ipoib.sys\r
+ ibwsd32.dll\r
+ ibwsd.dll\r
+ installsp.exe\r
+\r
+ VNIC\\r
+ netvnic.inf\r
+ netvnic.sys\r
+\r
+ SRP\\r
+ ib_srp.inf\r
+ amd64\\r
+ ibsrp.sys\r
+\r
+\r
+%SystemRoot%\dapl.dll\r
+%SystemRoot%\dat.dll\r
+\r
+%SystemRoot%\system32\mthcau.dll\r
+%SystemRoot%\system32\mthcaud.dll\r
+%SystemRoot%\system32\ibinstaller.dll\r
+%SystemRoot%\system32\ibal.dll\r
+%SystemRoot%\system32\ibald.dll\r
+%SystemRoot%\system32\complib.dll\r
+%SystemRoot%\system32\complibd.dll\r
+%SystemRoot%\system32\ibwsd.dll\r
+\r
+%SystemRoot%\system32\drivers\ibbus.sys\r
+%SystemRoot%\system32\drivers\mthca.sys\r
+%SystemRoot%\system32\drivers\ibiou.sys\r
+%SystemRoot%\system32\drivers\ipoib.sys\r
+%SystemRoot%\system32\drivers\netvnic.sys\r
+%SystemRoot%\system32\drivers\ibsrp.sys\r
+\r
+%SystemRoot%\syswow64\ibal.dll WinOF\mthca\ibal32.dll\r
+%SystemRoot%\syswow64\ibald.dll WinOF\mthca\ibal32d.dll\r
+%SystemRoot%\syswow64\mthcau.dll WinOF\mthca\mthca32.dll\r
+%SystemRoot%\syswow64\mthcaud.dll WinOF\mthca\mthca32d.dll\r
+%SystemRoot%\syswow64\complib.dll WinOF\mthca\cl32.dll\r
+%SystemRoot%\syswow64\complibd.dll WinOF\mthca\cl32d.dll\r
+%SystemRoot%\syswow64\ibwsd.dll WinOF\mthca\ibwsd32.dll\r
+\r
+%SystemRoot%\inf\ renamed to oem*.inf/pnf\r
+ mthca.inf\r
+ ib_bus.inf\r
+ netipoib.inf\r
+ netvnic.inf\r
+ ibsrp.inf\r
+\r
--- /dev/null
+//===========================================================================\r
+//\r
+// File Name: Setup.rul\r
+//\r
+// Description: Blank setup main script file\r
+//\r
+// Comments: Blank setup is an empty setup project. If you want to\r
+// create a new project via. step-by step instructions use the\r
+// Project Assistant.\r
+//\r
+//===========================================================================\r
+\r
+// Included header files ----------------------------------------------------\r
+#include "ifx.h"\r
+\r
+// Note: In order to have your InstallScript function executed as a custom\r
+// action by the Windows Installer, it must be prototyped as an \r
+// entry-point function.\r
+\r
+// The keyword export identifies MyFunction() as an entry-point function.\r
+// The argument it accepts must be a handle to the Installer database.\r
+ \r
+/* export prototype MyFunction(HWND); */\r
--- /dev/null
+***** External Functions *****\r
+1 AdminAskPath iswi.obl(AdminAskPath.obs)\r
+2 AllFeaturesDeselected iswi.obl(CompHelperFuncs.obs)\r
+3 CHECK_RETURN iswi.obl(ErrHandler.obs)\r
+4 ChangeDirectory isrt.obl(Files.obs)\r
+5 CloseFile isrt.obl(Files.obs)\r
+6 CmdGetHwndDlg isrt.obl(CustomDialog.obs)\r
+7 CoCreateObject isrt.obl(Misc.obs)\r
+8 ComponentCompareSizeRequired isrt.obl(component.obs)\r
+9 ComponentErrorInfo isrt.obl(component.obs)\r
+10 ComponentGetData isrt.obl(component.obs)\r
+11 ComponentGetTotalCost isrt.obl(component.obs)\r
+12 ComponentIsItemSelected isrt.obl(component.obs)\r
+13 ComponentListItems isrt.obl(component.obs)\r
+14 ComponentReinstall isrt.obl(component.obs)\r
+15 ComponentRemoveAll isrt.obl(component.obs)\r
+16 ComponentSaveTarget isrt.obl(component.obs)\r
+17 ComponentSelectItem isrt.obl(component.obs)\r
+18 ComponentTransferData isrt.obl(component.obs)\r
+19 ComponentTreeInit isrt.obl(Dialogs.obs)\r
+20 CreateDir isrt.obl(Files.obs)\r
+21 CreateFile isrt.obl(Files.obs)\r
+22 CreateInstallationInfo isrt.obl(Registry.obs)\r
+23 CtrlGetNotificationCode isrt.obl(CustomDialog.obs)\r
+24 CtrlGetState isrt.obl(CustomDialog.obs)\r
+25 CtrlGetSubCommand isrt.obl(CustomDialog.obs)\r
+26 CtrlGetText isrt.obl(CustomDialog.obs)\r
+27 CtrlSelectText isrt.obl(CustomDialog.obs)\r
+28 CtrlSetList isrt.obl(CustomDialog.obs)\r
+29 CtrlSetMLEText isrt.obl(CustomDialog.obs)\r
+30 CtrlSetState isrt.obl(CustomDialog.obs)\r
+31 CtrlSetText isrt.obl(CustomDialog.obs)\r
+32 DefineDialog isrt.obl(CustomDialog.obs)\r
+33 DeleteFile isrt.obl(Files.obs)\r
+34 DeleteSingleFile isrt.obl(Files.obs)\r
+35 DialogSetDefaultFont isrt.obl(Dialogs.obs)\r
+36 DialogSetFont isrt.obl(Dialogs.obs)\r
+37 DialogSetInfo isrt.obl(Dialogs.obs)\r
+38 Disable isrt.obl(Enable.obs)\r
+39 DllSizeOf isrt.obl(Str.obs)\r
+40 Do isrt.obl(Misc.obs)\r
+41 Enable isrt.obl(Enable.obs)\r
+42 EndCurrentDialog isrt.obl(Dialogs.obs)\r
+43 EndDialog isrt.obl(CustomDialog.obs)\r
+44 ExistsDir isrt.obl(Files.obs)\r
+45 EzDefineDialog isrt.obl(CustomDialog.obs)\r
+46 FeatureCompareSizeRequired iswi.obl(FeatureConv.obs)\r
+47 FeatureErrorInfo iswi.obl(ComponentConv.obs)\r
+48 FeatureFilterLanguage iswi.obl(ComponentConv.obs)\r
+49 FeatureFilterOS iswi.obl(ComponentConv.obs)\r
+50 FeatureGetData iswi.obl(ComponentConv.obs)\r
+51 FeatureGetTotalCost iswi.obl(FeatureConv.obs)\r
+52 FeatureIsItemSelected iswi.obl(ComponentConv.obs)\r
+53 FeatureListItems iswi.obl(ComponentConv.obs)\r
+54 FeatureReinstall iswi.obl(ComponentConv.obs)\r
+55 FeatureRemoveAll iswi.obl(ComponentConv.obs)\r
+56 FeatureSaveTarget iswi.obl(FeatureConv.obs)\r
+57 FeatureSelectItem iswi.obl(ComponentConv.obs)\r
+58 FeatureSetupTypeSet iswi.obl(ComponentConv.obs)\r
+59 FeatureStandardSetupTypeSet iswi.obl(FeatureConv.obs)\r
+60 FeatureTransferData iswi.obl(ComponentConv.obs)\r
+61 FeaturesInstalled iswi.obl(FileTransferFuncsConv.obs)\r
+62 FeaturesInstalling iswi.obl(FileTransferFuncsConv.obs)\r
+63 FindFile isrt.obl(Files.obs)\r
+64 FindWindow isrt.obl(Misc.obs)\r
+65 FixUpCmdLine iswi.obl(HelperFuncs.obs)\r
+66 FixUpCmdLinePostReboot iswi.obl(HelperFuncs.obs)\r
+67 FormatMessage isrt.obl(Misc.obs)\r
+68 GDI32.CreateRectRgn Setup.obs\r
+69 GDI32.GetDeviceCaps Setup.obs\r
+70 GeneratedMSIScript iswi.obl(FileTransferFuncsConv.obs)\r
+71 GeneratingMSIScript iswi.obl(FileTransferFuncsConv.obs)\r
+72 GetBasicMSI isrt.obl(SysVars.obs)\r
+73 GetBillboard isrt.obl(SysVars.obs)\r
+74 GetCommonFiles isrt.obl(SysVars.obs)\r
+75 GetComponentsFeatures iswi.obl(CompHelperFuncs.obs)\r
+76 GetCurrentDialogName isrt.obl(Dialogs.obs)\r
+77 GetCurrentDir isrt.obl(Files.obs)\r
+78 GetDialogTitle isrt.obl(Dialogs.obs)\r
+79 GetDir isrt.obl(Str.obs)\r
+80 GetDisk isrt.obl(Str.obs)\r
+81 GetDisk1SetupExeName isrt.obl(SysVars.obs)\r
+82 GetDiskSpace isrt.obl(GSI.obs)\r
+83 GetDiskSpaceEx isrt.obl(GSI.obs)\r
+84 GetEnabledIServices isrt.obl(SysVars.obs)\r
+85 GetExtents isrt.obl(GSI.obs)\r
+86 GetFolderApplications isrt.obl(SysVars.obs)\r
+87 GetFolderApplications64 isrt.obl(SysVars.obs)\r
+88 GetISRes isrt.obl(SysVars.obs)\r
+89 GetKeyPathWinCurrVerAuto isrt.obl(SysVars.obs)\r
+90 GetMSIFeatureName iswi.obl(CompHelperFuncs.obs)\r
+91 GetMaintenance iswi.obl(ISWiInit.obs)\r
+92 GetMsiFeaturePath iswi.obl(CompHelperFuncs.obs)\r
+93 GetMsiNameFromAliasTable iswi.obl(CompHelperFuncs.obs)\r
+94 GetOpenFileMode isrt.obl(Files.obs)\r
+95 GetPackageLocation isrt.obl(SysVars.obs)\r
+96 GetProductGUID iswi.obl(ISWiInit.obs)\r
+97 GetProfSectionKeyCount isrt.obl(Profile.obs)\r
+98 GetProfString isrt.obl(Profile.obs)\r
+99 GetProfStringList isrt.obl(Profile.obs)\r
+100 GetRemoveAllMode isrt.obl(SysVars.obs)\r
+101 GetRemoveOnly isrt.obl(SysVars.obs)\r
+102 GetSelectedLanguage isrt.obl(SysVars.obs)\r
+103 GetSelectedTreeComponent isrt.obl(CmptView.obs)\r
+104 GetSupportDir isrt.obl(SysVars.obs)\r
+105 GetSystemInfo isrt.obl(GSI.obs)\r
+106 GetTempFolder isrt.obl(SysVars.obs)\r
+107 GetUpdateStatus iswi.obl(HelperFuncs.obs)\r
+108 GetUpdateStatusReboot iswi.obl(HelperFuncs.obs)\r
+109 GetUserSelectableAuto isrt.obl(SysVars.obs)\r
+110 GetValidDrivesList isrt.obl(GSI.obs)\r
+111 GetWinDir isrt.obl(SysVars.obs)\r
+112 GetWinSysDir isrt.obl(SysVars.obs)\r
+113 GetWindowHandle iswi.obl(MiscConv.obs)\r
+114 HIWORD isrt.obl(Misc.obs)\r
+115 ISDeterminePlatform isrt.obl(OsInfo.obs)\r
+116 ISMIF32.InstallStatusMIF isrt.obl(MIF.obs)\r
+117 ISRT.ComponentViewSetInfoEx isrt.obl(Dialogs.obs)\r
+118 ISRT.EnableHourGlass isrt.obl(Enable.obs)\r
+119 ISRT.GetCPUType isrt.obl(GSI.obs)\r
+120 ISRT.GetFontSub isrt.obl(Dialogs.obs)\r
+121 ISRT.GetHandle Setup.obs\r
+122 ISRT.GetPorts isrt.obl(GSI.obs)\r
+123 ISRT.IsEmpty Setup.obs\r
+124 ISRT.IsNTAdmin isrt.obl(Is.obs)\r
+125 ISRT.IsObject Setup.obs\r
+126 ISRT.IsPowerUser isrt.obl(Is.obs)\r
+127 ISRT.LangLoadString isrt.obl(SDINT.obs)\r
+128 ISRT.MessageBeepP Setup.obs\r
+129 ISRT.PathCompactPathPixel isrt.obl(CustomDialog.obs)\r
+130 ISRT.PathGetDir isrt.obl(Str.obs)\r
+131 ISRT.PathGetDrive isrt.obl(Str.obs)\r
+132 ISRT.PathGetFile isrt.obl(Files.obs)\r
+133 ISRT.PathGetFileExt isrt.obl(Str.obs)\r
+134 ISRT.PathGetFileName isrt.obl(Str.obs)\r
+135 ISRT.PathGetLongFromShort isrt.obl(Str.obs)\r
+136 ISRT.PathGetPath isrt.obl(Str.obs)\r
+137 ISRT.PathGetSpecialFolder isrt.obl(SysVars.obs)\r
+138 ISRT.PathIsValidSyntax isrt.obl(Is.obs)\r
+139 ISRT._BrowseForFolder isrt.obl(SelectDir.obs)\r
+140 ISRT._CloseFile isrt.obl(Files.obs)\r
+141 ISRT._CmdGetHwndDlg isrt.obl(CustomDialog.obs)\r
+142 ISRT._ComponentCompareSizeRequired iswi.obl(FeatureConv.obs)\r
+143 ISRT._ComponentGetTotalCost iswi.obl(FeatureConv.obs)\r
+144 ISRT._ComponentGetTotalCostEx isrt.obl(SdComponentTreeDlg.obs)\r
+145 ISRT._ComponentSaveTarget iswi.obl(FeatureConv.obs)\r
+146 ISRT._CreateDir isrt.obl(Files.obs)\r
+147 ISRT._CreateObject isrt.obl(Misc.obs)\r
+148 ISRT._CtrlGetNotificationCode isrt.obl(CustomDialog.obs)\r
+149 ISRT._CtrlGetSubCommand isrt.obl(CustomDialog.obs)\r
+150 ISRT._CtrlSetMLERichText isrt.obl(CustomDialog.obs)\r
+151 ISRT._DefineDialog isrt.obl(CustomDialog.obs)\r
+152 ISRT._DialogSetFont isrt.obl(Dialogs.obs)\r
+153 ISRT._DisableStatus isrt.obl(Enable.obs)\r
+154 ISRT._DoSprintf iswi.obl(HelperFuncs.obs)\r
+155 ISRT._EnableDialogCache isrt.obl(Enable.obs)\r
+156 ISRT._EnablePrevDialog iswi.obl(AdminAskPath.obs)\r
+157 ISRT._EnableSkins isrt.obl(Enable.obs)\r
+158 ISRT._EnableStatus isrt.obl(Enable.obs)\r
+159 ISRT._EnableWow64FsRedirection isrt.obl(Enable.obs)\r
+160 ISRT._EndDialog isrt.obl(CustomDialog.obs)\r
+161 ISRT._ExistsDir isrt.obl(Files.obs)\r
+162 ISRT._ExistsFile isrt.obl(Files.obs)\r
+163 ISRT._GetCurrentDialogName isrt.obl(Dialogs.obs)\r
+164 ISRT._GetDiskSpaceEx isrt.obl(GSI.obs)\r
+165 ISRT._GetDiskSpaceExEx isrt.obl(SdComponentTreeDlg.obs)\r
+166 ISRT._GetGlobalMemorySize isrt.obl(GSI.obs)\r
+167 ISRT._GetProcessorInfo isrt.obl(OsInfo.obs)\r
+168 ISRT._GetSelectedTreeComponent isrt.obl(CmptView.obs)\r
+169 ISRT._GetSupportDir isrt.obl(SysVars.obs)\r
+170 ISRT._IsFontTypefaceNameAvailable isrt.obl(Is.obs)\r
+171 ISRT._IsSkinLoaded isrt.obl(Is.obs)\r
+172 ISRT._IsWindowsME isrt.obl(GSI.obs)\r
+173 ISRT._IsWow64 isrt.obl(OsInfo.obs)\r
+174 ISRT._ListAddItem isrt.obl(scrlist.obs)\r
+175 ISRT._ListAddString isrt.obl(scrlist.obs)\r
+176 ISRT._ListCount isrt.obl(scrlist.obs)\r
+177 ISRT._ListCreate isrt.obl(scrlist.obs)\r
+178 ISRT._ListCurrentString isrt.obl(scrlist.obs)\r
+179 ISRT._ListDeleteItem isrt.obl(scrlist.obs)\r
+180 ISRT._ListDeleteString isrt.obl(scrlist.obs)\r
+181 ISRT._ListDestroy isrt.obl(scrlist.obs)\r
+182 ISRT._ListFindString isrt.obl(scrlist.obs)\r
+183 ISRT._ListGetFirstItem isrt.obl(scrlist.obs)\r
+184 ISRT._ListGetFirstString isrt.obl(scrlist.obs)\r
+185 ISRT._ListGetNextItem isrt.obl(scrlist.obs)\r
+186 ISRT._ListGetNextString isrt.obl(scrlist.obs)\r
+187 ISRT._ListGetType isrt.obl(scrlist.obs)\r
+188 ISRT._ListSetIndex isrt.obl(scrlist.obs)\r
+189 ISRT._MediaGetInfo iswi.obl(FeatureConv.obs)\r
+190 ISRT._OpenFile isrt.obl(Files.obs)\r
+191 ISRT._Preprogram Setup.obs\r
+192 ISRT._RegCreateKey isrt.obl(Registry.obs)\r
+193 ISRT._RegEnableTextSubs isrt.obl(Enable.obs)\r
+194 ISRT._RegEnum isrt.obl(Registry.obs)\r
+195 ISRT._RegGetOptions isrt.obl(SysVars.obs)\r
+196 ISRT._RegIsRemoteRegConnected isrt.obl(Is.obs)\r
+197 ISRT._RegQueryKeyBinaryValue isrt.obl(Registry.obs)\r
+198 ISRT._RegQueryKeyValue isrt.obl(Registry.obs)\r
+199 ISRT._RegSetKeyBinaryValue isrt.obl(Registry.obs)\r
+200 ISRT._RegSetKeyValue isrt.obl(Registry.obs)\r
+201 ISRT._RegSetOptions isrt.obl(SysVars.obs)\r
+202 ISRT._ReleaseDialog isrt.obl(CustomDialog.obs)\r
+203 ISRT._SdShowMsg isrt.obl(SDSMSG.obs)\r
+204 ISRT._SetAltMainImage isrt.obl(Dialogs.obs)\r
+205 ISRT._SetDisplayEffect isrt.obl(ui.obs)\r
+206 ISRT._SetSilentSdShowMsg isrt.obl(Enable.obs)\r
+207 ISRT._SetTitle isrt.obl(ui.obs)\r
+208 ISRT._SetupTraceWrite isrt.obl(Misc.obs)\r
+209 ISRT._TreeViewCreate isrt.obl(CmptView.obs)\r
+210 ISRT._WaitOnDialog isrt.obl(CustomDialog.obs)\r
+211 ISRT._WriteLine isrt.obl(Files.obs)\r
+212 ISRT.__CreateObjectContext isrt.obl(ISRTInit.obs)\r
+213 ISRT.__GetCmdLineOptions isrt.obl(ISRTInit.obs)\r
+214 ISRT.__GetContextGUID isrt.obl(ISRTInit.obs)\r
+215 ISRT.__GetEnabledIServices isrt.obl(SysVars.obs)\r
+216 ISRT.__GetFileRegistrar isrt.obl(ISRTInit.obs)\r
+217 ISRT.__GetISMSIStringTableObj iswi.obl(ISWiInit.obs)\r
+218 ISRT.__GetInfo isrt.obl(ISRTInit.obs)\r
+219 ISRT.__GetInstallGuid isrt.obl(SysVars.obs)\r
+220 ISRT.__GetLogDB isrt.obl(ISRTInit.obs)\r
+221 ISRT.__GetMainWindow Setup.obs\r
+222 ISRT.__GetMaintOption isrt.obl(SysVars.obs)\r
+223 ISRT.__GetMaintenanceMode isrt.obl(SysVars.obs)\r
+224 ISRT.__GetObjects isrt.obl(ISRTInit.obs)\r
+225 ISRT.__GetProductGuid isrt.obl(SysVars.obs)\r
+226 ISRT.__GetProgress Setup.obs\r
+227 ISRT.__GetReboot isrt.obl(ISRTInit.obs)\r
+228 ISRT.__GetRemoveAllMode isrt.obl(SysVars.obs)\r
+229 ISRT.__GetTextSub isrt.obl(ISRTInit.obs)\r
+230 ISRT.__GetUpdateMode isrt.obl(SysVars.obs)\r
+231 ISRT.__PutEnabledIServices isrt.obl(Enable.obs)\r
+232 ISRT.__ReleaseObjectContext isrt.obl(ISRTInit.obs)\r
+233 ISRT.__RestoreMainLog isrt.obl(ISRTInit.obs)\r
+234 ISRT.__RestoreMainLogEx isrt.obl(ISRTInit.obs)\r
+235 ISRT.__SetComponentLog isrt.obl(ISRTInit.obs)\r
+236 ISRT.__SetUpdateMode isrt.obl(SysVars.obs)\r
+237 ISRTHandleScriptException isrt.obl(Misc.obs)\r
+238 ISRTPreprogram isrt.obl(Driver.obs)\r
+239 ISWIOnAppSearch iswi.obl(DriverConv.obs)\r
+240 ISWIOnCCPSearch iswi.obl(DriverConv.obs)\r
+241 ISWIOnExitInstall iswi.obl(DriverConv.obs)\r
+242 ISWIOnFirstUIAfter iswi.obl(DriverConv.obs)\r
+243 ISWIOnFirstUIBefore iswi.obl(DriverConv.obs)\r
+244 ISWIOnInitInstall iswi.obl(DriverConv.obs)\r
+245 ISWIOnMaintUIAfter iswi.obl(DriverConv.obs)\r
+246 ISWIOnMaintUIBefore iswi.obl(DriverConv.obs)\r
+247 ISWIOnMoveData iswi.obl(DriverConv.obs)\r
+248 ISWIOnResumeUIAfter iswi.obl(DriverConv.obs)\r
+249 ISWIOnResumeUIBefore iswi.obl(DriverConv.obs)\r
+250 ISWIPCRestoreAfter iswi.obl(DriverConv.obs)\r
+251 ISWIPCRestoreBefore iswi.obl(DriverConv.obs)\r
+252 ISWIPostprogram iswi.obl(DriverConv.obs)\r
+253 ISWIPreprogram iswi.obl(DriverConv.obs)\r
+254 InstallFilesActionAfter iswi.obl(FileTransferFuncsConv.obs)\r
+255 InstallFilesActionBefore iswi.obl(FileTransferFuncsConv.obs)\r
+256 Is isrt.obl(Is.obs)\r
+257 IsTestSetup iswi.obl(HelperFuncs.obs)\r
+258 KERNEL.GetModuleHandle Setup.obs\r
+259 KERNEL32.CloseHandle Setup.obs\r
+260 KERNEL32.CreateFileA Setup.obs\r
+261 KERNEL32.CreateProcess Setup.obs\r
+262 KERNEL32.DeleteFileA Setup.obs\r
+263 KERNEL32.FindClose Setup.obs\r
+264 KERNEL32.FindFirstFileA Setup.obs\r
+265 KERNEL32.FindNextFileA Setup.obs\r
+266 KERNEL32.FormatMessageA Setup.obs\r
+267 KERNEL32.FreeLibrary Setup.obs\r
+268 KERNEL32.GetCurrentDirectoryA Setup.obs\r
+269 KERNEL32.GetDriveType Setup.obs\r
+270 KERNEL32.GetExitCodeProcess Setup.obs\r
+271 KERNEL32.GetFileAttributesA Setup.obs\r
+272 KERNEL32.GetLocalTime Setup.obs\r
+273 KERNEL32.GetLocaleInfo Setup.obs\r
+274 KERNEL32.GetPrivateProfileSectionA Setup.obs\r
+275 KERNEL32.GetPrivateProfileString Setup.obs\r
+276 KERNEL32.GetPrivateProfileStringA Setup.obs\r
+277 KERNEL32.GetProcAddress Setup.obs\r
+278 KERNEL32.GetProfileStringA Setup.obs\r
+279 KERNEL32.GetShortPathNameA Setup.obs\r
+280 KERNEL32.GetSystemDefaultLCID Setup.obs\r
+281 KERNEL32.GetSystemDefaultLangID Setup.obs\r
+282 KERNEL32.GetSystemDefaultUILanguage Setup.obs\r
+283 KERNEL32.GetTickCount Setup.obs\r
+284 KERNEL32.GetUserDefaultLangID Setup.obs\r
+285 KERNEL32.GetVersion Setup.obs\r
+286 KERNEL32.GetVersionEx Setup.obs\r
+287 KERNEL32.GetVolumeInformation Setup.obs\r
+288 KERNEL32.GetWindowsDirectory Setup.obs\r
+289 KERNEL32.LoadLibraryA Setup.obs\r
+290 KERNEL32.SetCurrentDirectoryA Setup.obs\r
+291 KERNEL32.SetFileAttributesA Setup.obs\r
+292 KERNEL32.WritePrivateProfileString Setup.obs\r
+293 KERNEL32.lstrlen Setup.obs\r
+294 Kernel32.GetModuleHandleA iswi.obl(ComponentConv.obs)\r
+295 LOWORD isrt.obl(Misc.obs)\r
+296 LaunchAgent iswi.obl(HelperFuncs.obs)\r
+297 LaunchApp isrt.obl(Extend.obs)\r
+298 LaunchAppAndWait isrt.obl(Extend.obs)\r
+299 LaunchAppAndWaitInitStartupInfo isrt.obl(Extend.obs)\r
+300 ListAddItem isrt.obl(scrlist.obs)\r
+301 ListAddString isrt.obl(scrlist.obs)\r
+302 ListCount isrt.obl(scrlist.obs)\r
+303 ListCreate isrt.obl(scrlist.obs)\r
+304 ListCurrentString isrt.obl(scrlist.obs)\r
+305 ListDeleteItem isrt.obl(scrlist.obs)\r
+306 ListDeleteString isrt.obl(scrlist.obs)\r
+307 ListDestroy isrt.obl(scrlist.obs)\r
+308 ListFindString isrt.obl(scrlist.obs)\r
+309 ListGetFirstItem isrt.obl(scrlist.obs)\r
+310 ListGetFirstString isrt.obl(scrlist.obs)\r
+311 ListGetLastString iswi.obl(CompHelperFuncs.obs)\r
+312 ListGetNextItem isrt.obl(scrlist.obs)\r
+313 ListGetNextString isrt.obl(scrlist.obs)\r
+314 ListGetType isrt.obl(scrlist.obs)\r
+315 ListSetIndex isrt.obl(scrlist.obs)\r
+316 ListValid isrt.obl(scrlist.obs)\r
+317 ListValidType isrt.obl(scrlist.obs)\r
+318 LoadStringFromStringTable iswi.obl(ISWiInit.obs)\r
+319 LongPathFromShortPath isrt.obl(Str.obs)\r
+320 LongPathToQuote isrt.obl(Str.obs)\r
+321 LongPathToShortPath isrt.obl(Str.obs)\r
+322 MAKELONG isrt.obl(Misc.obs)\r
+323 MIFCreateMIFFile isrt.obl(MIF.obs)\r
+324 MIFDeleteMIFFile isrt.obl(MIF.obs)\r
+325 MIFInitialize isrt.obl(MIF.obs)\r
+326 MIFSetInformation isrt.obl(MIF.obs)\r
+327 MIFUnInitialize isrt.obl(MIF.obs)\r
+328 MIFWasSetInformationCalled isrt.obl(MIF.obs)\r
+329 MediaGetDataEx iswi.obl(FeatureConv.obs)\r
+330 MessageBeep isrt.obl(Misc.obs)\r
+331 MessageBox isrt.obl(MsgBox.obs)\r
+332 MessageBoxEx isrt.obl(MsgBox.obs)\r
+333 Moved iswi.obl(FileTransferFuncsConv.obs)\r
+334 Moving iswi.obl(FileTransferFuncsConv.obs)\r
+335 MsiCloseHandle iswi.obl(MsiFuncsConv.obs)\r
+336 MsiCreateRecord iswi.obl(MsiFuncsConv.obs)\r
+337 MsiDatabaseOpenView iswi.obl(MsiFuncsConv.obs)\r
+338 MsiDoAction iswi.obl(MsiFuncsConv.obs)\r
+339 MsiGetActiveDatabase iswi.obl(MsiFuncsConv.obs)\r
+340 MsiGetProperty iswi.obl(MsiFuncsConv.obs)\r
+341 MsiGetPropertyIS iswi.obl(MsiFuncsConv.obs)\r
+342 MsiGetSourcePath iswi.obl(MsiFuncsConv.obs)\r
+343 MsiGetTargetPath iswi.obl(MsiFuncsConv.obs)\r
+344 MsiInstallProduct iswi.obl(MsiFuncsConv.obs)\r
+345 MsiProcessMessage iswi.obl(MsiFuncsConv.obs)\r
+346 MsiQueryFeatureState iswi.obl(MsiFuncsConv.obs)\r
+347 MsiRecordGetInteger iswi.obl(MsiFuncsConv.obs)\r
+348 MsiRecordGetString iswi.obl(MsiFuncsConv.obs)\r
+349 MsiRecordSetString iswi.obl(MsiFuncsConv.obs)\r
+350 MsiSetProperty iswi.obl(MsiFuncsConv.obs)\r
+351 MsiSetTargetPath iswi.obl(MsiFuncsConv.obs)\r
+352 MsiViewExecute iswi.obl(MsiFuncsConv.obs)\r
+353 MsiViewFetch iswi.obl(MsiFuncsConv.obs)\r
+354 OnAbort iswi.obl(DriverConv.obs)\r
+355 OnAction iswi.obl(ISWiInit.obs)\r
+356 OnAdminInstallUIAfter iswi.obl(DriverConv.obs)\r
+357 OnAdminInstallUIBefore iswi.obl(DriverConv.obs)\r
+358 OnAdminPatchUIAfter iswi.obl(DriverConv.obs)\r
+359 OnAdminPatchUIBefore iswi.obl(DriverConv.obs)\r
+360 OnAdvertisementAfter iswi.obl(DriverConv.obs)\r
+361 OnAdvertisementBefore iswi.obl(DriverConv.obs)\r
+362 OnAppSearch iswi.obl(DriverConv.obs)\r
+363 OnBegin iswi.obl(DriverConv.obs)\r
+364 OnCCPSearch iswi.obl(DriverConv.obs)\r
+365 OnCanceling iswi.obl(DriverConv.obs)\r
+366 OnComponentError iswi.obl(Exceptions.obs)\r
+367 OnDIFxLogCallback isrt.obl(ISDIFx.obs)\r
+368 OnDIFxLogCallbackImpl isrt.obl(ISDIFx.obs)\r
+369 OnEnd iswi.obl(DriverConv.obs)\r
+370 OnError iswi.obl(DriverConv.obs)\r
+371 OnException iswi.obl(Exceptions.obs)\r
+372 OnFeaturesInstalled iswi.obl(FileTransferFuncsConv.obs)\r
+373 OnFeaturesInstalling iswi.obl(FileTransferFuncsConv.obs)\r
+374 OnFileError iswi.obl(Exceptions.obs)\r
+375 OnFileLocked iswi.obl(Exceptions.obs)\r
+376 OnFileReadOnly iswi.obl(Exceptions.obs)\r
+377 OnFilesInUse iswi.obl(DriverConv.obs)\r
+378 OnFirstUIAfter iswi.obl(DriverConv.obs)\r
+379 OnFirstUIBefore iswi.obl(DriverConv.obs)\r
+380 OnGeneratedMSIScript iswi.obl(FileTransferFuncsConv.obs)\r
+381 OnGeneratingMSIScript iswi.obl(FileTransferFuncsConv.obs)\r
+382 OnHelp iswi.obl(DriverConv.obs)\r
+383 OnInstallFilesActionAfter iswi.obl(FileTransferFuncsConv.obs)\r
+384 OnInstallFilesActionBefore iswi.obl(FileTransferFuncsConv.obs)\r
+385 OnInternetError iswi.obl(Exceptions.obs)\r
+386 OnLaunchAppAndWaitCallback iswi.obl(DriverConv.obs)\r
+387 OnLogonUserSetMsiProperties iswi.obl(DriverConv.obs)\r
+388 OnMD5Error iswi.obl(Exceptions.obs)\r
+389 OnMaintUIAfter iswi.obl(DriverConv.obs)\r
+390 OnMaintUIBefore iswi.obl(DriverConv.obs)\r
+391 OnMaintenance iswi.obl(DriverConv.obs)\r
+392 OnMoved iswi.obl(FileTransferFuncsConv.obs)\r
+393 OnMoving iswi.obl(FileTransferFuncsConv.obs)\r
+394 OnMsiSilentInstall iswi.obl(DriverConv.obs)\r
+395 OnNetApiCreateUserAccountInternal isrt.obl(NetApiRT.obs)\r
+396 OnNextDisk iswi.obl(Exceptions.obs)\r
+397 OnOutOfDiskSpace iswi.obl(DriverConv.obs)\r
+398 OnPatchUIAfter iswi.obl(DriverConv.obs)\r
+399 OnPatchUIBefore iswi.obl(DriverConv.obs)\r
+400 OnRebooted iswi.obl(DriverConv.obs)\r
+401 OnRemovingSharedFile iswi.obl(Exceptions.obs)\r
+402 OnResolveSource iswi.obl(DriverConv.obs)\r
+403 OnResume iswi.obl(DriverConv.obs)\r
+404 OnResumeUIAfter iswi.obl(DriverConv.obs)\r
+405 OnResumeUIBefore iswi.obl(DriverConv.obs)\r
+406 OnSQLLogin iswi.obl(DriverConv.obs)\r
+407 OnSelfRegistrationError iswi.obl(Exceptions.obs)\r
+408 OnUnhandledException iswi.obl(DriverConv.obs)\r
+409 OnUninstall iswi.obl(DriverConv.obs)\r
+410 OnUpdateService iswi.obl(DriverConv.obs)\r
+411 OnWarning iswi.obl(DriverConv.obs)\r
+412 OpenFile isrt.obl(Files.obs)\r
+413 OpenFileMode isrt.obl(Files.obs)\r
+414 PCRestoreOnBegin isrt.obl(PCRestore.obs)\r
+415 ParsePath isrt.obl(Str.obs)\r
+416 PostShowComponentDlg iswi.obl(ISWiInit.obs)\r
+417 Postprogram iswi.obl(DriverConv.obs)\r
+418 PreShowComponentDlg iswi.obl(ISWiInit.obs)\r
+419 Preprogram iswi.obl(DriverConv.obs)\r
+420 ProgDefGroupType isrt.obl(Shell.obs)\r
+421 ProgGetGroupType isrt.obl(Shell.obs)\r
+422 PthFixPath isrt.obl(Pth.obs)\r
+423 PthIsAbsPath isrt.obl(Pth.obs)\r
+424 RebootNeeded iswi.obl(FileTransferFuncsConv.obs)\r
+425 RedirectMsiCloseHandle iswi.obl(RedirectedMsiFuncsConv.obs)\r
+426 RedirectMsiCreateRecord iswi.obl(RedirectedMsiFuncsConv.obs)\r
+427 RedirectMsiGetActiveDatabase iswi.obl(RedirectedMsiFuncsConv.obs)\r
+428 RedirectMsiProcessMessage iswi.obl(RedirectedMsiFuncsConv.obs)\r
+429 RedirectMsiRecordGetInteger iswi.obl(RedirectedMsiFuncsConv.obs)\r
+430 RedirectMsiViewExecute iswi.obl(RedirectedMsiFuncsConv.obs)\r
+431 RedirectMsiViewFetch iswi.obl(RedirectedMsiFuncsConv.obs)\r
+432 RegDBGetDefaultRoot isrt.obl(SysVars.obs)\r
+433 RegDBGetItem isrt.obl(Registry.obs)\r
+434 RegDBGetKeyValueEx isrt.obl(Registry.obs)\r
+435 RegDBQueryKey isrt.obl(Registry.obs)\r
+436 RegDBQueryKeyCount isrt.obl(Registry.obs)\r
+437 RegDBQueryStringMultiStringCount isrt.obl(Registry.obs)\r
+438 RegDBQueryValue isrt.obl(Registry.obs)\r
+439 RegDBQueryValue32 isrt.obl(Registry.obs)\r
+440 RegDBSetDefaultRoot isrt.obl(SysVars.obs)\r
+441 RegDBSetKeyValueEx isrt.obl(Registry.obs)\r
+442 RegDBSetValue isrt.obl(Registry.obs)\r
+443 ReleaseDialog isrt.obl(CustomDialog.obs)\r
+444 RemoveSpaces iswi.obl(HelperFuncs.obs)\r
+445 ResolveShellObjectsFolder iswi.obl(CompHelperFuncs.obs)\r
+446 SdAskDestPath isrt.obl(SdAskDestPathDlg.obs)\r
+447 SdCloseDlg isrt.obl(SDINT.obs)\r
+448 SdComponentDlgCheckSpace isrt.obl(SDINT.obs)\r
+449 SdCustomerInformation iswi.obl(SdCustInfo.obs)\r
+450 SdDlgToTop isrt.obl(SDINT.obs)\r
+451 SdDoStdButton isrt.obl(SDINT.obs)\r
+452 SdEnablement isrt.obl(SDINT.obs)\r
+453 SdError isrt.obl(SDINT.obs)\r
+454 SdFeatureTree isrt.obl(SdComponentTreeDlg.obs)\r
+455 SdFilesInUse iswi.obl(SdFilesInUse.obs)\r
+456 SdFinish isrt.obl(SdFinishDlg.obs)\r
+457 SdFinishEx iswi.obl(SdFinishExConv.obs)\r
+458 SdFinishReboot isrt.obl(SdFinishRebootDlg.obs)\r
+459 SdFinishUpdate iswi.obl(SdFinishUpdate.obs)\r
+460 SdFinishUpdateReboot iswi.obl(SdFinUpdateRebot.obs)\r
+461 SdGeneralInit isrt.obl(SDINT.obs)\r
+462 SdInit isrt.obl(SDINT.obs)\r
+463 SdIsStdButton isrt.obl(SDINT.obs)\r
+464 SdLoadString isrt.obl(SDINT.obs)\r
+465 SdMakeName isrt.obl(SDINT.obs)\r
+466 SdOutOfDiskSpace iswi.obl(SdDiskReqs.obs)\r
+467 SdPatchWelcome iswi.obl(SdPatchWel.obs)\r
+468 SdPlugInProductName isrt.obl(SDINT.obs)\r
+469 SdSetDlgTitle isrt.obl(SDINT.obs)\r
+470 SdSetStatic isrt.obl(SDINT.obs)\r
+471 SdSetupCompleteError iswi.obl(SdSetupCompleteError.obs)\r
+472 SdShowMsg isrt.obl(SDSMSG.obs)\r
+473 SdStartCopy isrt.obl(SdStartCopyDlg.obs)\r
+474 SdSubstituteProductInfo isrt.obl(SDINT.obs)\r
+475 SdUnInit isrt.obl(SDINT.obs)\r
+476 SdWelcome isrt.obl(SdWelcomeDlg.obs)\r
+477 SdWelcomeMaint isrt.obl(SdWelcomeMaintDlg.obs)\r
+478 SelectDir isrt.obl(SelectDir.obs)\r
+479 SelectDirNoLog isrt.obl(SelectDir.obs)\r
+480 SendMessage isrt.obl(Misc.obs)\r
+481 ServiceInitParams isrt.obl(Service.obs)\r
+482 SetCmdLine isrt.obl(SysVars.obs)\r
+483 SetDisplayEffect isrt.obl(ui.obs)\r
+484 SetExtendedErrInfo isrt.obl(IsUtil.obs)\r
+485 SetFolderDesktop isrt.obl(SysVars.obs)\r
+486 SetFolderPrograms isrt.obl(SysVars.obs)\r
+487 SetFolderStartMenu isrt.obl(SysVars.obs)\r
+488 SetFolderStartup isrt.obl(SysVars.obs)\r
+489 SetGlobalVars iswi.obl(ISWiInit.obs)\r
+490 SetInstallationInfo isrt.obl(Registry.obs)\r
+491 SetMifInformationOnly isrt.obl(Registry.obs)\r
+492 SetTitle isrt.obl(ui.obs)\r
+493 SetUpdateStatus iswi.obl(HelperFuncs.obs)\r
+494 SetUpdateStatusReboot iswi.obl(HelperFuncs.obs)\r
+495 SetupTraceWrite isrt.obl(Misc.obs)\r
+496 SetupType isrt.obl(SetupTypeDlg.obs)\r
+497 SilentDoGeneralInfo isrt.obl(Silent.obs)\r
+498 SilentFailed isrt.obl(Silent.obs)\r
+499 SilentFinish isrt.obl(Silent.obs)\r
+500 SilentInit isrt.obl(Silent.obs)\r
+501 SilentReadData isrt.obl(Silent.obs)\r
+502 SilentSetInfo isrt.obl(Silent.obs)\r
+503 SilentSetMode isrt.obl(Silent.obs)\r
+504 SilentWriteData isrt.obl(Silent.obs)\r
+505 Sprintf isrt.obl(Str.obs)\r
+506 SprintfBox isrt.obl(MsgBox.obs)\r
+507 SprintfMsiLog iswi.obl(HelperFuncs.obs)\r
+508 StrAddLastSlash isrt.obl(Str.obs)\r
+509 StrDelete iswi.obl(HelperFuncs.obs)\r
+510 StrFindEx isrt.obl(Str.obs)\r
+511 StrGetTokens isrt.obl(Str.obs)\r
+512 StrLength isrt.obl(Str.obs)\r
+513 StrRemoveLastSlash isrt.obl(Str.obs)\r
+514 StrRemoveSpaces isrt.obl(Str.obs)\r
+515 StrReplace isrt.obl(Str.obs)\r
+516 StrToNumHex isrt.obl(Str.obs)\r
+517 StrToUpper isrt.obl(Str.obs)\r
+518 SysVarsInit isrt.obl(SysVars.obs)\r
+519 SysVarsInitConv iswi.obl(SysVarsConv.obs)\r
+520 SysVarsTrace isrt.obl(SysVars.obs)\r
+521 SysVarsUnInit iswi.obl(SysVarsConv.obs)\r
+522 System isrt.obl(Misc.obs)\r
+523 TextSubGetValue isrt.obl(TextSub.obs)\r
+524 TextSubParseTextSub isrt.obl(TextSub.obs)\r
+525 TextSubSetValue isrt.obl(TextSub.obs)\r
+526 TreeViewCreate isrt.obl(CmptView.obs)\r
+527 USER.EnableWindow Setup.obs\r
+528 USER.GetClassName Setup.obs\r
+529 USER.GetDC Setup.obs\r
+530 USER.GetDlgItem Setup.obs\r
+531 USER.GetFocus Setup.obs\r
+532 USER.GetWindowLong Setup.obs\r
+533 USER.IsIconic Setup.obs\r
+534 USER.IsWindow Setup.obs\r
+535 USER.IsWindowVisible Setup.obs\r
+536 USER.ReleaseDC Setup.obs\r
+537 USER.SendMessageA Setup.obs\r
+538 USER.SetFocus Setup.obs\r
+539 USER.SetForegroundWindow Setup.obs\r
+540 USER.SetWindowPos Setup.obs\r
+541 USER.SetWindowText Setup.obs\r
+542 USER.ShowWindow Setup.obs\r
+543 USER32.CharUpperBuffA Setup.obs\r
+544 USER32.FindWindowA Setup.obs\r
+545 USER32.GetDlgItem iswi.obl(SdDiskReqs.obs)\r
+546 USER32.GetSystemMetrics Setup.obs\r
+547 USER32.GetWindowRect iswi.obl(SdDiskReqs.obs)\r
+548 USER32.GetWindowText Setup.obs\r
+549 USER32.GetWindowTextLength Setup.obs\r
+550 USER32.MessageBoxA Setup.obs\r
+551 USER32.MsgWaitForMultipleObjects Setup.obs\r
+552 USER32.PeekMessageA Setup.obs\r
+553 USER32.SendMessageA Setup.obs\r
+554 USER32.SetWindowLong Setup.obs\r
+555 USER32.SetWindowRgn Setup.obs\r
+556 UpdateServiceEnableUpdateService isrt.obl(ISUpdateService.obs)\r
+557 User32.DestroyWindow iswi.obl(SdDiskReqs.obs)\r
+558 User32.LoadStringA iswi.obl(ComponentConv.obs)\r
+559 VarInit isrt.obl(SysVars.obs)\r
+560 VarRestore iswi.obl(SysVarsConv.obs)\r
+561 VarRestoreISRT isrt.obl(SysVars.obs)\r
+562 VarSave iswi.obl(SysVarsConv.obs)\r
+563 VarSaveISRT isrt.obl(SysVars.obs)\r
+564 VerProductGetInstalledVersion isrt.obl(version.obs)\r
+565 VerProductNumToStr isrt.obl(version.obs)\r
+566 VerProductVerPartsFromVer isrt.obl(version.obs)\r
+567 WaitOnDialog isrt.obl(CustomDialog.obs)\r
+568 WriteLine isrt.obl(Files.obs)\r
+569 __AddIntegerToArray iswi.obl(HelperFuncs.obs)\r
+570 __AddStringToArray iswi.obl(HelperFuncs.obs)\r
+571 __Begin iswi.obl(DriverConv.obs)\r
+572 __ComponentListItemsEx iswi.obl(CompHelperFuncs.obs)\r
+573 __ComponentListItemsExInstall iswi.obl(CompHelperFuncs.obs)\r
+574 __ComponentListItemsExUnInstall iswi.obl(CompHelperFuncs.obs)\r
+575 __ComponentMoveXferData iswi.obl(CompHelperFuncs.obs)\r
+576 __End iswi.obl(DriverConv.obs)\r
+577 __GetFinishMode iswi.obl(ISWiInit.obs)\r
+578 __GetMsiHandle iswi.obl(SysVarsConv.obs)\r
+579 __GetSourceDir iswi.obl(SysVarsConv.obs)\r
+580 __HandleError iswi.obl(ErrHandler.obs)\r
+581 __ISRTDoExit isrt.obl(Misc.obs)\r
+582 __ISRTInit isrt.obl(ISRTInit.obs)\r
+583 __ISRTRestoreMainLog isrt.obl(ISRTInit.obs)\r
+584 __ISRTRestoreMainLogEx isrt.obl(ISRTInit.obs)\r
+585 __ISRTSetComponentLog isrt.obl(ISRTInit.obs)\r
+586 __ISRTUnInit isrt.obl(ISRTInit.obs)\r
+587 __ISWIInit iswi.obl(ISWiInit.obs)\r
+588 __ISWIMsiHandle iswi.obl(ISWiInit.obs)\r
+589 __ISWIUnInit iswi.obl(ISWiInit.obs)\r
+590 __IsArrayEmpty iswi.obl(HelperFuncs.obs)\r
+591 __LoadIScriptString isrt.obl(LoadStr.obs)\r
+592 __Moved iswi.obl(FileTransferFuncsConv.obs)\r
+593 __Moving iswi.obl(FileTransferFuncsConv.obs)\r
+594 __MsiOpenView iswi.obl(CompHelperFuncs.obs)\r
+595 __MsiQueryFeatureState iswi.obl(MsiWrappersConv.obs)\r
+596 __MsiRecordGetString iswi.obl(MsiWrappersConv.obs)\r
+597 __OnAbort iswi.obl(DriverConv.obs)\r
+598 __OnAdminPatch iswi.obl(DriverConv.obs)\r
+599 __OnAdministrativeInstall iswi.obl(DriverConv.obs)\r
+600 __OnAdvertisement iswi.obl(DriverConv.obs)\r
+601 __OnBegin iswi.obl(DriverConv.obs)\r
+602 __OnCanceling iswi.obl(DriverConv.obs)\r
+603 __OnEnd iswi.obl(DriverConv.obs)\r
+604 __OnError iswi.obl(DriverConv.obs)\r
+605 __OnMsiMaintenance iswi.obl(DriverConv.obs)\r
+606 __OnMsiRebooted iswi.obl(DriverConv.obs)\r
+607 __OnMsiSilentInstall iswi.obl(DriverConv.obs)\r
+608 __OnMsiUninstall iswi.obl(DriverConv.obs)\r
+609 __OnPatch iswi.obl(DriverConv.obs)\r
+610 __OnResume iswi.obl(DriverConv.obs)\r
+611 __OnWarning iswi.obl(DriverConv.obs)\r
+612 __ResetMsiObject iswi.obl(ISWiInit.obs)\r
+613 __SetMaintenance iswi.obl(ISWiInit.obs)\r
+614 __SetMsiHandle iswi.obl(SysVarsConv.obs)\r
+615 __SetMsiServer iswi.obl(ISWiInit.obs)\r
+616 __SetPatch iswi.obl(SysVarsConv.obs)\r
+617 __SetSourceDir iswi.obl(SysVarsConv.obs)\r
+618 isrt._ComponentGetData iswi.obl(ComponentConv.obs)\r
+619 isrt._ComponentIsItemSelected iswi.obl(ComponentConv.obs)\r
+620 isrt._ComponentListItems iswi.obl(ComponentConv.obs)\r
+621 isrt._ComponentReinstall iswi.obl(ComponentConv.obs)\r
+622 isrt._ComponentRemoveAll iswi.obl(ComponentConv.obs)\r
+623 isrt._ComponentSelectItem iswi.obl(ComponentConv.obs)\r
+624 isrt._ComponentSetupTypeSet iswi.obl(ComponentConv.obs)\r
+625 isrt._EnableDialogCache iswi.obl(ISWiInit.obs)\r
+626 kernel32.GetLocalTime iswi.obl(ErrHandler.obs)\r
+627 kernel32.GetWindowsDirectoryA iswi.obl(ErrHandler.obs)\r
+628 msi.MsiCloseHandle iswi.obl(RedirectedMsiFuncsConv.obs)\r
+629 msi.MsiCreateRecord iswi.obl(RedirectedMsiFuncsConv.obs)\r
+630 msi.MsiDatabaseOpenViewA Setup.obs\r
+631 msi.MsiDoActionA Setup.obs\r
+632 msi.MsiGetActiveDatabase iswi.obl(RedirectedMsiFuncsConv.obs)\r
+633 msi.MsiGetProductInfoA Setup.obs\r
+634 msi.MsiGetPropertyA Setup.obs\r
+635 msi.MsiGetSourcePathA Setup.obs\r
+636 msi.MsiGetTargetPathA Setup.obs\r
+637 msi.MsiOpenDatabaseA Setup.obs\r
+638 msi.MsiProcessMessage iswi.obl(RedirectedMsiFuncsConv.obs)\r
+639 msi.MsiQueryFeatureStateA Setup.obs\r
+640 msi.MsiRecordGetInteger iswi.obl(RedirectedMsiFuncsConv.obs)\r
+641 msi.MsiRecordGetStringA Setup.obs\r
+642 msi.MsiRecordSetStringA Setup.obs\r
+643 msi.MsiSetPropertyA Setup.obs\r
+644 msi.MsiSetTargetPathA Setup.obs\r
+645 msi.MsiViewExecute iswi.obl(RedirectedMsiFuncsConv.obs)\r
+646 msi.MsiViewFetch iswi.obl(RedirectedMsiFuncsConv.obs)\r
+647 program iswi.obl(DriverConv.obs)\r
+648 sfc.SRSetRestorePoint Setup.obs\r
+\r
+\r
+***** External Variables *****\r
+1 ADDREMOVE iswi.obl(HelperFuncs.obs)\r
+2 ADDREMOVE_COMBINEDBUTTON Setup.obs\r
+3 ADDREMOVE_HIDECHANGEOPTION Setup.obs\r
+4 ADDREMOVE_HIDEREMOVEOPTION Setup.obs\r
+5 ADDREMOVE_HIDEREPAIROPTION Setup.obs\r
+6 ADDREMOVE_STRING_REMOVEONLY Setup.obs\r
+7 ADDREMOVE_SYSTEMCOMPONENT Setup.obs\r
+8 ADMINUSER Setup.obs\r
+9 ALLUSERS Setup.obs\r
+10 AdminToolsFolder iswi.obl(DebugSymbolsConv.obs)\r
+11 AppDataFolder iswi.obl(DebugSymbolsConv.obs)\r
+12 BASICMSI iswi.obl(HelperFuncs.obs)\r
+13 BATCH_INSTALL Setup.obs\r
+14 CMDLINE iswi.obl(HelperFuncs.obs)\r
+15 CMPTFILTERLANGOBJ iswi.obl(CompHelperFuncs.obs)\r
+16 COMMONFILES iswi.obl(HelperFuncs.obs)\r
+17 COMMONFILES64 iswi.obl(HelperFuncs.obs)\r
+18 CommonAppDataFolder iswi.obl(DebugSymbolsConv.obs)\r
+19 CommonFiles64Folder iswi.obl(DebugSymbolsConv.obs)\r
+20 CommonFilesFolder iswi.obl(DebugSymbolsConv.obs)\r
+21 DISABLE_ALLUSERBTN Setup.obs\r
+22 DISABLE_PERUSERBTN Setup.obs\r
+23 DISK1SETUPEXENAME iswi.obl(HelperFuncs.obs)\r
+24 DISK1TARGET Setup.obs\r
+25 DesktopFolder iswi.obl(DebugSymbolsConv.obs)\r
+26 ENABLED_ISERVICES iswi.obl(HelperFuncs.obs)\r
+27 ENGINECOMMONDIR iswi.obl(HelperFuncs.obs)\r
+28 ENGINEDIR iswi.obl(HelperFuncs.obs)\r
+29 ERRORFILENAME Setup.obs\r
+30 ERRORINFO iswi.obl(ComponentConv.obs)\r
+31 Err Setup.obs\r
+32 FEATURE iswi.obl(ComponentConv.obs)\r
+33 FILEERROR iswi.obl(ComponentConv.obs)\r
+34 FILETIME Setup.obs\r
+35 FIND_DATA Setup.obs\r
+36 FOLDER_APPDATA iswi.obl(HelperFuncs.obs)\r
+37 FOLDER_COMMON_APPDATA iswi.obl(HelperFuncs.obs)\r
+38 FOLDER_DESKTOP iswi.obl(HelperFuncs.obs)\r
+39 FOLDER_DOTNET_10 iswi.obl(HelperFuncs.obs)\r
+40 FOLDER_DOTNET_11 iswi.obl(HelperFuncs.obs)\r
+41 FOLDER_DOTNET_20 iswi.obl(HelperFuncs.obs)\r
+42 FOLDER_FONTS iswi.obl(HelperFuncs.obs)\r
+43 FOLDER_LOCAL_APPDATA iswi.obl(HelperFuncs.obs)\r
+44 FOLDER_PERSONAL iswi.obl(HelperFuncs.obs)\r
+45 FOLDER_PROGRAMS iswi.obl(HelperFuncs.obs)\r
+46 FOLDER_STARTMENU iswi.obl(HelperFuncs.obs)\r
+47 FOLDER_STARTUP iswi.obl(HelperFuncs.obs)\r
+48 FOLDER_TEMP iswi.obl(HelperFuncs.obs)\r
+49 FavoritesFolder iswi.obl(DebugSymbolsConv.obs)\r
+50 FileRegistrar Setup.obs\r
+51 FontsFolder iswi.obl(DebugSymbolsConv.obs)\r
+52 HKEYCURRENTROOTKEY Setup.obs\r
+53 IFX_COMPANY_NAME Setup.obs\r
+54 IFX_INSTALLED_DISPLAY_VERSION Setup.obs\r
+55 IFX_INSTALLED_VERSION Setup.obs\r
+56 IFX_KEYPATH_PRODUCT_INFO Setup.obs\r
+57 IFX_MULTI_INSTANCE_SUFFIX Setup.obs\r
+58 IFX_NETAPI_GROUP Setup.obs\r
+59 IFX_NETAPI_PASSWORD Setup.obs\r
+60 IFX_NETAPI_USER_ACCOUNT Setup.obs\r
+61 IFX_PRODUCT_COMMENTS Setup.obs\r
+62 IFX_PRODUCT_DISPLAY_NAME Setup.obs\r
+63 IFX_PRODUCT_DISPLAY_VERSION Setup.obs\r
+64 IFX_PRODUCT_ICON Setup.obs\r
+65 IFX_PRODUCT_KEY Setup.obs\r
+66 IFX_PRODUCT_NAME Setup.obs\r
+67 IFX_PRODUCT_README Setup.obs\r
+68 IFX_PRODUCT_REGISTEREDCOMPANY Setup.obs\r
+69 IFX_PRODUCT_REGISTEREDOWNER Setup.obs\r
+70 IFX_PRODUCT_REGISTEREDSERIALNUM Setup.obs\r
+71 IFX_PRODUCT_SUPPORT_CONTACT Setup.obs\r
+72 IFX_PRODUCT_SUPPORT_PHONE Setup.obs\r
+73 IFX_PRODUCT_SUPPORT_URL Setup.obs\r
+74 IFX_PRODUCT_UPDATE_URL Setup.obs\r
+75 IFX_PRODUCT_URL Setup.obs\r
+76 IFX_PRODUCT_VERSION Setup.obs\r
+77 IFX_SETUP_TITLE Setup.obs\r
+78 IFX_SUPPORTED_VERSIONS Setup.obs\r
+79 IISROOTFOLDER iswi.obl(HelperFuncs.obs)\r
+80 INSTALLDIR Setup.obs\r
+81 INSTALLSCRIPTMSI iswi.obl(HelperFuncs.obs)\r
+82 INSTANCE_GUID iswi.obl(HelperFuncs.obs)\r
+83 ISDIFXAPPID Setup.obs\r
+84 ISMSI_HANDLE iswi.obl(DebugSymbolsConv.obs)\r
+85 ISRES iswi.obl(HelperFuncs.obs)\r
+86 ISUSER iswi.obl(HelperFuncs.obs)\r
+87 ISUTIL_FUNCTION_ACTUAL_ERROR Setup.obs\r
+88 ISUTIL_FUNCTION_ERROR iswi.obl(CompHelperFuncs.obs)\r
+89 ISUTIL_LINE_NUMBER Setup.obs\r
+90 ISUTIL_POSITIVE_ERROR iswi.obl(CompHelperFuncs.obs)\r
+91 ISUTIL_SCRIPT_FILE Setup.obs\r
+92 ISVERSION iswi.obl(HelperFuncs.obs)\r
+93 LAAW_PARAMETERS Setup.obs\r
+94 LAAW_PROCESS_INFORMATION Setup.obs\r
+95 LAAW_STARTUPINFO Setup.obs\r
+96 LAST_RESULT Setup.obs\r
+97 LVITEM iswi.obl(SdDiskReqs.obs)\r
+98 LV_COLUMN iswi.obl(SdDiskReqs.obs)\r
+99 LocalAppDataFolder iswi.obl(DebugSymbolsConv.obs)\r
+100 LogDB Setup.obs\r
+101 MAINTENANCE iswi.obl(HelperFuncs.obs)\r
+102 MAINT_OPTION iswi.obl(HelperFuncs.obs)\r
+103 MEDIA Setup.obs\r
+104 MEDIA_INFO iswi.obl(FeatureConv.obs)\r
+105 MODE Setup.obs\r
+106 MSG Setup.obs\r
+107 MULTI_INSTANCE_COUNT iswi.obl(HelperFuncs.obs)\r
+108 MainWindow Setup.obs\r
+109 MyPicturesFolder iswi.obl(DebugSymbolsConv.obs)\r
+110 NOTHING Setup.obs\r
+111 NetHoodFolder iswi.obl(DebugSymbolsConv.obs)\r
+112 OSINFO_PLATFORM_INFO Setup.obs\r
+113 OSINFO_PROCESSOR_INFO Setup.obs\r
+114 OSVERSIONINFO Setup.obs\r
+115 OSVERSIONINFOEX Setup.obs\r
+116 Objects Setup.obs\r
+117 OriginalDatabase iswi.obl(DebugSymbolsConv.obs)\r
+118 PACKAGE_LOCATION iswi.obl(HelperFuncs.obs)\r
+119 PATCH iswi.obl(DebugSymbolsConv.obs)\r
+120 POINT Setup.obs\r
+121 PRIVILEGED Setup.obs\r
+122 PROCESS_INFORMATION Setup.obs\r
+123 PRODUCT_GUID iswi.obl(HelperFuncs.obs)\r
+124 PROGRAMFILES iswi.obl(HelperFuncs.obs)\r
+125 PROGRAMFILES64 iswi.obl(HelperFuncs.obs)\r
+126 PersonalFolder iswi.obl(DebugSymbolsConv.obs)\r
+127 PrintHoodFolder iswi.obl(DebugSymbolsConv.obs)\r
+128 ProgramFiles64Folder iswi.obl(DebugSymbolsConv.obs)\r
+129 ProgramFilesFolder iswi.obl(DebugSymbolsConv.obs)\r
+130 ProgramMenuFolder iswi.obl(DebugSymbolsConv.obs)\r
+131 RECT Setup.obs\r
+132 REGDB_OPTIONS Setup.obs\r
+133 REMOVEALLMODE iswi.obl(HelperFuncs.obs)\r
+134 REMOVEONLY iswi.obl(HelperFuncs.obs)\r
+135 RUN_ONCE_PROGRAM iswi.obl(HelperFuncs.obs)\r
+136 Reboot Setup.obs\r
+137 RecentFolder iswi.obl(DebugSymbolsConv.obs)\r
+138 SELECTED_LANGUAGE iswi.obl(HelperFuncs.obs)\r
+139 SERVICE_IS_PARAMS Setup.obs\r
+140 SETUPTYPE_STR_COMPACT Setup.obs\r
+141 SETUPTYPE_STR_COMPLETE Setup.obs\r
+142 SETUPTYPE_STR_CUSTOM Setup.obs\r
+143 SETUPTYPE_STR_TYPICAL Setup.obs\r
+144 SHELL_OBJECT_FOLDER Setup.obs\r
+145 SHOW_PASSWORD_DIALOG iswi.obl(HelperFuncs.obs)\r
+146 SRCDIR Setup.obs\r
+147 SRCDISK iswi.obl(HelperFuncs.obs)\r
+148 STARTUPINFO Setup.obs\r
+149 SUPPORTDIR iswi.obl(HelperFuncs.obs)\r
+150 SYSTEMTIME Setup.obs\r
+151 SYSTEMTIME2 iswi.obl(ErrHandler.obs)\r
+152 SendToFolder iswi.obl(DebugSymbolsConv.obs)\r
+153 SetupInfo Setup.obs\r
+154 SourceDir iswi.obl(DebugSymbolsConv.obs)\r
+155 StartMenuFolder iswi.obl(DebugSymbolsConv.obs)\r
+156 StartupFolder iswi.obl(DebugSymbolsConv.obs)\r
+157 StatusDlg Setup.obs\r
+158 System16Folder iswi.obl(DebugSymbolsConv.obs)\r
+159 System64Folder iswi.obl(DebugSymbolsConv.obs)\r
+160 SystemFolder iswi.obl(DebugSymbolsConv.obs)\r
+161 TARGETDIR Setup.obs\r
+162 TARGETDISK iswi.obl(HelperFuncs.obs)\r
+163 TempFolder iswi.obl(DebugSymbolsConv.obs)\r
+164 TemplateFolder iswi.obl(DebugSymbolsConv.obs)\r
+165 TextSub Setup.obs\r
+166 UNINST Setup.obs\r
+167 UNINSTALLKEY Setup.obs\r
+168 UNINSTALL_DISPLAYNAME Setup.obs\r
+169 UNINSTALL_STRING Setup.obs\r
+170 UPDATEMODE Setup.obs\r
+171 WINDIR iswi.obl(HelperFuncs.obs)\r
+172 WINDISK iswi.obl(HelperFuncs.obs)\r
+173 WINSYSDIR iswi.obl(HelperFuncs.obs)\r
+174 WINSYSDIR64 iswi.obl(HelperFuncs.obs)\r
+175 WINSYSDISK iswi.obl(HelperFuncs.obs)\r
+176 WindowsFolder iswi.obl(DebugSymbolsConv.obs)\r
+177 WindowsVolume iswi.obl(DebugSymbolsConv.obs)\r
+178 _INT64 Setup.obs\r
+179 _LAAW_PARAMETERS Setup.obs\r
+180 _LAAW_TEMP_DATA isrt.obl(Extend.obs)\r
+181 _RESTOREINFO_ Setup.obs\r
+182 _RESTOREPTINFO Setup.obs\r
+183 _SERVICE_IS_PARAMS Setup.obs\r
+184 _SMGRSTATUS Setup.obs\r
+185 _SMGSTATUS_ Setup.obs\r
+186 _WIN9X Setup.obs\r
+187 _WINNT Setup.obs\r
+188 __SYSTEMINFORMATION Setup.obs\r
+189 __SYSTEMPROCESSORINFORMATION Setup.obs\r
+190 __gbAliasingOff iswi.obl(CompHelperFuncs.obs)\r
+191 __gbCheckForUpdate iswi.obl(CompHelperFuncs.obs)\r
+192 __gbCheckUpdateReboot iswi.obl(CompHelperFuncs.obs)\r
+193 __gbGetTarget iswi.obl(CompHelperFuncs.obs)\r
+194 __gbInitialized iswi.obl(CompHelperFuncs.obs)\r
+195 __gbInstallInfo Setup.obs\r
+196 __gbMaintenance iswi.obl(CompHelperFuncs.obs)\r
+197 __gbReopening iswi.obl(CompHelperFuncs.obs)\r
+198 __ghActiveDataBase iswi.obl(CompHelperFuncs.obs)\r
+199 __ghErrFileHandle iswi.obl(CompHelperFuncs.obs)\r
+200 __ghMsiInstall iswi.obl(CompHelperFuncs.obs)\r
+201 __gnButtonSelected iswi.obl(CompHelperFuncs.obs)\r
+202 __gnLastError iswi.obl(CompHelperFuncs.obs)\r
+203 __gnMsiReturn iswi.obl(CompHelperFuncs.obs)\r
+204 __gnOSMask iswi.obl(CompHelperFuncs.obs)\r
+205 __gnScriptMode iswi.obl(CompHelperFuncs.obs)\r
+206 __goISDriver iswi.obl(CompHelperFuncs.obs)\r
+207 __goLanguageFilter iswi.obl(CompHelperFuncs.obs)\r
+208 __goMsiServer iswi.obl(CompHelperFuncs.obs)\r
+209 __gsINSTALLDIR iswi.obl(CompHelperFuncs.obs)\r
+210 __gsProductGuid iswi.obl(CompHelperFuncs.obs)\r
+211 __gsSourceDir iswi.obl(CompHelperFuncs.obs)\r
+212 __hContext iswi.obl(CompHelperFuncs.obs)\r
+213 __objGlobalTextSub Setup.obs\r
+214 __objStringTable iswi.obl(ISWiInit.obs)\r
+215 __szGUID isrt.obl(ISRTInit.obs)\r
+216 bBackButton Setup.obs\r
+217 bCancelButton Setup.obs\r
+218 bEnterDiskBeep iswi.obl(AdminAskPath.obs)\r
+219 bFinishButton Setup.obs\r
+220 bIfxPCHInitialized Setup.obs\r
+221 bIfxPCHOn Setup.obs\r
+222 bInstall16 Setup.obs\r
+223 bNextButton Setup.obs\r
+224 bSdInit Setup.obs\r
+225 bViewCmptKunits Setup.obs\r
+226 bViewCmptUseDecimal Setup.obs\r
+227 g_bSuppressMissingStringWarning iswi.obl(DriverConv.obs)\r
+228 nIfxPCHType Setup.obs\r
+229 szAppKey Setup.obs\r
+230 szSdProduct Setup.obs\r
+231 szSdStr_NotEnoughSpace Setup.obs\r
--- /dev/null
+#\r
+# Generic DAT 1.1 configuration file [4-30-07]\r
+#\r
+\r
+# Each entry should have the following fields:\r
+# <ia_name> <api_version> <threadsafety> <default> <dapl_lib_path> \\r
+# <provider_version> <ia_params> <platform_params>\r
+\r
+# Verify %SystemRoot% == C:\Windows\r
+# This is the dapl provider configuration for HCA0 port 1\r
+\r
+IbalHca0 u1.1 nonthreadsafe default C:\Windows\dapl.dll mv_dapl.1.1 "IbalHca0 1" ""\r
+\r
+# Intel MPI\r
+#ibnic0 u1.1 threadsafe default C:\Windows\dapl.dll ri.1.1 "IbalHca0 1" " "\r
+\r
--- /dev/null
+\r
+If this file exists in %ProgramFiles%\WinOF, then an 'opensm' service will be\r
+created and started at the end of the Install process. See\r
+Device Manager->Services->InfiniBand Subnet Manager\r
+\r
+\r