Fault isolation and handling in a packet switching network
Granted 26 Oct 2010 · 3 office actions
Current assignee: EMC (Dell) · originally Dell Inc.
Law firm: Law firm · Log in to unlock
Attorney: Attorney · Log in to unlock
Inventors: John K. Walton, Kendell Chilton, James Guyer · Examiner: Ricky Ngo · AU 2464 · TC 2400
Life of the application
20 dated eventsAbstract
A packet switching network having a plurality of nodes and a network having: a plurality of switches couples to the nodes and links interconnecting 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 and, for, upon such upon such source one of the nodes detecting a fault in transmission of such packet, routing such to a predetermined designated fault one of the ports of such switch.
Description
9 parts›TECHNICAL FIELD
This invention relates generally to switching networks and more particularly to packet switching networks.
›BACKGROUND
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.
›SUMMARY
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.
›DESCRIPTION OF DRAWINGS
FIG. 1 is a block diagram of a packet switching network according to the inventions;
FIG. 2 is a block diagram of a portion of the packet switching network, such portion comprising an “A” network;
FIG. 3 is a block diagram of a portion of the packet switching network, such portion comprising a “B” network;
FIG. 4 is a flow diagram of a process performed within nodes of the network of FIG. 1 ;
FIG. 4A is a flow diagram of a process performed within nodes of the set of nodes of FIG. 4A detecting a fault in transmission of a packet there from;
FIG. 4B is a diagram of the A network illustrating a fault in transmission for an exemplary one of the nodes in a set of such nodes,
FIG. 5 is a diagram of a portion of the network of FIG. 1 showing interconnections in transmission for a packet when one of the nodes in the exemplary set of nodes of FIG. 4A is detected in accordance with the invention;
FIG. 6 is a flow diagram of a process used by an exemplary of the switches in the network of FIG. 1 .
Like reference symbols in the various drawings indicate like elements.
›DETAILED DESCRIPTION
Referring now to FIG. 1 , a packet switching network 10 has a plurality of Source (S)/Destination (D) nodes, here 32 nodes S/D 1 through S/D 32 . The network 10 includes a plurality of switches A 1 -A 8 and B 1 -B 8 couples to the nodes S/D 1 through S/D 32 and links LAx,y and LBx,y interconnecting the plurality of switches A 1 -A 8 and B 1 -B 8 , where x, and y are integers designating the pair of switches connected by the link. For example, link LA 1 , 3 is the link between switch A 1 and switch A 3 while link LB 6 , 8 is the link between switch B 6 and B 8 , and so forth, as indicated in FIG. 1 .
Each one of the switches A 1 -A 8 and B 1 -B 8 has a normal routing table, described below in TABLE 1, for routing packets from a source one of the nodes S/D 1 through S/D 32 to a destination one of the nodes S/D 1 through S/D 32 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 A 1 , A 2 , A 3 , A 4 , A 5 , A 6 , A 7 and A 8 , 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 B 1 , B 2 , B 3 , B 4 , B 5 , B 6 , B 7 and B 8 , 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 FIG. 2 , and the B network, shown in FIG. 3
The plurality of nodes S/D 1 through S/D 32 is arranged in sets, here 8 sets designated as SET 1 through SET 8. Each one of the nodes S/D 1 through S/D 32 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 A 1 , A 2 , A 3 , A 4 , A 5 , A 6 , A 7 and A 8 , and to a corresponding one of the second portion of the switches B 1 , B 2 , B 3 , B 4 , B 5 , B 6 , B 7 and B 8 . 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 A 1 , A 2 , A 3 , A 4 , A 5 , A 6 , A 7 and A 8 and the ports 1 are connected to the switches B 1 , B 2 , B 3 , B 4 , B 5 , B 6 , B 7 and B 8 . For example, considering the nodes S/D 1 through S/D 4 in SET 1, the ports 0 of such nodes S/D 1 through S/D 4 are connected to switch A 1 and the ports 0 of such nodes S/D 1 through S/D 4 are connected to switch B 1 . Likewise, for the nodes S/D 5 through S/D 8 in SET 2, the ports 0 of such nodes S/D 5 through S/D 8 are connected to switch A 2 and the ports 0 of such nodes S/D 5 through S/D 8 are connected to switch B 2 , and so forth so that for the nodes S/D 29 through S/D 32 in SET 8, the ports 0 of such nodes S/D 29 through S/D 32 are connected to switch A 8 and the ports 0 of such nodes S/D 29 through S/D 32 are connected to switch B 8
Each one of the nodes S/D 1 through S/D 32 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 FIG. 4 , the node examines the destination field of the packet to be transmitted and determines whether the destination node is in a set connected more directly to port 0 of such node, Step 402 . If it is, the node directs the packet to port 0 , Step 404 ; otherwise it directs the packet to port 1 , Step 406 . If the packet is directed to port 0 , as in Step 404 , the node detects whether there is an acknowledgement (ACK) from the destination node within a predetermined period of time from transmission. Step 408 . If there is the transmission is complete; on the other hand, if the ACK is not received within the predetermined period of time thereby indicating to the source node that there was a fault in the transmission, the source node retransmits the packet to port 1 , Step 410 . Likewise, if the source node sent the packet to its port 1 in Step 406 and an ACK is received by the source node within a predetermined period of time, Step 412 , the process ends; otherwise, the node sends the packet to its port 0 (Step 412 ).
For example, considering a source node in SET 1:
NODE EQUATION (for SET1)
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)
The packet is sent OK
›ELSE
The packet is sent to the 1 port
End
›ELSE
Begin
IF (the node is in the SET {4,6,8,2}
Begin The packet is sent to the 1 port If (the packet gets an ACK)
The packet is sent OK
Else
The packet is sent to the 0 port
End
End
The flow diagram for this example is shown in FIG. 4A .
As noted above, each switch S/D 1 through S/D 32 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 FIG. 4 b . The node in SET 1 changes the transmission to the other port thereof, as described above, here, in this example to port 1 . Thus, the packet passes to switch B 1 rather than to A 1 , as shown in FIG. 5 . Referring to FIG. 5 , the switch B 1 detects that the destination for the packet is in its normal routing table (Table 1 above). Thus, the packet is directed to a fault port (F) of switch B 1 , as shown in FIG. 5 . The packet is now routed through the network B. The process is summarized by the flow diagram in FIG. 4A . Thus, the switch determines whether the packet it receives has a destination within its normal routing table, Table 1, SET 3,5,7. If so, the normal routing able is used by such switch. On the other hand, if the packet such switch receives is not in the normal routing table, the switch directs the packet to its default port (F) in according the fault table (Table 2), below:
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 FIG. 6 may be represented by the following SWITCH EQUATION:
›SWITCH EQUATION
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 FIG. 5 .
Thus, referring again to FIG. 1 , the network of switches (i.e., network 10 ) is constructed such that ‘fault ports’ (i.e., fault ports (F)) are connected directly together, and there is an A network, and a B network. Every node is connected to every other node through either the A network, OR the B network, thus bi-furcated. If a packet fails to generate an ACK, then the node equation will send the packet to the other network. The FIRST switch on that network will send the packet to the ‘fault port’ of another switch on the same network (A or B), and that switches routing table will be programmed for that receiver packet.
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.
›Tables in the description — 1
| SET HAVING DESTINATION NODE IN | ROUTE TO SWITCH |
| NORMAL ROUTING TABLE SWITCH A1 | |
| SET 1 | A1 |
| SET 2 | A2 |
| SET 3 | A3 |
| SET 5 | A5 |
| SET 7 | A7 |
| NORMAL ROUTING TABLE SWITCH A2 | |
| SET 1 | A1 |
| SET 2 | A2 |
| SET 4 | A4 |
| SET 6 | A6 |
| SET 8 | A8 |
| NORMAL ROUTING TABLE SWITCH A3 | |
| SET 1 | A1 |
| SET 3 | A3 |
| SET 4 | A4 |
| SET 6 | A6 |
| SET 8 | A8 |
| NORMAL ROUTING TABLE SWITCH A4 | |
| SET 2 | A2 |
| SET 3 | A3 |
| SET 4 | A4 |
| SET 5 | A5 |
| SET 7 | A7 |
| NORMAL ROUTING TABLE SWITCH A5 | |
| SET 1 | A1 |
| SET 2 | A2 |
| SET 4 | A4 |
| SET 5 | A5 |
| SET 6 | A6 |
| NORMAL ROUTING TABLE SWITCH A6 | |
| SET 2 | A2 |
| SET 3 | A3 |
| SET 5 | A5 |
| SET 6 | A6 |
| SET 7 | A7 |
| NORMAL ROUTING TABLE SWITCH A7 | |
| SET 1 | A1 |
| SET 4 | A4 |
| SET 6 | A6 |
| SET 7 | A7 |
| SET 8 | A8 |
| NORMAL ROUTING TABLE SWITCH A8 | |
| SET 2 | A2 |
| SET 3 | A3 |
| SET 5 | A5 |
| SET 7 | A7 |
| SET 8 | A8 |
| NORMAL ROUTING TABLE SWITCH B1 | |
| SET 1 | B1 |
| SET 2 | B2 |
| SET 4 | B4 |
| SET 6 | B6 |
| SET 8 | B8 |
| NORMAL ROUTING TABLE SWITCH B2 | |
| SET 1 | B1 |
| SET 2 | B2 |
| SET 3 | B3 |
| SET 5 | B5 |
| SET 7 | B7 |
| NORMAL ROUTING TABLE SWITCH B3 | |
| SET 2 | B1 |
| SET 3 | B3 |
| SET 4 | B4 |
| SET 5 | B5 |
| SET 7 | B7 |
| NORMAL ROUTING TABLE SWITCH B4 | |
| SET 1 | B1 |
| SET 3 | B3 |
| SET 4 | B4 |
| SET 6 | B6 |
| SET 8 | B8 |
| NORMAL ROUTING TABLE SWITCH B5 | |
| SET 2 | B2 |
| SET 3 | B3 |
| SET 5 | B5 |
| SET 6 | B6 |
| SET 7 | B7 |
| NORMAL ROUTING TABLE SWITCH B6 | |
| SET 1 | B1 |
| SET 4 | B4 |
| SET 5 | B5 |
| SET 6 | B6 |
| SET 8 | B8 |
| NORMAL ROUTING TABLE SWITCH B7 | |
| SET 2 | B2 |
| SET 3 | B3 |
| SET 5 | B5 |
| SET 7 | B7 |
| SET 8 | B8 |
| NORMAL ROUTING TABLE SWITCH B8 | |
| SET 1 | B1 |
| SET 4 | B4 |
| SET 6 | B6 |
| SET 7 | B7 |
| SET 8 | B8 |
Claims as granted
12 claimsLog in to read the claims of this application.
Log in to unlockClassifications
8 codes- G01R31/08
- H04L45/00
- H04L12/28
- H04L1/00
Claim changes
SoonSee which claims were amended, added or cancelled during examination, with every added and removed word marked.
The published claims of this application are not paired with the granted ones in what we hold.
File wrapper
See the full prosecution history — every USPTO and applicant action on this file, in order.
Log in to unlockDocuments
Log in to open the documents of this file: the application as filed, every office action and response, the notice of allowance.
Log in to unlockChain of title
See the full assignment history — every owner this patent has passed through, with recordation dates and reel/frame numbers.
Log in to unlock