IP Library Granted Patent US 8,169,915
Granted Patent B1
US 8,169,915 · App. 12/239,118 · Granted May 1, 2012

Method and apparatus for network load balancing using indirection RAM during classification

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,169,915
App. No.
12/239,118
Granted
May 1, 2012
Kind
B1
Abstract

An apparatus and a method for load balancing across multiple routes using an indirection table and hash function during a process of packet classification are disclosed. A network device such as a router includes a memory, a hash component, and a result memory. The memory is referred to as an indirection random access memory (“RAM”), is capable of storing information regarding number of paths from source devices to destination devices. The memory, in one embodiment, provides a base index value and a range number indicating the number of paths associated with the base index value. The hash component generates a hash index in response to the base index value and the range number. Upon generation of hash index, the result memory identifies a classification result in response to the hash index.

Claims (51)

1. A network device comprising:

a content-addressable memory (“CAM”) configured to provide an index in accordance with information stored in a header of a packet;

a memory coupled to the CAM and configured to provide information regarding number of paths from source devices to destination devices in accordance with the index, wherein the memory provides a base index value and a range number, wherein the range number indicates number of alternative paths associated with the base index value;

a hash component coupled to the memory and configured to generate a hash index in response to the base index value and the range number, wherein the hash index indicates a less congested path to route the packet; and

a result memory coupled to the hash component and capable of identifying a classification result in response to the hash index.

2. The device of claim 1 , further comprising:

a key generator coupled to the memory and configured to generate a key in response to a packet.

3. The device of claim 1 , wherein the memory is an indirection random access memory (“RAM”).

4. The device of claim 3 , wherein the indirection RAM is an on-chip storage memory.

5. The device of claim 1 , wherein the base index value is one of the number of paths for a packet to travel from a source device to a destination device.

6. The device of claim 1 , wherein the range number is an offset value indicating physical storage locations in the memory associated from the base index value for storing number of possible paths for a packet to travel from a source device to a destination device.

7. The device of claim 6 , wherein the base index value is a reference address for the range number.

8. The device of claim 1 , wherein the hash component is capable of generating the less congested path for a packet to travel from the source device to the destination device utilizing addition of the base index value with hashed value of the range number.

9. A method for network load balancing, comprising:

receiving an index from a content-addressable memory (“CAM”) in accordance with a packet;

obtaining a base index and a range number representing number of possible paths between a source device and a destination device from a memory in response to the index;

identifying an alternative path addressed by the range number and the base index in the memory;

generating a hash index in response to the range number and the base index; and

fetching a result indicating a less congested path for packet routing from a result memory in response to the hash index.

10. The method of claim 9 , further comprising classifying a packet in accordance with the result.

11. The method of claim 10 , wherein fetching a result indicating a less congested path for packet routing from a result memory in response to the hash index further include selecting one of a plurality of results in a result random access memory (“RAM”) in response to the hash index.

12. The method of claim 9 , wherein receiving an index from a content-addressable memory (“CAM”) in accordance with a packet further includes, receiving the packet from a port;

generating a key in response to the packet; and

forwarding the key to the CAM.

13. The method of claim 9 , wherein obtaining a base index and a range number representing number of possible paths further includes, accessing an indirection random access memory (“RAM”) in accordance with the index; and

fetching the range number from a storage location in the indirection RAM.

14. The method of claim 13 , wherein fetching the range number further includes utilizing the index to address the storage location for storing the range number in the indirection RAM.

15. The method of claim 9 , wherein generating a hash index in response to the range number and the base index further includes,

hashing the range number to generate a hashed number; and

adding the hashed number to the base index;

wherein the hash index indicates a path capable of transmitting the packet in a line rate to travel from the source device to the destination device.

16. An apparatus having a content-addressable memory (“CAM”), a memory, and a routing chip, for network load balancing, comprising:

means for receiving an index from the CAM in accordance with a packet;

means for obtaining a base index and a range number representing number of possible paths between a source device and a destination device from the memory in response to the index;

means for identifying an alternative path addressed by the range number and the base index in the memory;

means for generating a hash index in response to the range number and the base index; and

means for fetching a result indicating a less congested path for packet routing from a result memory in response to the hash index.

17. The apparatus of claim 16 , further comprising means for classifying a packet in accordance with the result.

18. The apparatus of claim 17 , wherein means for fetching a result indicating a less congested path for packet routing from a result memory in response to the hash index further include means for selecting one of a plurality of results in a result random access memory (“RAM”) in response to the hash index.

19. The apparatus of claim 16 , wherein means for receiving an index from the CAM in accordance with a packet further includes,

means for receiving the packet from a port;

means for generating a key in response to the packet; and

means for forwarding the key to the CAM.

20. The apparatus of claim 16 , wherein means for obtaining a base index and a range number representing number of possible paths further includes,

means for accessing an indirection random access memory (“RAM”) in accordance with the index; and

means for fetching the range number from a storage location in the indirection RAM.

21. The apparatus of claim 20 , wherein means for fetching the range number further includes means for utilizing the index to address the storage location for storing the range number in the indirection RAM.

22. The apparatus of claim 16 , wherein means for generating a hash index in response to the range number and the base index further includes,

means for hashing the range number to generate a hashed number; and

means for adding the hashed number to the base index;

wherein the hash index indicates a path capable of transmitting the packet in a line rate to travel from the source device to the destination device.

Assignments (3)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION NUMBER 10/075,623 PREVIOUSLY RECORDED AT REEL: 034484 FRAME: 0740. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT FOR SECURITY --- PATENTS. Recorded Jun 14, 2017
From: CORIANT OPERATIONS, INC.; TELLABS RESTON, LLC (FORMERLY KNOWN AS TELLABS RESTON, INC.); WICHORUS, LLC (FORMERLY KNOWN AS WICHORUS, INC.)
To: TELECOM HOLDING PARENT LLC
Reel/Frame 042980/0834 →
ASSIGNMENT FOR SECURITY - - PATENTS Recorded Nov 26, 2014
From: CORIANT OPERATIONS, INC.; TELLABS RESTON, LLC (FORMERLY KNOWN AS TELLABS RESTON, INC.); WICHORUS, LLC (FORMERLY KNOWN AS WICHORUS, INC.)
To: TELECOM HOLDING PARENT LLC
Reel/Frame 034484/0740 →
SECURITY AGREEMENT Recorded Dec 6, 2013
From: TELLABS OPERATIONS, INC.; TELLABS RESTON, LLC (FORMERLY KNOWN AS TELLABS RESTON, INC.); WICHORUS, LLC (FORMERLY KNOWN AS WICHORUS, INC.)
To: CERBERUS BUSINESS FINANCE, LLC, AS COLLATERAL AGENT
Reel/Frame 031768/0155 →