Abstract:
An integrated circuit relay device and switching method are presented that permit communications to be routed in a variety of patterns so that diagnostic procedures can be performed in situ, to evaluate digital wrapper communication links. The relay has a pair of inputs, a pair of outputs, a decoder, and an encoder. The relay is programmable to operate in a variety of modes, so that communications can be passed between any set of ports, with or without encoding and decoding processes. The flexible relay routing permits either test signals or normal communications to conducted through the device.

Description:
RELATED APPLICATIONS 
   This application contains material related to the following commonly assigned U.S. Patent Applications incorporated herein by reference: 
   Ser. No. 09/753,185, filed Jan. 2, 2001 for “SYSTEM AND METHOD FOR REDUNDANT PATH CONNECTIONS IN DIGITAL COMMUNICATIONS NETWORK”. 
   Ser. No. 09/753,183, filed Jan. 2, 2001 for “BIDIRECTIONAL LINE SWITCH RING SYSTEM AND METHOD”. 

   BACKGROUND OF THE INVENTION 
   1. Field of the Invention 
   This inventions relates generally to digitally wrapped communications and, more particularly, a system and method for selectively directing and controlling communications to, and from, an integrated circuit (IC) relay. 
   2. Description of the Related Art 
     FIG. 1   a  is a schematic block diagram of a bidirectional line switch ring (prior art). Communication networks often connect nodes with bidirectional communications, to form a ring of nodes. One well-known example is the synchronous optical network (SONET). Bidirectional line switch rings are a method of SONET transport where part of the communications are sent clockwise over a first fiber and the rest of the communications are sent counter-clockwise over a second fiber. 
     FIG. 1   b  is a schematic block diagram of  FIG. 1   a  where the ring has been broken due to a faulty fiber or broken node (prior art). Protection fibers  10  and  12  are shown that heal the ring by permitting communications to travel around the ring in the opposite direction. 
   Protection fiber systems can be enabled in software, however, the solution is complex and requires a complete knowledge of the network fiber system before installation. Alternately, redundant nodes can be provided in the network. However, the hardware can be expensive. Further, the solutions must be done at the box or system level. This type of redundancy can be a problem where space and power consumption are concerns. There is no standard practice redundancy practice in the implementation of BLSR networks. 
   Of course, not all bidirectional communication systems are configured as rings. Regardless of configuration, however, testing and link diagnostic procedures are required when communications become degraded. The troubleshooting communications links is often a cumbersome task. Typically, normal communication must be interrupted and test equipment must be inserted into the link, sometimes in two locations. Then, diagnostic programs are run to test the link. These test methods are intrusive and disruptive to normal operations. Further, these procedures require special equipment set up and the attention of personnel, making it difficult to immediately react to problems in the link. All the above-mentioned problems are compounded by the fact that communication node relays are typically enabled on printed circuit boards with a limited number of access points. 
   It would be advantageous if a communication link could be tested without inserting diagnostic test equipment into the link. 
   It would be advantageous if the relay nodes in a communications link were equipped with functions to enable diagnostic testing. 
   It would be advantageous if the communication flow and processes through the relay could be simply modified for testing purposes. 
   Further, it would be advantageous if communication relay node diagnostic testing could be enabled through a programmable node interface. 
   SUMMARY OF THE INVENTION 
   This invention is an IC relay device system that makes use of programmable features to set the active data paths through the device and to monitor the possible data paths for integrity. In addition to this, it is possible to connect any input data path to any output data path while bypassing, or not, the internal circuitry. In this manner, network diagnostics and board level debug operations are made possible. More specifically, the invention has two inputs and outputs, as well as two main blocks within the device, one for encoding and one for decoding. The input, output, and block connections are programmable. The programmable features permit communication to be selectively routed and selectively operated upon. Thus, the normal communication flow can be redirected for diagnostic purposes, and returned to normal operation with simple program instructions. 
   A diagnostic multicast (one to many) crossbar switching method is also provided for use in an IC digital communication relay device. The method comprises: establishing a first and second input path to receive communications; establishing a first and second output path to supply communications; selectively passing communications from the first input to the first and second outputs; selectively passing communications from the second input to the first and second outputs; selectively decoding received communications; and, selectively encoding supplied communications. Additional details of the IC relay device and method of the present invention are presented below. 

   
     BRIEF DESCRIPTION OF THE DRAWING 
       FIG. 1   a  is a schematic block diagram of a bidirectional line switch ring (prior art). 
       FIG. 1   b  is a schematic block diagram of  FIG. 1   a  where the ring has been broken due to a faulty fiber or broken node (prior art). 
       FIG. 2  is a detailed schematic block diagram of the present invention IC digital communications relay device. 
       FIG. 3  is a simplified depiction of  FIG. 2  featuring a specific implementation of the relay device. 
       FIG. 4  is a simplified depiction of  FIG. 2  featuring the second mode of relay device operation. 
       FIG. 5  is a simplified depiction of  FIG. 2  featuring the third mode of relay device operation. 
       FIG. 6  is a simplified depiction of  FIG. 2  featuring the fourth mode of relay device operation. 
       FIG. 7  is a simplified depiction of  FIG. 2  featuring the fifth mode of relay device operation. 
       FIG. 8  is a simplified depiction of  FIG. 2  featuring the sixth mode of relay device operation. 
       FIG. 9  is a simplified depiction of  FIG. 2  featuring the seventh mode of relay device operation. 
       FIG. 10  is a simplified depiction of  FIG. 2  featuring the eighth mode of relay device operation. 
       FIG. 11  is a simplified depiction of  FIG. 2  featuring the tenth mode of relay device operation. 
       FIG. 12  is a simplified depiction of  FIG. 2  featuring the twelfth mode of relay device operation. 
       FIG. 13  is a simplified depiction of  FIG. 2  featuring the thirteenth mode of relay device operation. 
       FIG. 14  is a flowchart depicting an alternate method for diagnostic multicast crossbar switching in an integrated circuit (IC) digital communication relay device. 
       FIG. 15  is a flowchart depicting an alternate method for diagnostic multicast crossbar switching in an integrated circuit (IC) digital communication relay device. 
   

   DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     FIG. 2  is a detailed schematic block diagram of the present invention IC digital communications relay device to enable diagnostic multicast switching. The figure illustrates the available connections within the device. Connections can be made for the redundant configurations and for many different loopbacks to aid in diagnosing connectivity within the network. 
   The relay device  100  comprises a first input port on line  102 , a first output port on line  104 , a second input port on line  106 , and a second output port on line  108 . Also included is a decoder  110  having an input on line  112  to accept communications. The decoder  110  has an output on line  114  to supply decoded and corrected communications. An encoder  116  has an input on line  118  and an output on line  120  to supply encoded communications. In the simplest form, the encoding and decoding operations are parity data. Alternately, the communications are encoded and decoded with forward error correction (FEC), such as the Reed-Solomon (RS) algorithm, or the equivalent. 
   A switch system  122  has an input on line  124  to accept switching commands for selectively connecting the input ports  102 / 106 , output ports  104 / 108 , decoder  110 , and encoder  116 . Although not explicitly shown, the various switch points inside the switch system  122  are all controlled by commands accepted on line  124 . 
     FIG. 3  is a simplified depiction of  FIG. 2  featuring a specific implementation of the relay device  100 . In some aspects of the invention, the switch system  122  accepts a first mode command on line  124  and in response connects the first input port on line  102  to the decoder input on line  112 . The decoder output on line  114  is connected to the first output port on line  104 . In addition, the switch system  110  connects the second input port on line  106  to the encoder input on line  118 , and the encoder output on line  120  to the second output port on line  108 . This first mode of operation is a typical operating mode. 
     FIG. 4  is a simplified depiction of  FIG. 2  featuring the second mode of relay device  100  operation. The switch system  122  accepts the second mode command on line  124  and in response connects the first input port on line  102  to the first output port on line  104 . The switch system  122  also connects the second input port on line  106  to the second output port on line  108 . 
     FIG. 5  is a simplified depiction of  FIG. 2  featuring the third mode of relay device  100  operation. The switch system  122  accepts the is third mode command on line  124  and in response connects the first input port on line  102  to the second output port on line  108 . The switch system  122  also connects the second input port on line  106  to the first output port on line  104 . 
     FIG. 6  is a simplified depiction of  FIG. 2  featuring the fourth mode of relay device  100  operation. The switch system  122  accepts the fourth mode command on line  124  and in response connects the first input port on line  102  to the second output port on line  108  and to the first output port on line  104 . 
     FIG. 7  is a simplified depiction of  FIG. 2  featuring the fifth mode of relay device  100  operation. The switch system  122  accepts the fifth mode command on line  124  and in response connects the second input port on line  106  to the second output port on line  108  and to the first output port on line  104 . 
     FIG. 8  is a simplified depiction of  FIG. 2  featuring the sixth mode of relay device  100  operation. The switch system  122  accepts the sixth mode command on line  124  and in response connects the first input port on line  102  to the decoder input on line  112 . The switch system  122  connects the decoder output on line  114  to the encoder input on line  188 . Also, the encoder output on line  120  is connected to the second output port on line  108 . 
     FIG. 9  is a simplified depiction of  FIG. 2  featuring the seventh mode of relay device  100  operation. The switch system  122  accepts the seventh mode command on line  124  and in response connects the second input port on line  106  to the decoder input on line  112 . The switch system  122  connects the decoder output on line  114  to the encoder input on line  118 . Also, the encoder output on line  120  is connected to the first output port on line  104 . 
     FIG. 10  is a simplified depiction of  FIG. 2  featuring an eighth mode of relay device  100  operation. The switch system  122  accepts the eighth mode command on line  124  and in response connects the first input port on line  102  to the decoder input on line  112 . The switch system  122  connects the decoder output on line  114  to the encoder input on line  118 . Also, the encoder output on line  120  is connected to the first output port on line  104 . A ninth mode not shown would be similar to the eighth mode, except that the decoder input is connected to the second input  106  and the encoder output connected to the second output on line  108 . 
     FIG. 11  is a simplified depiction of  FIG. 2  featuring the tenth mode of relay device  100  operation. The switch system  122  accepts the tenth mode command on line  124  and in response connects the first input port on line  102  to the encoder input on line  118 . The switch system  122  connects the encoder output on line  120  to the decoder input on line  112 . The decoder output on line  114  is connected to the first output port on line  104 . An eleventh mode not shown would be similar to the tenth mode, except that the encoder input is connected to the second input  106  and the decoder output connected to the second output on line  108 . 
     FIG. 12  is a simplified depiction of  FIG. 2  featuring the twelfth mode of relay device  100  operation. The switch system  122  accepts the twelfth mode command on line  124  and in response connects the first input port on line  102  to the decoder input on line  112 . The switch system  122  connects the decoder output on line  114  to the encoder input on line  118  and the second output on line  108 . The encoder output on line  120  is connected to the first output port on line  104 . 
     FIG. 13  is a simplified depiction of  FIG. 2  featuring the thirteenth mode of relay device  100  operation. The switch system  122  accepts the thirteenth mode command on line  124  and in response connects the first input port on line  102  to the encoder input on line  118 . The switch system  122  connects the encoder output on line  120  to the decoder input on line  112  and the second output on line  108 . The decoder output on line  114  is connected to the first output port on line  104 . 
     FIG. 14  is a flowchart depicting a method for diagnostic multicast crossbar switching in an integrated circuit (IC) digital communication relay device. Although the method is depicted as a series of numbered steps for clarity, no order should be inferred unless explicitly stated. The method begins with Step  200 . Step  202  establishes a first and second input path to receive communications. Step  204  establishes a first and second output path to supply communications. Step  206  selectively passes communications from the first input to the first and second outputs. Step  208  selectively passes communications from the second input to the first and second outputs. Step  210  selectively decodes received communications. Step  212  selectively encodes supplied communications. 
   In a first mode of operation, Step  210  decodes communications received at the first input, and supplies the decoded communications at the first output. Step  212  encodes communications received at the second input and supplies the encoded communications at the second output. 
   In a second mode of operation, Step  206  passes communications received at the first input to the first output. Step  208  passes communications received at the second input to the second output. 
   In a third mode of operation, Step  206  passes communications received at the first input to the second output. Step  208  passes communications received at the second input to the first output. 
   In a fourth mode of operation, Step  206  passes communications received at the first input to the second output and to the first output. 
   In a fifth mode of operation, Step  208  passes communications received at the second input to the second output and to the first output. 
   In a sixth mode of operation, Step  210  decodes communications received at the first input. Step  212  encodes the decoded communications. Step  204  supplies the encoded communications at the second output. 
   In a seventh mode of operation, Step  210  decodes communications received at the second input. Step  212  encodes the decoded communications. Step  208  supplies the encoded communications at the first output. 
   In an eighth mode of operation, Step  210  decodes communications received at the first input. Step  212  encodes the decoded communications. Step  208  supplies the encoded communications at the first output. 
   In a ninth mode of operation, Step  210  decodes communications received at the second input. Step  212  encodes the decoded communications. Step  208  supplies the encoded communications at the second output. 
   In a tenth mode of operation, Step  212  encodes communications received at the first input. Step  210  decodes the decoded communications. Step  208  supplies the encoded communications at the first output. 
   In an eleventh mode of operation, Step  212  encodes communications received at the second input. Step  210  encodes the decoded communications. Step  208  supplies the encoded communications at the second output. 
   In a twelfth mode of operation, Step  212  decodes communications received at the first input. Step  208  supplies decoded communications at the second output. Step  210  encodes the decoded communications. Step  208  also supplies the encoded communications at the first output. 
   In a thirteenth mode of operation, Step  210  encodes communications received at the first input. Step  208  supplies encoded communications at the second output. Step  212  decodes the encoded communications. Step  208  also supplies the decoded communications at the first output. 
     FIG. 15  is a flowchart depicting an alternate method for diagnostic multicast crossbar switching in an integrated circuit (IC) digital communication relay device. The method begins with Step  300 . Step  302  receives a first communication from a first node. A node is defined herein to be a communication partner transmitter or receiver. Step  304  selectively decodes the first communication and supplies it to a second node. Step  306  selectively passes the first communication to the second node. Step  308  selectively passes the first communication to the first node. Step  31  selectively decodes the first communication, encodes the first communication, and supplies the first communication to the first node. 
   In some aspects of the invention, Step  312  receives a second communication from the second node. Step  314  selectively encodes the second communication and supplies it to the first node. Step  316  selectively passes the second communication to the first node. Step  318  selectively passes the second communication to the second node. Step  320  selectively encodes the second communication, decodes the second communication, and supplies the second communication to the second node. 
   In some aspects of the invention, the device includes an encoder and a decoder having inputs and outputs, in which the first node has input and output ports, and in which the second node has input and output ports. Selectively decoding the first communication and supplying it to a second node in Step  304  includes connecting the first node output port to the decoder input and connecting the decoder output to the second node input port. 
   In some aspects, selectively passing the first communication to the second node in Step  306  includes connecting the first node output port to the second node input port. 
   In some aspects, selectively passing the first communication to the first node in Step  308  includes connecting the first node output port to the first node input port. 
   In some aspects of the invention, selectively decoding the first communication, encoding the first communication, and supplying the first communication to the first node in Step  310  includes connecting the first node output port to the decoder input, connecting the decoder output to the encoder input, and connecting the encoder output to the first node input port. 
   In some aspects, selectively encoding the second communication and supplying it to the first node in Step  314  includes connecting the second node output port to the encoder input and connecting the encoder output to the first node input port. 
   In some aspects of the invention, selectively passing the second communication to the first node in Step  316  includes connecting the second node output port to the first node input port. 
   In some aspects, selectively passing the second communication to the second node in Step  318  includes connecting the second node output port to the second node input port. 
   In some aspects, selectively encoding the second communication, decoding the second communication, and supplying the second communication to the second node in Step  320  includes connecting the second node output port to the encoder input, connecting the encoder output to the decoder input, and connecting the decoder output to the second node input port. 
   An IC relay and switching method have been presented that integrate diagnostic features and line monitoring support, to aid with switching decisions and network troubleshooting. This invention makes use of programmable features that allow the user to set the active data paths through the device and to monitor the possible data paths for integrity. In addition to this, it is possible to connect any input data path to any output data path while selectively bypassing the internal circuitry to aid in network diagnostics as well as board level debug operations. Examples of a few particular relay switch combinations have been presented above. Other combination are also possible. Further, although the mode commands have been depicted as being supplied from an external source, in some aspects of the invention, the modes of operation are responsive to internal monitoring. The status of the FEC data at the input ports on the device can be monitored for loss of signal, loss of clock, synchronization status (Loss of Frame and Out of Frame), and bit error rates (Signal Fail and Signal Degrade). In addition to this, several of the overhead bytes could also be used for switching purposes. The output ports are monitored for the presence of clock. The status of these monitored items are made available to a microprocessor interface where they can be read by an external source or used internally. Other variations and embodiments of the inventor will occur to those skilled in the art.