Technical and installation information on fcping
There are a number of useful fcping options, many of which work like those in ping. Version 1.5 of this utility adds the -D and -d options to help you determine which local and remote Fibre Channel ports are visible to the host.
Usage: fcping [OPTION]... WORLD_WIDE_PORT_NAME
WORLD_WIDE_PORT_NAME in upper case hex XX:XX:XX:XX:XX:XX:XX:XX
-v print the version and exit
-h print usage and exit
-c count number of pings before exiting
-i interval interval between pings in seconds
-l lun FCP LUN to ping in decimal (default is LUN 0)
-q quiet operation, no output to stdout
-O WWPN specify the worldwide name of the outgoing port
-D list discovered outgoing ports
-d list discovered remote ports
There are no big cumbersome GUI nor platform or vendor-specific tools to learn, just a simple tool to do a simple but important job
Building fcping from source
The fcping utility is written in C and can be compiled on Solaris, Linux, and Win32 systems. Porting it to other flavors of UNIX should not be difficult, but as part of our commitment to open source tools, we plan to provide these versions in future. The code in this software kit is distributed under the GNU General Public License and the GNU Lesser General Public License, so fcping is guaranteed to remain a free open source tool.
Included in this kit are source and binary forms of the Storage Networking Industry Association (SNIA) Common HBA API library v2.1, which can also be obtained from http://www.sourceforge.net/projects/hbaapi. This library serves as an adaptor between fcping and the HBA driver, providing a uniform interface across HBA vendor's hardware. This API is the result of collaboration among various HBA and management software vendors. Version 1.0 was released and implemented last year; version 2.0 is being finalized, and HBA vendors should release implementations by mid-2003.
Version 2.0 of the SNIA HBAAPI library is backward-compatible with version 1.0 of the vendor-specific libraries. The Common HBA API Library is distributed under the SNIA Public License, which is included with source code in the kit. fcping is statically linked to the Common HBAAPI Libary on UNIX platforms. It is dynamically linked to HBAAPI.dll on Win32 platforms.
fcping also uses another Open Source library called timeout_action, which allows arbitrary functions to be executed in a thread that will timeout if the action takes longer than expected. This library uses the pthreads library on UNIX and uses Win32 threads on Windows.
To build the kit, unpack the zip file, cd to the src directory, copy the appropriate makefile to a file called "makefile", and type "make" ("nmake" on Win32). Explicitly:
%> unzip fcping1_5.zip
%> cd fcping/src
%> cp makefile.linux makefile
We have built fcping on Linux and Solaris using gcc V2.9X and on Windows platforms using MS Visual C++ 6.0. Sun's Forte v6 compiler can also be used with some tweaks to the makefile. The build should take less than half a minute.
Installing fcpingOnce you have compiled a binary image of fcping, logon with root access (Administrator), copy it to the directory of your choice, and place the Common HBA Library in your path to shared libraries or type "make install" ("nmake install" on Win32) to execute the copy commands in the install.sh (install.bat) scripts. These simple install scripts are provided for convenience but are not very sophisticated and may apply to only some environments. If in doubt, look at the source of these simple install scripts.
Next, make sure that you have a vendor-specific HBA library installed. These are provided by the HBA vendors. They sometimes install when you install your HBA device driver or may need to be installed separately. To tell whether the vendor library has been installed, check the /etc/hba.conf file on UNIX or the hkey_local_machine\software\snia\hba registry key on Win32 platforms. There you will find the mappings that the SNIA common library uses to find and load the vendor-specific libraries.The most common reason for fcping to fail is that the vendor library has not been installed or has been incorrectly registered. If you do not find what you are looking for, a trip to your HBA vendor's Web site should do the trick. The HBA API FAQ at http://hbaapi.sourceforge.net/faq.htm contains a table showing which HBAs are supported and has further links to HBA vendor sites where the vendor-specific libraries can be downloaded.
BinariesIf you don't want to build fcping yourself, the kit includes a bin directory containing precompiled binary forms of fcping and HBAAPI.dll for Win32 Linux, and 32-bit Solaris environments. fcping is statically linked to libHBAAPI on UNIX platforms. Copy these files into the correct places, as described.
Known bugsDefect #1 Status: Open Logged: 9/5/02
With some HBAs, it does not matter which LUN you ping, you always get the same result, even for LUNs you should not be able to reach because of LUN masking or LUNs that do not exist. We have not yet understood whether this is an issue with fcping, the HBAAPI, or the vendor library/device-driver. This bug is still open as of fcping v1.5.
Reporting bugsPlease contact us to report any bugs.
New features in version 1.5
- Separation into src, bin, include directories. This is cleaner and should also make it easier to support more platforms
- A different makefile for each platform should make building the kit less error prone
- Compatibility with SNIA HBA API 2.0, able to take advantage of both v1.0 and v2.0 vendor libraries
- Addition of MIN and MAX statistics for pings
- Ability to list local, rt interfaces (-D option)
- Ability to list discovered port addresses (-O and -d options)
- Ability to perform pings from any local port address to any discovered port address (-O option). As of February 2003, many HBA vendors still do not support this feature
- More statistics on pings collected (STDEV)
- Support for other UNIX flavors
- Ability to use Worldwide Node Names (WWN) when mapping is unique
- Ability to ping all World Wide Port names listed in a text file
- Ability to type only the last 4 bytes of the WWN as the address
- More standard ping features
How to get involved
If you would like to contribute to fcping development, please contact us.