Abstract:
The present invention provides a system and method for controlling diagnostic functions on a remote device. The system includes a host, and a network adapter in communication with the host. The system performs a method comprising receiving a diagnostic signal from the host device on the remote device, associating the diagnostic signal with a diagnostic state of the remote device, and performing a diagnostic function indicated by the diagnostic signal.

Description:
BACKGROUND 
       [0001]    The IBM Open Systems Adapter (OSA) is a hardware element that interfaces between an IBM S/390 or zSeries processor and a network, which may be a private network within an enterprise, a public network, or a combination of both. References that describe the Open Systems Adapter include the following patents, patent applications and publications, incorporated herein by reference; U.S. Pat. No. 6,772,221, Ratcliff et al., “Dynamically configuring and monitoring hosts connected in a computing network having a gateway device”; U.S. Pat. No. 6,600,743, Lee et ah, “IP multicast interface”; U.S. Pat. No. 6,490,285, Lee et ah, “IP multicast interface” 
         [0002]    U.S. Pat. No. 6,389,027, Lee et al., “IP multicast interface”; U.S. Pat. No. 6,327,621. Lee et al., “Method for shared multicast interface in a multi-partition environment”; U.S. Pat. No. 6,185,218, Ratcliff et al., “Communication method and apparatus for use in a computing network environment having high performance LAN connections”; and U.S. Pat. No. 6,084,859, Ratcliff et al, “Internet Protocol assists using multi-path channel protocol”. 
         [0003]    In many communications error scenarios associated with server and network communications, it is not always clear if the source of the problem is a software (e.g. Operating Systems) or hardware (e.g. network adapter) error. Often the external symptoms of the problem may not reveal the root source of the problem. When this occurs, both software and hardware documentation (traces and dumps) must be collected. This process is often referred to as “Problem Determination”. Problem determination is the process of isolating the source of the problem to a specific product (most often hardware vs. software). 
         [0004]    Although each product (software and hardware) has tools that provide data collection, what is missing is the ability to capture both hardware and software traces at the same time for the same instance of an error. This deficiency causes many problems recreating attempts and in some field situations can lead to customer satisfactions issues. 
         [0005]    Most Operating Systems have a set of tools that allows a trap to be set to capture software traces and/or dumps based on specific events. For example, in z/OS, this type of tool is the MVS SLIP command, or in CommServer the INOPDUMP command. Today network adapter (e.g. OSA) traces must be manually controlled (started and stopped) by a systems operator using the HMC. 
         [0006]    What is needed is the ability to tie the software and hardware trace collection process together. 
       SUMMARY 
       [0007]    Embodiments of the present invention provide a system and method for diagnostic functions on a remote device. Briefly described, in architecture, one embodiment of the system, among others, can be implemented as follows. The system includes a host, and a network adapter in communication with the host. The system performs a method comprising receiving a diagnostic signal from the host device on the remote device, associating the diagnostic signal with a diagnostic state of the remote device, and performing a diagnostic function indicated by the diagnostic signal. 
         [0008]    Embodiment of the present invention can also be viewed as providing methods for controlling diagnostic functions on a remote device. In this regard, one embodiment of such a method, among others, can be broadly summarized by the following steps. The method operates by receiving a diagnostic signal from a host device on the remote device and associating the diagnostic signal with a diagnostic state of the remote device. Then, the method performs a diagnostic function indicated by the diagnostic signal. 
         [0009]    Other systems, methods, features, and advantages of the present invention will be or become apparent to one with skill in the art upon examination of the following drawings and detailed description. It is intended that all such additional systems, methods, features, and advantages be included within this description, be within the scope of the present invention, and be protected by the accompanying claims. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0010]    Many aspects of the invention can be better understood with reference to the following drawings. The components in the drawings are not necessarily to scale, emphasis instead being placed upon clearly illustrating the principles of the present invention. Moreover, in the drawings, like reference numerals designate corresponding parts throughout the several views. 
           [0011]      FIG. 1  is a block diagram of a virtual network configuration utilizing integrated diagnostics through signaling methods of the present invention. 
           [0012]      FIG. 2  is a block diagram of a signaling data packet utilized by the virtual network configuration as shown in  FIG. 1 . 
           [0013]      FIGS. 3 and 4  are flow charts of the process that integrates diagnostics through signaling method of the present invention. 
       
    
    
     DETAILED DESCRIPTION 
       [0014]    The present invention provides the ability to tie the software and hardware trace collection process together. This is accomplished with a host OS signal to network adapter to instruct adapter to also capture traces when a software trap event occurs. This capability will allow the software and hardware traces to be captured, correlated, and coordinated at the same time based on the same error event. 
         [0015]    The present invention describes a new function that allows the host OS to control OSA diagnostic functions (trap, trace, dump, etc). A new control signal (assist primitive) will be created to provide this support. The new assist primitive will have the following attributes: (1) the assist function is based on existing QDIO architecture (similar to IP Assist); (2) the function is applicable to both Layer 2 and Layer 3 modes of QDIO (OSN will be deferred); (3) the new primitive is extendable to new trace actions and functions and will support the TRAP function with actions Arm, DisArm, and Capture. 
         [0016]    A new control signal is required to provide this support. This signal will allow the host operating system operator to control various OSA diagnostic functions (initially trap). The new primitive will be applicable to all supported QDIO modes (layer 2, layer 3, and OSN). Therefore, a new QDIO assist primitive is created for this design. The new primitive will be here after referred to as “Set Diagnostic Assist” (SetDiagAsst). 
         [0017]      FIG. 1  is a block diagram of a virtual network configuration utilizing integrated diagnostics through signaling methods of the present invention,  FIG. 1  shows a configuration  100  incorporating the present invention. Configuration contains a physical machine  100  coupled via a network adapter  104  to a network  106 . A physical machine  100  is a data processing system suitable for storing, and/or executing program code will include at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution, input/output or I/O devices (including but not limited to keyboards, displays, pointing devices, etc.) can be coupled to the system either directly or through intervening I/O controllers. Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modem and Ethernet cards are just a few of the currently available types of network adapters. 
         [0018]    While the present invention is not limited to any particular hardware or software platform, in a exemplary embodiment the physical machine  100  may constitute an IBM™ eSeries™ zSeries™ server (IBM, eServer and zSeries are trademarks of IBM Corporation). Network adapter  104  (also referred to herein as an OSA) forwards data packets  108  between the network  106  and physical machine  100  and may comprise an IBM Open Systems Adapter (OSA), described in the patents and publications referenced above. Network  106  may be an internal network such as a local area network (LAN) within an organization, an external network, or a combination of both and may have other physical machines or devices (not shown) coupled to it. In a conventional manner, physical machine  100  is partitioned into a plurality of logical machines, each of which has its own host operating system (OS)  110  (also referred to herein as a “server” or simply a “host”), for example, an instance of the IBM z/OS™ or z/VM™ operating system or a UNIX™ based operating system such as the Linux™ operating system (z/OS and z/VM are trademarks of IBM: Corporation; UNIX is a registered trademark of The Open Group in the United States and other countries; Linux is a trademark of Linus Torvalds in the United States, other countries, or both). 
         [0019]      FIG. 2  is a block diagram of a signaling control signal data packet utilized by the virtual network configuration as shown in  FIG. 1 . Each control signal data packet  108  traveling between network adapter  104  and either machine  102  or network  106  contains a number of fields of interest to the present invention, may include, but are not limited to Subcommand  121  (trace, trap or dump). Type  122  (the type of Trace, Trap, or Dump that will be affected). Action  123  (the action that is to be taken (e.g. for Trap=Arm, DisArm, Capture); Options  124  (specific options applicable to the specific subcommand and action): Control Data  125  (optional control “data” or information based on type of subcommand and action); and TOD  126  (a double word host generated data representing the time of day that the host sent the command to OSA). The TOD  126  provides the ability to synchronize the host  110  and remote device Time of Day clocks (occurs during setdiagsst enable trap) 
         [0020]    An example for Subcommand=Trap and Action=Arm, a Trap Identifier (Trap ID) is passed to the adapter to associated the adapter trap with a specific host trap. Control data is optional with a supported length range of 0-256 bytes. 
         [0021]    In the illustrated example, the present invention utilizes a Trap subcommand that has the following three functions (actions) with each action having the following rules. 
         [0022]    Action=Capture indicates OSA should stop and “capture” traces immediately. Action=Arm indicates OSA should update the “Diagnostic Assist State” to “Arm”. This means that the OSA  104  will maintain a new state called the “Diagnostic Assist State” which reflects the status of the last SetDiagAsst primitive. The Arm action solves the scenario in which the host OS  110  can no longer communicate with the OSA  104  to signal the OSA  104  to capture traces (i.e. the “error” itself resulted in a loss of communications). 
         [0023]    Action=DisArm indicates OSA should update the Diagnostic Assist State to “DisArm” The host will disarm the trap when either; the trap has been disabled or the device was stopped or shutdown (i.e. the trap (error) never occurred). 
         [0024]      FIGS. 3 and 4  are flow charts of the processes that integrate diagnostics through signaling method of the present invention. As shown in  FIG. 3  is the set diagnostic assist routine  140  for the host  110  and in  FIG. 4  is the set diagnostic assist routine  160  for the OSA  104 . 
         [0025]    Referring to  FIG. 3 , the set diagnostic assist routine  140  is initialized at step  141 , The initialization includes the establishment of data values for particular data structures utilized in the set diagnostic assist routine  140 . At step  142 , the host  110  receives an operator command to enable or collect a trap. Thus, either the operator command triggers the enable or disable of the capture or the host  110  recognized error event, which triggers the capture. A trap can be enabled when a software error condition occurs and is recognized by the host as virtually any type of error condition (host message, ABEND, storage error, missing packet, etc.) at any point in time (seconds, hours, days, etc). When this error event occurs is what triggers and drives the capture primitive. 
         [0026]    At step  143 , the host  110  determines if the trap diagnostic assist primitive is set. If it is determined at step  143  the trap diagnostic assist primitive is not set, then the set diagnostic assist routine  140  exits at step  159 . However, if it is determined at step  143  the diagnostic assist primitive is set, then it is determined if the action to be taken it is a capture function. If it is determined to step  144  that the action to be taken is a capture, then the host  110  sends a message to the OSA  104  instructing the OSA  104  to capture traces immediately, at step  145 . The OSA  104  will update the note the trap ID and TOD for this command. The host  110  trace post processing will be used to equate the OSA TOD to an equivalent host  110  TOD. 
         [0027]    However, if it is determined at step  144  that the action to be taken is not a capture function, then it is determined at step  151  if the action to be taken is a set arm function. If it is determined at step  151  that the action is a set arm function than the host  110  sends a message to the OSA  104  to capture traces if communication is lost at step  152 . When OSA  104  receives a SetDiagAsst with Action=Arm, it will update the Diagnostic Assist State and note the trap ID and TOD for this command. This signal indicates a host software trap has been set, and that OSA  104  traces are also requested (if or when the failure occurs). If communications is lost with the host  110  (for any reason) and the Diagnostic Assist State is Armed, then OSA must stop and “capture” the OSA traces. Here “capture” has the same meaning to OSA  104  (freeze and preserve the trace table and log). The host  110  trace post processing will be used to equate the OSA TOD to an equivalent host  110  TOD. When the connection is reestablished OSA  104  will always initialize the Diagnostic Assist State to DisArm (no trap is active). 
         [0028]    However, if it is determined at step  151  that the action to be taken is not a set arm, then it is determined at step  153  if the action to be taken is a set disarm. If it is determined at step  153  that the action to be taken is a set this arm function, then the host  110  sends a message to the OSA  104  to disable capture of traces at step  154 . 
         [0029]    The host  110  then exits the set diagnostic assist routine  140  at step  159 . 
         [0030]    Referring to  FIG. 4 , the set diagnostic assist routine  160  for the OSA  104  is initialized at step  161 . The initialization includes the establishment of data values for particular data structures utilized in the set diagnostic assist routine  160  for OSA  104 . At step  162 , the OSA  104  receives a set diagnostic assist primitive from a host  110 . 
         [0031]    At step  163 , the OSA  104  determines if the trap diagnostic assist primitive is set. If it is determined at step  163  the trap diagnostic assist primitive is not set, then the set diagnostic assist routine  160  exits at step  159 . However, if it is determined at step  163  the diagnostic assist primitive is set, then it is determined if the action to be taken it is a capture function, if it is determined to step  164  that the action to be taken is a capture, then the OSA  104  starts capturing traces immediately, at step  165 . 
         [0032]    In the illustrated example, host  110  software has detected an error (a trap was triggered) and communications to OSA  104  is still possible (interface is still active and useable; therefore the SetDiagAsst primitive can be sent by the host  110  and processed by OSA  104 ), Capture means that the trace table (memory) should be saved (along, with other applicable areas such as the log, time of day clock, trap ID, and the like). A capture request does not “DisArm” the trap (does not alter the OSA DiagAsst HostTrap State). 
         [0033]    However, if it is determined at step  164  that the action to be taken is not a capture function, then it is determined at step  171  if the action to be taken is a set arm function. If it is determined at step  171  that the action is a set arm function, then the OSA  104  to capture traces if communication is lost at step  152 . When OSA  104  receives a SetDiagAsst with Action-Arm, it will update the Diagnostic Assist State. This signal indicates a host software trap has been set, and that OSA traces are also requested if or when the failure occurs, if communications is lost with the host  110  for any reason and the Diagnostic Assist State is Armed, then OSA  104  must stop and “capture” the OSA traces. Capture means that the trace table (memory) should be saved (along with other applicable areas such as the log, time of day clock, trap ID, and the like). When the connection is reestablished OSA  104  will always initialize the Diagnostic Assist State to DisArm (i.e. no trap is active). 
         [0034]    However, if it is determined at step  151  that the action to be taken is not a set arm, then it is determined at step  153  if the action to be taken is a set disarm. If it is determined at step  153  that the action to be taken is a set this arm function, then the host  110  sends a message to the OSA  104  to disable capture of traces at step  154 . The host  110  will disarm the trap when either: the trap has been disabled or the host  110  was stopped or shutdown (i.e. the trap (error) never occurred). For example, when a trap is active (i.e. an Arm request previously sent), and the operator “disables” the software trap, the host  110  will send a DisArm request to OSA  104 . A DisArm is also sent for an active trap when the host  110  is stopped or deactivating. The OS at  104  then exits the set diagnostic assist routine  100  at step  179 . 
         [0035]    The present invention can take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment containing both hardware and software elements. In the exemplary embodiment, the invention is Implemented in software, which includes but is not limited to firmware, resident software, microcode, etc. 
         [0036]    Furthermore, the invention can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system. For the purposes of this description, a computer-usable or computer readable medium can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. 
         [0037]    The medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium. Examples of a computer-readable medium, include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk and an optical disk. Current examples of optical disks include compact disk-read only memory (CD-ROM), compact disk-read/write (CD-R/W) and DVD. 
         [0038]    It should be emphasized that the above-described embodiments of the present invention, particularly, any “preferred” embodiments, are merely possible examples of implementations, merely set forth for a clear understanding of the principles of the invention. Many variations and modifications may be made to the above-described embodiments) of the invention without departing substantially from the spirit and principles of the invention. All such modifications and variations are intended to be included herein within the scope of this disclosure and the present invention and protected by the following claims.