Legal claims defining the scope of protection, as filed with the USPTO.
1. A method for routing packets, comprising: identifying at least one flow in a received stream of packets; assigning the at least one flow to at least a first one of a plurality of switching pathways; routing packets of the at least one flow over the first one of the plurality of switching pathways; identifying a condition, during the routing of the packets of the at least one flow, indicating reassignment of unrouted packets of the at least one flow; reassigning at least a portion of the unrouted packets of the at least one flow to a second one of the plurality of switching pathways in response to the condition; and routing the packets of the portion of the unrouted packets of the at least one flow over the second one of the plurality of switching pathways.
2. The method of claim 1 , wherein the condition includes any one of periodically, congestion in the first one of the plurality of switching pathways, a rate of at least one flow into a buffer exceeds the rate from the buffer, a rate of at least one flow exceeds a predetermined rate, an aggregate rate of all identified flows into a buffer exceeds the aggregate rate of all identified flows from the buffer, a packet format error, a number of packets stored in a buffer exceeds a predetermined threshold, a buffer failure, a switch fabric failure, and unbalanced rates among the plurality of switching pathways.
3. The method of claim 1 , wherein assigning the at least one flow includes assigning the at least one flow to a particular one of the plurality of switching pathways without regard to a rate of the at least one flow.
4. The method of claim 1 , wherein assigning the at least one flow includes assigning the at least one flow to a particular one of the plurality of switching pathways having the smallest input rate.
5. The method of claim 4 , wherein assigning the at least one flow includes assigning the at least one flow to the particular one of the plurality of switching pathways having a smallest queue length in response to more than one of the plurality of switching pathways having a same smallest input rate.
6. The method of claim 1 , wherein identifying the at least one flow includes identifying the at least one flow according to at least a destination of a particular packet.
7. The method of claim 6 , wherein identifying the at least one flow includes identifying the at least one flow according to a hash key of a source and destination of the particular packet.
8. The method of claim 7 , further comprising indexing the hash key into a table of flows, the table including a time of arrival of a most recent packet and a switching path associated with each flow.
9. The method of claim 1 , further comprising: ensuring packets of the at least one flow are in order prior to routing.
10. The method of claim 9 , further comprising: estimating an amount of time for packets of the at least one flow to reach a predetermined point in the first one of the plurality of switching pathways; delaying routing of the portion of the unrouted packets of the at least one flow over the second one of the plurality of switching pathways in response to the estimated time.
11. A system for routing packets, comprising: means for identifying at least one flow in a received stream of packets; means for assigning the at least one flow to at least a first one of a plurality of switching pathways; means for routing packets of the at least one flow over the first one of the plurality of switching pathways; means for identifying a condition, during routing of the packets of the at least one flow, indicating reassignment of unrouted packets of the at least one flow; means for reassigning at least a portion of the unrouted packets of the at least one flow to a second one of the plurality of switching pathways in response to the condition; and means for routing the packets of the unrouted packets of the portion of the at least one flow over the second one of the plurality of switching pathways.
12. The system of claim 11 , further comprising: means for ensuring packets of the at least one flow are in order prior to routing.
13. The system of claim 12 , further comprising: means for estimating an amount of time for packets of the at least one flow to reach a predetermined point in the first one of the plurality of switching pathways; means for delaying routing of the portion of the unrouted packets of the at least one flow over the second one of the plurality of switching pathways in response to the estimated time.
14. The system of claim 11 , further comprising: means for assigning other flows to other ones of the plurality of switching pathways in response to assigning the portion of the at least one flow to the second one of the plurality of switching pathways.
15. The system of claim 11 , further comprising: means for tracking packet arrivals, routing of packets, input rates, aggregate input rates, historical flow rates, and packet size to facilitate switching pathway assignment.
16. A non-transitory computer readable medium including code for routing packets, the code, when executed by a processor, causes the processor to: identify at least one flow in a received stream of packets; assign the at least one flow to at least a first one of a plurality of switching pathways; route packets of the at least one flow over the first one of the plurality of switching pathways; identify a condition, during routing of the packets of the at least one flow, indicating reassignment of unrouted packets of the at least one flow; reassign at least a portion of the unrouted packets of the at least one flow to a second one of the plurality of switching pathways in response to the condition; and route the packets of the portion of the unrouted packets of the at least one flow over the second one of the plurality of switching pathways.
17. The non-transitory computer readable medium of claim 16 , wherein the code, when executed by the processor, further causes the processor to: ensure packets of the at least one flow are in order prior to routing.
18. The non-transitory computer readable medium of claim 17 , wherein the code, when executed by the processor, further causes the processor to: estimate an amount of time for packets of the at least one flow to reach a predetermined point in the first one of the plurality of switching pathways; delay routing of the portion of the unrouted packets of the at least one flow over the second one of the plurality of switching pathways in response to the estimated time.
19. The non-transitory computer readable medium of claim 16 , wherein the code, when executed by the processor, further causes the processor to: assign other flows to other ones of the plurality of switching pathways in response to assigning the portion of the at least one flow to the second one of the plurality of switching pathways.
20. The non-transitory computer readable medium of claim 16 , wherein the code, when executed by the processor, further causes the processor to: track packet arrivals, routing of packets, input rates, aggregate input rates, historical flow rates, and packet size to facilitate switching pathway assignment.
21. A system for routing packets, comprising: a demultiplexor operable to receive a stream of packets; a plurality of switching pathways operable to route the packets; and a controller operable to identify at least one flow in the stream of packets, the controller operable to assign the at least one flow to at least a first one of the plurality of switching pathways, the controller operable to identify a condition, during routing of packets of the at least one flow over the first one of the plurality of switching pathways, indicating reassignment of unrouted packets of the at least one flow, and the controller operable to reassign at least a portion of the unrouted packets of the at least one flow to a second one of the plurality of switching pathways in response to the condition.
22. The system of claim 21 , wherein the controller is further operable to assign the at least one flow to a particular one of the plurality of switching pathways without regard to a rate of the flow.
23. The system of claim 21 , wherein the controller is further operable to assign the at least one flow to a particular one of the plurality of switching pathways having the smallest input rate.
24. The system of claim 21 , wherein the controller is further operable to ensure packets of the at least one flow are in order prior to routing.
25. The system of claim 24 , wherein the controller is further operable to estimate an amount of time for packets of the at least one flow to reach a predetermined point in the first one of the plurality of switching pathways, the controller still further operable to delay the routing of the portion of the unrouted packets of the at least one flow over the second one of the plurality of switching pathways in response to the estimated time.
Unknown
December 28, 2010
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.