Data routing method and apparatus for communication systems having multiple nodes
First Claim
1. A method for routing a data packet through a communication system comprising a selected node and neighboring nodes that communicate directly with the selected node, wherein the data packet has a packet destination variable that specifies an intended destination of the data packet, the method comprising the steps of:
- a) generating, for a neighboring node, routing instructions comprising a first set of the routing instructions and a second set of the routing instructions, the first set having routing directions for assigned destination identifiers recognized by the communication system, wherein no routing direction of the first set instructs the neighboring node to route the data packet in a direction of the selected node, and the second set having the routing directions for the assigned destination identifiers, wherein at least one of the routing directions of the second set instructs the neighboring node to route the data packet in the direction of the selected node;
b) sending the routing instructions to the neighboring node;
c) receiving the data packet by the neighboring node, the data packet having a routing number and the packet destination variable, the routing number for determining which routing instruction of the first set or the second set to use, and the packet destination variable for correlating with the assigned destination identifiers in the first set and the second set;
d) evaluating the routing number to determine whether the data packet should be routed according to the first set or the second set;
e) if the data packet should be routed according to the first set, correlating the packet destination variable with the assigned destination identifiers of the first set to determine in which of the routing directions to route the data packet;
f) if the data packet should be routed according to the second set, correlating the packet destination variable with the assigned destination identifiers of the second set to determine in which of the routing directions to route the data packet; and
g) routing the data packet according to a direction determined in steps e) and f).
2 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for balancing data packet routing through a communication system (10) and for routing data packets based on their type is accomplished by using multiple routing table pages (152, 154) and page maps (180, 190) stored in nodes (100-112). For a given data packet type, a first page map (180) is used to select a routing table page (152, 154) so that only certain types of data may be routed through a target node (100). In a test mode, a neighboring node (102-112) will be configured such that it can route test data packets through the target node (100) while not routing other types of data packets through the target node (100). For a given routing number, a second page map (190) is used to select a routing table page (152, 154) so that traffic loads are balanced throughout the system (10).
51 Citations
20 Claims
-
1. A method for routing a data packet through a communication system comprising a selected node and neighboring nodes that communicate directly with the selected node, wherein the data packet has a packet destination variable that specifies an intended destination of the data packet, the method comprising the steps of:
-
a) generating, for a neighboring node, routing instructions comprising a first set of the routing instructions and a second set of the routing instructions, the first set having routing directions for assigned destination identifiers recognized by the communication system, wherein no routing direction of the first set instructs the neighboring node to route the data packet in a direction of the selected node, and the second set having the routing directions for the assigned destination identifiers, wherein at least one of the routing directions of the second set instructs the neighboring node to route the data packet in the direction of the selected node; b) sending the routing instructions to the neighboring node; c) receiving the data packet by the neighboring node, the data packet having a routing number and the packet destination variable, the routing number for determining which routing instruction of the first set or the second set to use, and the packet destination variable for correlating with the assigned destination identifiers in the first set and the second set; d) evaluating the routing number to determine whether the data packet should be routed according to the first set or the second set; e) if the data packet should be routed according to the first set, correlating the packet destination variable with the assigned destination identifiers of the first set to determine in which of the routing directions to route the data packet; f) if the data packet should be routed according to the second set, correlating the packet destination variable with the assigned destination identifiers of the second set to determine in which of the routing directions to route the data packet; and g) routing the data packet according to a direction determined in steps e) and f). - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method for routing a data packet through a communication system comprising a selected node and neighboring nodes that communicate directly with the selected node, wherein the data packet has a packet destination variable that specifies an intended destination of the data packet, the method comprising the steps of:
-
a) generating, for a neighboring node, routing instructions comprising a first set of the routing instructions and a second set of the routing instructions, the first set having routing directions for assigned destination identifiers recognized by the communication system, wherein no routing direction of the first set instructs the neighboring node to route the data packet in a direction of the selected node, and the second set having the routing directions for the assigned destination identifiers, wherein at least one of the routing directions of the second set instructs the neighboring node to route the data packet in the direction of the selected node; b) sending the routing instructions to the neighboring node; c) receiving the data packet, the data packet having a type and the packet destination variable, the type for determining which routing instruction of the first set or the second set to use, and the packet destination variable for correlating with the assigned destination identifiers in the first set and the second set; d) evaluating the type to determine whether the data packet should be routed to the selected node according to the first set or the second set; e) if the data packet should be routed according to the first set, correlating the packet destination variable with the assigned destination identifiers of the first set to determine in which of the routing directions to route the data packet; f) if the data packet should be routed according to the second set, correlating the packet destination variable with the assigned destination identifiers of the second set to determine in which of the routing directions to route the data packet; and g) routing the data packet according to a direction determined in steps e) and f). - View Dependent Claims (8, 9, 10, 11, 12, 13)
-
-
14. A method for routing a data packet through a communication system comprising a selected node and neighboring nodes that communicate directly with the selected node, wherein the data packet has a packet destination variable that specifies an intended destination of the data packet, the method comprising the steps of:
-
a) generating, for a neighboring node, routing instructions comprising a first set of the routing instructions and a second set of the routing instructions, the first set having routing directions for assigned destination identifiers recognized by the communication system, wherein no routing direction of the first set instructs the neighboring node to route the data packet in a direction of the selected node, and the second set having the routing directions for the assigned destination identifiers, wherein at least one of the routing directions of the second set instructs the neighboring node to route the data packet in the direction of the selected node; b) receiving the data packet, the data packet having a routing number and the packet destination variable, the routing number for determining which routing instruction of the first set or the second set to use, and the packet destination variable for correlating with the assigned destination identifiers in the first set and the second set; c) evaluating the routing number to determine whether the data packet should be routed according to the first set or the second set; d) if the data packet should be routed according to the first set, correlating the packet destination variable with the assigned destination identifiers of the first set to determine in which of the routing directions to route the data packet; e) if the data packet should be routed according to the second set, correlating the packet destination variable with the assigned destination identifiers of the second set to determine in which of the routing directions to route the data packet; and f) routing the data packet according to a direction determined in steps d) and e).
-
-
15. A method for routing a data packet through a communication system comprising a selected node and neighboring nodes that communicate directly with the selected node, wherein the data packet has a packet destination variable that specifies an intended destination of the data packet, the method comprising the steps of:
-
a) receiving, by a neighboring node, routing instructions comprising a first set of the routing instructions and a second set of the routing instructions, the fast set having routing directions for assigned destination identifiers recognized by the communication system, wherein no routing direction of the first set instructs the neighboring node to route the data packet in a direction of the selected node, and the second set having the routing directions for the assigned destination identifiers, wherein at least one of the routing directions of the second set instructs the neighboring node to route the data packet in the direction of the selected node; b) receiving the data packet, the data packet having a type and the packet destination variable, the type for determining which routing instruction of the first set or the second set to use, and the packet destination variable for correlating with the assigned destination identifiers in the first set and the second set; c) evaluating the type to determine whether the data packet should be routed to the selected node according to the first set or the second set; d) if the data packet should be routed according to the first set, correlating the packet destination variable with the assigned destination identifiers of the first set to determine in which of the routing directions to route the data packet; e) if the data packet should be routed according to the second set, correlating the packet destination variable with the assigned destination identifiers of the second set to determine in which of the routing directions to route the data packet; and f) routing the data packet according to a direction determined in steps d) and e).
-
-
16. A method for testing operability of a selected node in a communication system, wherein the communication system comprises a system control facility and multiple nodes which communicate through communication links, and neighboring nodes support the communication links with the selected node, the method comprising the steps of:
-
a) generating, for a neighboring node, routing instructions comprising a first set of the routing instructions and a second set of the routing instructions, the first set having routing directions for assigned destination identifiers recognized by the communication system, wherein no routing direction of the first set instructs the neighboring node to route a data packet in a direction of the selected node, and the second set having the routing directions for the assigned destination identifiers, wherein at least one of the routing directions of the second set instructs the neighboring node to route the data packet in the direction of the selected node; b) sending the routing instructions to the neighboring node; c) creating at least one test packet for testing operability of the selected node; d) sending the at least one test packet to the neighboring node; e) routing the at least one test packet by correlating a packet destination variable contained within the at least one test packet with the assigned destination identifiers in the second set to determine a direction of routing; f) evaluating telemetry data that indicates whether routing the at least one test packet through the selected node was successful; and g) where routing the at least one test packet was successful, sending an instruction to the neighboring node to route future data packets by correlating the packet destination variable contained within the future data packets with the assigned destination identifiers in the second set to determine the direction of routing. - View Dependent Claims (17, 18)
-
-
19. A communication system comprising:
-
a system control facility for generating and sending routing instructions to a neighboring node, the routing instructions comprising a first set of the routing instructions and a second set of the routing instructions, the first set having routing directions for assigned destination identifiers recognized by the communication system, wherein none of the routing directions of the first set instruct the neighboring node to route a data packet in a direction of a selected node, and the second set having the routing directions for the assigned destination identifiers, wherein at least one of the routing directions instructs the neighboring node to route the data packet in the direction of the selected node; and multiple nodes in communication proximity to the system control facility, the multiple nodes comprising the selected node and neighboring nodes that directly communicate with the selected node, the neighboring nodes for receiving the routing instructions, receiving the data packet, the data packet having a type and a packet destination variable, the type for determining which routing instruction of the first set or the second set to use, and the packet destination variable for correlating with the assigned destination identifiers in the first set and the second set, evaluating the type to determine whether the data packet should be routed to the selected node according to the first set or the second set, if the data packet should be routed according to the first set, correlating the packet destination variable with the assigned destination identifiers of the first set to determine in which of the routing directions to route the data packet, if the data packet should be routed according to the second set, correlating the packet destination variable with the assigned destination identifiers of the second set to determine in which of the routing directions to route the data packet, and sending the data packet according to a direction so determined.
-
-
20. A communication node in a communication system having a system control facility and neighboring nodes that support communication links with the communication node, the communication node comprising:
-
at least one down-link receiver for receiving routing instructions, the routing instructions comprising a first t of the routing instructions and a second set of the routing instructions, the first set having routing directions for assigned destination identifiers recognized by the communication system, wherein none of the routing directions of the first set instruct the communication node to route a data packet in a direction of a selected node, and the second set having the routing directions for the assigned destination identifiers, wherein at least one of the routing directions of the second set instructs the communication node to route the data packet in the direction of the selected node; at least one data packet receiver for receiving the data packet, the data packet having a type and a packet destination variable, the type for determining which routing instruction of the first set or the second set to use, and the packet destination variable for correlating with the assigned destination identifiers in the first set and the second set; a node controller coupled to the at least one down-link receiver and the at least one data packet receiver, the node controller for evaluating the type to determine whether the data packet should be routed to the selected node according to the first set or the second set, if the data packet should be routed according to the first set, correlating the packet destination variable with the assigned destination identifiers of the first set to determine in which of the routing directions to route the data packet, if the data packet should be routed according to the second set, correlating the packet destination variable with the assigned destination identifiers of the second set to determine in which of the routing directions to route the data packet; and at least one data packet transmitter coupled to the node controller, the at least one data packet transmitter for sending the data packet according to a direction determined by the node controller.
-
Specification