Abstract:
Apparatus and method for automatically testing hardware and software components of a system. A request type message is generated in the software component of the system. A request-type message, including a destination address and a source address, is made to traverse the transmit channel of the system. The destination address and source address are swapped, i.e., interchanged, and the message is wrapped into the receive channel where it is forwarded to the software component for further analysis. Modification is in the transmit channel to modify the message by swapping the source address and the destination address to preclude discarding of the message by the receive channel.

Description:
BACKGROUND OF THE INVENTION  
         [0001]    1. Field of the Invention  
           [0002]    This invention relates to self testing in a computer communication system using wrap-around to send a test message to itself to verify that components of the system are operating properly. More particularly, it relates to swapping destination and sender addresses in the transmit path to preclude the system protocol from discarding the test message in the receive path.  
           [0003]    2. Description of the Related Art  
           [0004]    The use of wrap-around to test the transmitting and receiving processes in a networking system is well known. Some mechanism for coupling a transmitted signal back into the receiving port of the system is provided, which can be direct hardware coupling or a program-operated switching arrangement.  
           [0005]    If the system being tested has a plurality of software and hardware levels and the messages are complex and cast in frames, strict protocols must be adhered to. One of the formal protocols is detecting the address of an incoming message and rejecting the message if it is not addressed to the receiving system.  
           [0006]    The system protocols require an external destination address in order for the message to exit via the transmit output ports. The system protocol then detects that the wrapped message is not addressed to the system under test and discards it.  
           [0007]    To overcome this problem when using wrap-around to test system components, manual intervention or custom software are used.  
         BRIEF SUMMARY OF THE INVENTION  
         [0008]    This invention is directed to the efficient and automatic use of self-testing in systems capable of communication  
           [0009]    In accordance with the invention, a system which includes message generators—the messages containing source addresses and destination addresses—with the capability of transmitting and receiving messages, is provided with a wrap-around capability to connect together the ports for transmitting and receiving messages so that the system can receive messages it transmits. To prevent discarding of messages because the destination address is incorrect, there is a swapping capability included in said transmission portion of the system to interchanging source addresses and destination addresses in messages.  
           [0010]    In one implementation of the invention, the swapping capability is incorporated in a driver device that couples the messages to the transmission components  
           [0011]    A hardware implementation can employ multiplexors to selectively interchange the source and destination addresses of messages, the multiplexors being activated simultaneously with activation of the wrap-around capability. 
       
    
    
     BRIEF DESCRIPTION OF THE DRAWING  
       [0012]    The invention is described in detail by referring to the various figures which illustrate specific embodiments of the invention, and wherein like numerals refer to like elements.  
         [0013]    [0013]FIG. 1 is a block diagram of a network terminal system in which the invention is used.  
         [0014]    [0014]FIG. 2 is an level-vs-event diagram showing the sequence of actions according to the invention.  
         [0015]    [0015]FIG. 3 is a block logic diagram illustrating a hardware implementation of the invention. 
     
    
     DETAILED DESCRIPTION OF THE INVENTION  
       [0016]    When testing networking system hardware components using wrap-around or message wrap, a user sends out a test message which is then received back into the user&#39;s system. Comparing the outgoing message with the incoming message, hardware failures can be detected. This permits a system to be tested in isolation, i.e., without tying up other stations on the networking system.  
         [0017]    Typically, a software process is used to generate data from a control point in the system. The data flows through the software stack of the system and through the hardware components of the system in the direction of the transmit interface until it reaches the point where a wrap has been inserted. A wrap can be implemented by a hardware loop using a special software selective mode or by an external means.  
         [0018]    At the wrap point, the data enters the receive path of the system in the direction of the software stack. A user skilled in the art knows that the wrapped data from the transmit path to the receive path is not modified by the wrap mechanism. As a result, the embedded destination address in the data, which is that of an external element, remains the same after the wrap. This causes the data or message packet to be discarded before it reaches a software system component that can verify the integrity of the test data.  
         [0019]    Typically, modifications are added to the receive path of the system to display the data before it is discarded. The user then must verify the data integrity manually or by writing a custom software program. This is time consuming and subject to error.  
         [0020]    The invention described herein performs an address swap by exchanging the positions of the destination address and the source address in the data test message. This can be done anywhere along the transmit path before the wrap point. Thus, the destination address in the message packet is the source address which is the address of the system being tested. As a result, data verification testing can be performed by system processing in a normal manner using automatic verification.  
         [0021]    This approach is applicable to any system having input and output communication ports but is especially useful with a message protocol of a request/reply nature. In this case, the system under test generates a reply in response to the wrapped data received. This reply is then wrapped back. This checks system operation in both directions.  
         [0022]    Address swapping can be performed in any of the transmit path components. A preferable point is the final action of the software stack before the data enters the hardware components that transmit the data.  
         [0023]    [0023]FIG. 1 shows the components of a system useful in practicing the invention. The protocol in a software component  1  generates the test data including a source address, a destination address, and a packet of test data. The test message is represented by a triplet as &lt;D,S,P&gt; where D denotes some external destination address, S denotes the source (user&#39;s) address, and P is the test data or payload which is determined by the user.  
         [0024]    A device driver software component  3  interfaces with hardware components  5  that are required to transmit the data. A wrap switch  7  is used either to send the message on to external connections  9  in a normal mode or to wrap the message back in a test mode to the hardware components  5  required for receiving the test data.  
         [0025]    If the protocol is a request/reply types then the protocol software  1  can terminate the request and generate a reply which is then wrapped again to the receiver port. In this way, the entire system can be tested  
         [0026]    In the absence of the method according to the invention, the data in the test mode is passed from the device driver software  3  to the hardware components  5  unchanged. Thus, when the data is received by the hardware components  5  via the wrap switch  7 , it does not contain as the destination address the address of the system under test. The protocol software  1  then discards the message as passed to it by the device driver software  3 .  
         [0027]    Using the method of the invention, the source address and the destination address are swapped when the data is passed from the protocol software  1  through the device driver software  3  to the hardware components  5  during the transmit phase of the test.  
         [0028]    The following is a pseudo-code description of the invention and is keyed to the reference numerals of FIG. 2. The figure shows the chain of events according to the system levels, viz., the user level, the application program level, the device driver software level, the hardware level, and the wrap level. The latter can be manually connected or switched by software commands.  
         [0029]    1. User input to test system ( 21 )  
         [0030]    2. Application originates request message M 1 =&lt;D,S,P 1 &gt; ( 22 )  
         [0031]    3. M 1  is passed to driver level  
         [0032]    4. Driver creates M 2 =&lt;S,D,P 1 &gt; ( 23 )  
         [0033]    5. M 2  forwarded to hardware components  
         [0034]    6. M 2  transmitted via system output port ( 24 )  
         [0035]    7. M 2  routed to system input port by wrap mechanism ( 25 )  
         [0036]    8. M 2  received by system ( 26 )  
         [0037]    9. M 2  forwarded by driver to application level ( 27 )  
         [0038]    10. Application terminates request ( 28 )  
         [0039]    11. Application generates reply message M 3 =&lt;D,S,P 2 &gt; where P 2 =f(P 1 ) ( 29 )  
         [0040]    12. M 3  passed to driver  
         [0041]    13. Driver creates M 4 =&lt;S,D,P 2 &gt; ( 210 )  
         [0042]    14. M 4  forwarded to hardware components  
         [0043]    15. M 4  transmitted via system output port ( 211 )  
         [0044]    16. M 4  routed to system input port by wrap mechanism ( 25 )  
         [0045]    17. M 4  received by system ( 212 )  
         [0046]    18. M 4  forwarded to by driver to application level ( 213 )  
         [0047]    19. Application terminates reply ( 214 )  
         [0048]    20. Output to user level ( 215 )  
         [0049]    At step 11, the generation of P 2  as a function of P 1  is based on the specific configuration of the application. Correct configuration of the application as well as correct operation of all components can be verified by examining output to the user.  
         [0050]    [0050]FIG. 3 shows a hardware implementation of the invention. The destination and source addresses of a test message  31 , either the request or reply message, are coupled to a pair of multiplexors  32  and  33 . The multiplexors pass the A input signals to the output terminal D when the control input signal C is not activated. When the control input signal C is activated, the B input signals are passed to the output terminal D. The test data portion, P in the above description, is passed unchanged  
         [0051]    Thus, when the wrap signal is not active, the destination address of the test message  31  is passed to destination address of an outgoing message  34  by the multiplexor  32 . The source address of the test message  31  is passed to the source address of the the outgoing message  34  by the multiplexor  33 .  
         [0052]    When the wrap signal is active, the source address of the test message  31  is passed to the destination address of the outgoing message  34  by the multiplexor  32  and the destination address of the test message  31  is passed to the source address of the outgoing message  34  by the multiplexor  33 .  
         [0053]    The outgoing message  34  is coupled to an input terminal D of a selector  35 . When the control signal C is not activated, the input signals from the input terminal D are passed to the output terminal A. When the control signal C is activated, the input signals at the input terminal D are passed to the output terminal B. The signals from the output terminal A of the selector  35  are directed to the network communication connections to the external devices. The signals from output terminal B of the selector  35  are connected to the input terminals of the receive ports of the system under test.  
         [0054]    Thus, when the wrap signal is not active, the system output signals are connected to the network with the source and destination addresses unchanged. When the wrap signal is active, the system output signals are wrapped back into the receive terminals of the system under test with the source and destination addresses interchanged.  
         [0055]    The operation of the system according to the invention is the same whether implemented in hardware or in software.  
         [0056]    While the invention has been particularly shown and described with reference to a preferred embodiment thereof, it will be understood by those skilled in the art that various changes and modifications in form and details may be made therein without departing from the spirit and scope of the invention according to the following claims.