Cross reference is made to U.S. patent application Ser. No. 09/321,066, filed May 27, 1999, entitled Distributed Network Repeater System; Ser. No. 09/330,434 filed Jun. 11, 1999, entitled Closely-Positioned Multiple GBIC Connector and Ser. No. 09/330,733, filed Jun. 11, 1999, entitled Distributed Network Repeater Module and Method all incorporated herein by reference.
The present invention relates to a method and apparatus which can automatically detect the presence of a loop configuration and can automatically break the loop, in a portion of a network or other electronic system, and in particular to a system which can reliably select a component as a loop breaking master.
A number of electronic and/or optical systems can be configured to provide a plurality of nodes with the nodes communicating among one another (and/or with other parts of the system) over a plurality of communication links. Although some or all features of the present invention can be applied to substantially any electrical, optical or electro-optical system having a plurality of nodes communicating over links, one useful illustrative example involves a plurality of nodes, each of which is a repeater for use in the context of a network transceiver, such as an Ethernet transceiver or switch. Although some or all features of the present invention can be used with any of a plurality of communication links (such as optical fiber links, infrared (IR) radio or other wireless links and the like), in one illustrative example, the links can include cables connecting ports of the repeaters to one another.
In any group of connected nodes, two classes of connection topologies are possible: open and closed topologies. In open topologies (a message sent from a first node cannot return to the first node without passing through at least one of the communication links more than once.
Although there may be many multi-node electrical or optical systems in which either (or both) of a closed-class topology or an open-class topology may be used, there are also some systems in which it is desired to avoid or eliminate loop configurations. One example is when the nodes are repeaters of an Ethernet transceiver. In this example, the presence of a loop configuration among nodes can result in collisions of packets or other communications (i.e. the presence of two or more packets on the same link or node during substantially the same time period). Accordingly, it would be useful to provide a system which can detect the presence of a loop configuration. It would further be useful to provide a system which can, preferably substantially automatically (i.e. without the need for human control, or manipulation), break the loop or otherwise reconfigure the system to eliminate the loop configuration (preferably converting it to an open-topology configuration).
Many electrical or optical systems operate according to one or more communication protocols, e.g. defining items such as the size and fields of communication packets (if any), the steps to be taken in response to certain types or contents of packets and the like. Because it can be disruptive and expensive to redesign and implement a new communication protocol, especially for systems that already have a relatively large installed base of apparatus, it would be useful to provide a system, a method and apparatus for detecting and/or breaking loop configurations which is substantially compatible with at least some existing communication protocols in the sense of avoiding substantially interfering with communication protocols used by a current installed base of apparatus. Preferably, a system, method and apparatus to detect and/or break configurations can operate quickly (preferably requiring less than about 15 seconds, more preferably less than about 10 seconds and even more preferably less than about 5 seconds) to perform detection and/or loop breaking operations e.g. in a system of 8 nodes or less. Preferably, such a system is reliable, such as being substantially immune to at least certain types of communication errors or losses and/or without producing undefined states, and is preferably relatively easy and/or inexpensive to implement, such as requiring only (or, in some embodiments, mostly) software changes in order to implement an existing apparatus.
In some electrical or optical multi-node systems, the effective loss of a node and/or a communication link (e.g. from hardware or software failure, environmental challenge, operator error or the like) can disrupt the system such as by isolating one or more nodes in a group from communicating with other nodes in the group. For example, in the configuration depicted in
The present invention includes a recognition of the existence, source and/or nature of certain problems, including as described herein. In one aspect, the presence of a loop is detected by a procedure which involves a node sending a communication to one or both of its neighbors, each neighbor, in turn, passing the communication on to the next neighbor. The communication includes a value or characteristic with the property that only one of the nodes has (or is associated with) the particular value or characteristic. Each node compares its own value or characteristic with that contained in the received message and substitutes its own value or characteristic into the message (before transmitting it to its neighbor) only if its own value or characteristic is closer to the particular value or characteristic than the value or characteristic which was contained in the received communication. As one illustrative example, the value or characteristic can be the node address and the particular value or characteristic can be the lowest (or highest) node address in the system. In this example, a node begins the process by transmitting a loop-detecting message to, e.g., one of its neighbors with the initiating node placing its own address in the message. The next node, upon receiving the message compares the received address to its own address and substitutes its own address if its own address happens to be smaller than the received address (i.e. happens to be closer to the lowest node address in the system). After such substitution (if any) the message is then passed on to the next node (if there is a next node) which performs a similar process, substituting its own address only if it is lower than the received address. Each node also, in doing the comparison, can detect if the received address is equal to its own address. In the described example, a node can only receive a message having an address equal to its own address if (a) the node has the lowest address of any node in the actively communicating system and (b) the node had previously sent out its own address in a loop-detecting communication (since this is the only way for this address to be placed into a circulating loop-detecting message). However, at this point, it is known that a node has sent out a message and the message has passed through the communication system, without passing through any link or node more than once, and yet has returned to the originating node. In other words, at this point it is known that the nodes and communication links form a closed or loop configuration.
Although the system can be initiated in any of a number fashions, including on a periodic basis, in response to a request from an external controller or other source, preferably a loop detection process is initiated in response to detecting that a new node and/or communication link has been added or deleted from the system.
In one aspect, the system provides the ability to, preferably substantially automatically, reconfigure a closed system to place it into an open-type topology. In one embodiment, the invention is implemented in a system in which a loop configuration is substantially circular (each node has exactly two communication links and each communication link is coupled to exactly two nodes). In at least this type of system, the loop can be broken by effectively disabling any single link, and the system will still be operable as an open system, with each node still being able to, at least indirectly, communicate with each other node. In order for a successful reconfiguration to occur (effectively disabling a single link, but no more than one link) the present invention preferably provides a system, method and apparatus which provides for a single one of the nodes to act as a loop breaking master. Although it would be possible to pre-designate one of the nodes as the master (such as providing it with a unique hardware or other signature or capability) such an approach may not be as desirable as other approaches. Predesignating a node (or communication link) as a master (or otherwise unique) places a burden on the user to assure that every system is installed in such a manner as to have exactly one (and no more than one) unique node (or communication link). This burden may be infeasible, especially in systems in which nodes or communication links are substantially modular (can be readily added or removed by users). Additionally, such a system would typically fail to detect and/or break loops if the unique node or communication link became disabled or was removed.
According to one embodiment of the invention, the same system which is used for detecting a loop is also used for designating the loop-breaking master node. In one embodiment, whenever a node detects a loop (by receiving a loop detection message which contains the node's own address) that node designates itself as a loop-breaking master node. Of course, it is possible to provide numerous variations such as always designating the next-higher-address neighbor as the master, and the like. It is also possible for the master node to delegate some or all operations involved in breaking the loop to a different node.
For example, if the first node 112a in the illustration of
In one aspect, embodiments of the present invention can provide for reactivating a currently-deactivated communication link, e.g., in response to detecting a condition in which one or more nodes are isolated (cannot communicate with at least some other nodes). As one illustrative example, if the system as illustrated in
As illustrated in
In one aspect, in a system having a plurality of nodes (such as Ethernet repeaters), coupled by communication links (such as cables), systems and protocols are provided for detecting and/or breaking loops. In one aspect, in response to an added link, a repeater sends a “detect loop” message, containing its own address, to at least one neighbor. Each repeater which receives the “detect loop” message, in turn, sends it to its own neighbor, with the lesser of the received address and its own address. A repeater which receives a “detect loop” message containing its own address declares itself a master loop-breaker and can isolate one of its ports to break the loop. In one aspect, a previously intentionally-isolated port can be re-activated, e.g., in response to the loss of a communication link which could potentially isolate one or more nodes.
Although some or all features of the present invention can be implemented in a wide variety of electrical, optical or electro-optical systems, in one illustrative example, as illustrated in
In the illustration of
Preferably, each repeater 212a,b,n has a capability (e.g. implemented in a state machine 224a,b) of detecting whether there is an operative communication link from either or both of the ports 218a, 218b and another node. In one embodiment, a link is detected if a specified synchronization signal is detected and a full-half duplex auto negotiation process completes. An example of full-half duplex auto negotiation is described, e.g., in Ser. No. 09/330,733, supra.
According to one embodiment of the invention, a loop detect process is initiated and a repeater detects that a link has been added 312 (
Although any number of protocols could be devised and used for sending “loop detect” messages, in one embodiment, the “loop detect” messages (and, preferably, other messages used in the system as described herein) is similar in form and protocol to messages already used in a full/half duplex auto-negotiation system. Preferably, the auto-negotiation system is point-to-point, such that a “loop detect” message, sent to a neighbor, will not be received by other nodes in the system unless the neighbor re-generates it. An advantage of using a form or protocol for messages similar to that already used (e.g., in an installed base of apparatus) is to facilitate implementing invention in a fashion which can be backwards compatible (so that implementation of the present invention does not disrupt or otherwise substantially affect operation of current apparatus) and/or such that little or no modification or replacement of existing apparatuses is required in order to implement the present invention. In one embodiment, the present invention can be implemented by using existing Ethernet switches (or other components) in connection with repeaters which have been configured with state machines 224ab which implement embodiments of the present invention, e.g., as described more thoroughly below. In one embodiment, a “loop detect” message is substantially similar in length to an auto negotiate message; but, in a field which, in the auto negotiate message, always has a first content (e.g. all zeros), the “loop detect” message will have a different content (at least one non-zero bit) to identify it as other than an auto negotiate message and, in particular, as a “loop detect” message. As will be understood by those of skill in the art, the repeaters can include circuitry which parses this field of messages and handles the message as an auto negotiate message if this field contains all zeros and, otherwise, handles this message (e.g. as described below) as a “loop detect” message in response to other contents in this field. Typically, the “loop detect” message will contain additional information such as a “least MAC address.” In general, in a point-to-point system a source address field and/or a destination address field is not needed or provided. If desired, data integrity can be provided by an acknowledgment field which echos the data field(s) previously received.
As depicted in
At this point, the presence of a loop has been detected and it would be possible to implement embodiments of the invention in which the process stops at this point and/or outputs an indication of the existence of a loop, e.g. for appropriate manual handling by an operator and the like. Preferably, however, in response to the detection of a loop, the MLB will disable one of the ports, in this example, it's own second or B port 432. Preferably the port is disabled in a fashion such that it can later be reenabled. In some embodiments, disabling the port involves suspending receipt or transmission of normal communication packets through the port (although, in some embodiments, the port may still be used for receiving or transmitting negotiation or similar system or control packets). In this way a communication link 432 can be effectively suspended or eliminated, even without physically removing or switching off the link medium.
The fourth repeater 512d, having an address 522d less than the “least MAC address” of the received packet 526c, will output a packet 524d (
As depicted in
As can be seen from comparing
As depicted in
The MLB will then unset its MLB flag 722. The reactivation of a previously (intentionally) deactivated communication link can also be achieved using procedures other than that depicted in
In general, it can be advantageous to provide a system having a configuration similar to that depicted in
The following is a table showing actions taken upon each state transition: (X means any state from A to G except the end state)
Although
In light of the above disclosure, a number of advantages of the present invention can be seen. The present invention can provide a system for detecting the presence of a loop in an electrical, optical or electro-optical system having multiple nodes and communication links, preferably in a substantially automatic fashion. The present invention can provide for breaking a loop, preferably substantially automatically, so as to provide a open-type topology which still permits all nodes to at least indirectly communicate with all other nodes. The present invention can provide a system for reconfiguring the system to convert it from a system in which some nodes are isolated to a system in which all nodes can communicate with one another, at least indirectly. In at least some embodiments, the present invention can be implemented in a fashion which is substantially backwards compatible with existing protocols of the installed base of apparatus and/or which requires little or no modification or replacement of existing apparatus.
A number of variations and modifications of the invention can be used. It is possible to use some features of the invention without using others. For example, it is possible to use loop detecting without loop breaking. It is possible to use reconfiguration to correct isolated nodes without using loop breaking or detecting. Although the invention has been described in connection with a gigabit Ethernet network, some or all features of the present invention can be used in connection with other systems including other types of computer-based networks, local area networks, wide area networks, Internet installations or components, voice communication systems such as land line, microwave, cellular or satellite-based voice communications and the like. Although the present invention can be implemented in a substantially modular-repeater environment including as described in Ser. No. 09/330,733, supra, some or all features of the present invention can be used in connection with substantially integrated or otherwise non-modular repeaters or other components. Although the present invention was described including by examples in which nodes were repeaters of switch components, some or all features of the present invention can be implemented and systems where nodes are other types of devices including hubs, routers, switches, bridges, gateways, personal computers, printers or other peripheral devices, telephones or other communication devices and the like. Although embodiments were described in which packets are sent from both ports of a repeater, it is also possible (although not necessarily desirable) to implement operable embodiments in which packets are output only through one port, as part of a loop detect procedure.
The present invention, in various embodiments, includes components, methods, processes, systems and/or apparatus substantially as depicted and described herein, including various embodiments, subcombinations, and subsets thereof. Those of skill in the art will understand how to make and use the present invention after understanding the present disclosure. The present invention, in various embodiments, includes providing devices and processes in the absence of items not depicted and/or described herein or in various embodiments hereof, including in the absence of such items as may have been used in previous devices or processes, e.g. for improving performance, achieving ease and\or reducing cost of implementation. The present invention includes items which are novel, and terminology adapted from previous and/or analogous technologies, for convenience in describing novel items or processes, do not necessarily retain all aspects of conventional usage of such terminology.
The foregoing discussion of the invention has been presented for purposes of illustration and description. The foregoing is not intended to limit the invention to the form or forms disclosed herein. Although the description of the invention has included description of one or more embodiments and certain variations and modifications, other variations and modifications are within the scope of the invention, e.g. as may be within the skill and knowledge of those in the art, after understanding the present disclosure. It is intended to obtain rights which include alternative embodiments to the extent permitted, including alternate, interchangeable and/or equivalent structures, functions, ranges or steps to those claimed, whether or not such alternate, interchangeable and/or equivalent structures, functions, ranges or steps are disclosed herein, and without intending to publicly dedicate any patentable subject matter.
Number | Name | Date | Kind |
---|---|---|---|
3533045 | Henschen | Oct 1970 | A |
3652899 | Henschen | Mar 1972 | A |
3704394 | Johnson | Nov 1972 | A |
3905665 | Lynch et al. | Sep 1975 | A |
4399531 | Grande et al. | Aug 1983 | A |
4451916 | Casper et al. | May 1984 | A |
4529979 | Kusama et al. | Jul 1985 | A |
4551829 | Dragoo et al. | Nov 1985 | A |
4745597 | Morgan et al. | May 1988 | A |
4832619 | Eck et al. | May 1989 | A |
4869680 | Yamamoto et al. | Sep 1989 | A |
4995035 | Cole et al. | Feb 1991 | A |
5016142 | White | May 1991 | A |
5115495 | Tsuchiya et al. | May 1992 | A |
5123859 | Davis et al. | Jun 1992 | A |
5176221 | Aprill | Jan 1993 | A |
5181858 | Matz et al. | Jan 1993 | A |
5222168 | Saito et al. | Jun 1993 | A |
5291368 | Conroy-Wass | Mar 1994 | A |
5295154 | Meier et al. | Mar 1994 | A |
5321812 | Benedict et al. | Jun 1994 | A |
5432775 | Crayford | Jul 1995 | A |
5491418 | Alfaro et al. | Feb 1996 | A |
5535195 | Lee | Jul 1996 | A |
D372708 | Hetherington | Aug 1996 | S |
5610903 | Crayford | Mar 1997 | A |
5649001 | Thomas et al. | Jul 1997 | A |
D382857 | Chen et al. | Aug 1997 | S |
5660567 | Nierlich et al. | Aug 1997 | A |
5663960 | Le Guen et al. | Sep 1997 | A |
5673254 | Crayford | Sep 1997 | A |
D386473 | England et al. | Nov 1997 | S |
5716221 | Kantner | Feb 1998 | A |
5757618 | Lee | May 1998 | A |
5757998 | Thatcher et al. | May 1998 | A |
5767999 | Kayner | Jun 1998 | A |
5771235 | Tang et al. | Jun 1998 | A |
5784557 | Oprescu | Jul 1998 | A |
5801928 | Burstedt et al. | Sep 1998 | A |
5809328 | Nogales et al. | Sep 1998 | A |
5825755 | Thompson et al. | Oct 1998 | A |
5836785 | Lee | Nov 1998 | A |
5879173 | Poplawski et al. | Mar 1999 | A |
5882211 | Choy et al. | Mar 1999 | A |
5892926 | Witkowski et al. | Apr 1999 | A |
5901263 | Gaio et al. | May 1999 | A |
5912998 | Quayle | Jun 1999 | A |
D411827 | Gilliland et al. | Jul 1999 | S |
5963719 | Fite et al. | Oct 1999 | A |
5993224 | Quillet et al. | Nov 1999 | A |
6023472 | Kupchik et al. | Feb 2000 | A |
6023544 | Dragone | Feb 2000 | A |
6044305 | Larson et al. | Mar 2000 | A |
6047172 | Babineau et al. | Apr 2000 | A |
6061737 | Fite et al. | May 2000 | A |
6074228 | Berg et al. | Jun 2000 | A |
6097705 | Ben-Michael et al. | Aug 2000 | A |
6108198 | Lin | Aug 2000 | A |
6115263 | Babineau et al. | Sep 2000 | A |
6141349 | Ikeda et al. | Oct 2000 | A |
6141350 | Mahale et al. | Oct 2000 | A |
6151326 | McGuire et al. | Nov 2000 | A |
6163637 | Zimgibi | Dec 2000 | A |
D436919 | Wakefield et al. | Jan 2001 | S |
6188668 | Brewer et al. | Feb 2001 | B1 |
6195425 | Farris | Feb 2001 | B1 |
6198727 | Wakeley et al. | Mar 2001 | B1 |
6236659 | Pascoe | May 2001 | B1 |
6243510 | Rauch | Jun 2001 | B1 |
6272019 | Edwards et al. | Aug 2001 | B1 |
6289042 | Hegemier et al. | Sep 2001 | B1 |
6305848 | Gregory | Oct 2001 | B1 |
6343083 | Mendelson et al. | Jan 2002 | B1 |
6366567 | Singh et al. | Apr 2002 | B1 |
6373826 | Russell et al. | Apr 2002 | B1 |
6374316 | James et al. | Apr 2002 | B1 |
6431765 | Chen et al. | Aug 2002 | B1 |
6462435 | Covaro et al. | Oct 2002 | B1 |
6470026 | Pearson et al. | Oct 2002 | B1 |
6490276 | Salett et al. | Dec 2002 | B1 |
6501754 | Ohba et al. | Dec 2002 | B1 |
6546010 | Merchant et al. | Apr 2003 | B1 |
6556983 | Altschuler et al. | Apr 2003 | B1 |
6576833 | Twiss et al. | Jun 2003 | B2 |
6587904 | Hauck et al. | Jul 2003 | B1 |
6600727 | MacKay et al. | Jul 2003 | B1 |
6614764 | Rodeheffer et al. | Sep 2003 | B1 |
6628607 | Hauck et al. | Sep 2003 | B1 |
6628624 | Mahajan et al. | Sep 2003 | B1 |
6628703 | Hegemier et al. | Sep 2003 | B1 |
6643269 | Fan et al. | Nov 2003 | B1 |
6654353 | Tokura et al. | Nov 2003 | B1 |
6690657 | Lau et al. | Feb 2004 | B1 |
6785226 | Oltman et al. | Aug 2004 | B1 |
6798739 | Lee | Sep 2004 | B1 |
6865160 | Bare | Mar 2005 | B1 |
6952421 | Slater | Oct 2005 | B1 |
6954437 | Sylvest et al. | Oct 2005 | B1 |
6973230 | MacKay et al. | Dec 2005 | B1 |
7194564 | Hauck et al. | Mar 2007 | B2 |
20020024261 | Covaro et al. | Feb 2002 | A1 |