This invention relates generally to switching networks and more particularly to packet switching networks.
As is known in the art, most non-trivial packet switched networks require switch based lookup routing tables to properly route a packet in the fault free case. However, when a fault; such as a link failure has occurred, some fabric management (including management redundancy) must isolate the fault, and reprogram the appropriate tables to route traffic around the failed link, or switch.
In accordance with eth present invention, a packet switching network is provided having a plurality of nodes and a network having: a plurality of switches couples to the nodes and links interconnecting the ports of the plurality of switches. Each one of the switches has a normal routing table for routing packets from a source one of the nodes to a destination one of the nodes through the network in according to the normal routing table upon such source one of the nodes detecting a fault in transmission of such packet, routing such packet to a predetermined designated fault one of the ports of such switch.
In one embodiment, a first portion of the plurality of switches are interconnected through a first portion of the links to provide a first portion of the network and a second portion of the plurality of switches are interconnected through a second portion of the links to provide a second portion of the network. The plurality of nodes is arranged in sets, each one of the nodes having a pair of ports. Each one of the sets of nodes is coupled to a corresponding one of the first portion of the switches and to a corresponding one of the second portion of the switches. A first one of the pair of nodes in each one of the sets thereof is connected to the corresponding one of the switches of the first portion of switches and a second one of the pair of nodes in each one of the sets thereof is connected to the corresponding one of the switches of the second portion of switches.
In one embodiment, each one of the nodes directs the packet to the first one of the pair of ports thereof providing a most direct route to the destination one of the nodes.
In one embodiment, each one of the nodes directs the packet to the second one of the pair of ports thereof upon such one of the nodes detecting a fault in the transmission of such packet to the destination one of the nodes.
With such a network, a simple bi-furcated fully connected mesh fault tolerant packet switching network is provided having simple hardware based reconfiguration heuristic. When an Acknowledgement (ACK) has missed the timeout window over the primary link topology thereby indicating a fault in the packet transmission, a simple heuristic implemented in the switch, and fabric topology re-routes the packet over the secondary fabric to the intended destination without modification of the packet. This makes hardware retry of end-to-end acknowledgment systems extremely simple. A simple hardware heuristic is less prone to failing to fix the problem due to much reduced complexity.
The network is a bi-furcated fully connected mesh allowing with redundant failure bypass links to allow for switch, and link failures that a simple switch based heuristic can use to recover for any single fault. This eliminates the need for complicated redundant fault isolation management software to reconfigure the system on the first failure. Additional instances of the identical topology can be overlaid with the first to further add fault resiliency.
The details of one or more embodiments of the invention are set forth in the accompanying drawings and the description below. Other features, objects, and advantages of the invention will be apparent from the description and drawings, and from the claims.
Like reference symbols in the various drawings indicate like elements.
Referring now to
Each one of the switches A1-A8 and B1-B8 has a normal routing table, described below in TABLE 1, for routing packets from a source one of the nodes S/D1 through S/D32 to a destination one of the nodes S/D1 through S/D32 through the network 10 in according to the normal routing table (Table 1). As will be described, a fault routing table need not be included but merely logic that indicated that if an destination is absent from the routing table for the switch, such packet is routed to a fault port (F) for such switch. Thus, upon such source one of the nodes detecting a fault in transmission of such packet, packets are thereby routed through the through the network in accordance with the fault routing table (Table 2).
A first portion of the plurality of switches, here switches A1, A2, A3, A4, A5, A6, A7 and A8, are interconnected through a first portion of the links to provide a first portion of the network, herein sometimes referred to as the A network and a second portion of the plurality of switches, here switches B1, B2, B3, B4, B5, B6, B7 and B8, are interconnected through a second portion of the links to provide a second portion of the network herein sometimes referred to as the B network. Thus, the network 10 may be considered as a bi-furcated network made up of the A network, shown in
The plurality of nodes S/D1 through S/D32 is arranged in sets, here 8 sets designated as SET 1 through SET 8. Each one of the nodes S/D1 through S/D32 has a pair of ports, a first one being designated as port 0 and the second one being designated as port 1. Each one of the sets of nodes SET 1 through SET 8 is coupled to a corresponding one of the first portion of the switches A1, A2, A3, A4, A5, A6, A7 and A8, and to a corresponding one of the second portion of the switches B1, B2, B3, B4, B5, B6, B7 and B8. A first one of the pair of nodes in each one of the sets thereof is connected to the corresponding one of the switches of the first portion of switches and a second one of the pair of nodes in each one of the sets thereof is connected to the corresponding one of the switches of the second portion of switches. Thus, the ports 0 are connected to switches A1, A2, A3, A4, A5, A6, A7 and A8 and the ports 1 are connected to the switches B1, B2, B3, B4, B5, B6, B7 and B8. For example, considering the nodes S/D1 through S/D4 in SET 1, the ports 0 of such nodes S/D1 through S/D4 are connected to switch A1 and the ports 0 of such nodes S/D1 through S/D4 are connected to switch B1. Likewise, for the nodes S/D5 through S/D8 in SET 2, the ports 0 of such nodes S/D5 through S/D8 are connected to switch A2 and the ports 0 of such nodes S/D5 through S/D8 are connected to switch B2, and so forth so that for the nodes S/D29 through S/D32 in SET 8, the ports 0 of such nodes S/D29 through S/D32 are connected to switch A8 and the ports 0 of such nodes S/D29 through S/D32 are connected to switch B8
Each one of the nodes S/D1 through S/D32 directs the packet to the first one of the pair of ports thereof providing a most direct route (i.e., a route having the fewest number of switches) to the destination one of the nodes. Here, the most direct routes have only two switches between the source node and the destination node.
Each one of the nodes directs the packet to the second one of the pair of ports thereof upon such one of the nodes detecting a fault in the transmission of such packet to the destination one of the nodes. More particularly, referring also
For example, considering a source node in SET 1:
IF (the node is in SET {3,5,7,2})
Begin
The packet is sent to the 0 port
If (the packet gets an ACK)
ELSE
End
ELSE
Begin
IF (the node is in the SET {4,6,8,2}
End
The flow diagram for this example is shown in
As noted above, each switch S/D1 through S/D32 has a normal routing table that has an entry for every destination (receiver address) connected to it. It also has one ‘default’ entry (i.e., herein refereed to as a fault table) for any receiver address that is not connected to it.
The normal routing tables for the switches are in TABLE 1 below:
If a fault in transmission is detected in a node, the node changes the transmission from port having the most the direct route to the destination to the other one of the pair of ports of such source node.
Thus, consider for example a node in SET 1 has detected a fault in the transmission via port 0 destined for SET 3,5,7 as illustrated in
It should be understated that a fault table need not list the destinations which are absent from the normal table (Table 1), but rather the switch may merely detect the absence of the destination from the normal table (Table 1) and thereby direct the packet to the fault port (F). In such case, the fault table may take the form of circuitry that, upon detection of the absence of the destination for the normal table directs the packet to the default port (F). Such circuitry is herein considered as equivalent to a fault table.
The process described above in connection with the flow diagram of
IF (there is a matching entry for that address the packet)
The packet is sent to the corresponding output port.
ELSE
The packet is sent to a special output called the ‘fault output’ or fault port (F).
It is first noted that when the packet is re-routed because of detection of a fault, the packet passes through three switches in passing from the source node to the destination nodes, as shown in
Thus, referring again to
A number of embodiments of the invention have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the invention. Accordingly, other embodiments are within the scope of the following claims.
Number | Name | Date | Kind |
---|---|---|---|
6487208 | Chirashnya et al. | Nov 2002 | B1 |
6981174 | Hanning | Dec 2005 | B1 |
7434088 | Gale et al. | Oct 2008 | B2 |
20030231633 | Aramizu et al. | Dec 2003 | A1 |
20070025328 | Cohen et al. | Feb 2007 | A1 |
20070053283 | Bidwell et al. | Mar 2007 | A1 |