IP Library Granted Patent US 8,467,294
Granted Patent B2
US 8,467,294 · App. 12/931,821 · Granted Jun 18, 2013

Dynamic load balancing for port groups

Inventors: Pirabhu Raman (San Jose, CA); Deepak Cherian (Newark, CA); Hariharan Balasubramanian (Oak Park, CA); Ramprasad Nagaraja Rao (San Jose, CA)
Assignee: Cisco Technology, Inc.
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,467,294
App. No.
12/931,821
Granted
Jun 18, 2013
Kind
B2
Abstract

In one embodiment, a method includes receiving a packet at an input port of a network device, the input port having a plurality of queues with at least one queue for each output port at the network device, identifying a port group for transmitting the packet from the network device, the port group having a plurality of members each associated with one of the output ports, and selecting one of the queues based on utilization of the members. An apparatus for load balancing is also disclosed.

Claims (33)

1. A method comprising:

receiving a packet at an input port of a network device, the input port comprising a plurality of queues comprising at least one queue for each output port at the network device;

monitoring said plurality of queues and categorizing a congestion state of each of said plurality of queues in a congestion table;

identifying a port group for transmitting the packet from the network device, the port group comprising a plurality of members each associated with one of the output ports; and

selecting one of said plurality of queues based on utilization of said members, wherein selecting one of said plurality of queues based on utilization of said members comprises selecting one of said plurality of queues based on load balancing, checking said congestion state of said selected queue, and selecting another of said plurality of queues if said congestion state is above a specified threshold.

2. The method of claim 1 wherein selecting one of said plurality of queues further comprises if the packet is associated with a flow assigned to one of the output ports, assigning the packet to said queue associated with the output port.

3. The method of claim 1 wherein the port group comprises a port channel and said members comprise the output ports assigned to the port channel.

4. The method of claim 1 wherein the port group comprises one of said output ports comprising a high bandwidth port and said members comprise said queues associated with the output port.

5. The method of claim 1 wherein the port group comprises multiple paths and said members comprise the output ports connected to links in said multiple paths.

6. The method of claim 1 wherein selecting one of said plurality of queues based on utilization of said members comprises monitoring an occupancy level of each of said plurality of queues.

7. An apparatus comprising:

a plurality of output ports;

at least one input port comprising a plurality of queues comprising at least one queue for each of the output ports;

a monitor for monitoring said plurality of queues and categorizing a congestion state of each of said plurality of queues in a congestion table; and

a load balancer for identifying a port group for transmitting a packet received at the input port, the port group comprising a plurality of members each associated with one of the output ports, and selecting one of said plurality of queues based on utilization of said members, wherein selecting one of said plurality of queues based on utilization of said members comprises selecting one of said plurality of queues based on load balancing, checking said congestion state of said selected queue, and selecting another of said plurality of queues if said congestion state is above a specified threshold.

8. The apparatus of claim 7 wherein selecting one of said plurality of queues further comprises if the packet is associated with a flow assigned to one of the output ports, assigning the packet to said queue associated with the output port.

9. The apparatus of claim 7 wherein the port group comprises a port channel and said members comprise the output ports assigned to the port channel.

10. The apparatus of claim 7 wherein the port group comprises one of said output ports comprising a high bandwidth port and said members comprise said queues associated with the output port.

11. The apparatus of claim 7 wherein the port group comprises multiple paths and said members comprise the output ports connected to links in said multiple paths.

12. The apparatus of claim 7 wherein selecting one of said plurality of queues based on utilization of said plurality of members comprises monitoring an occupancy level of each of said plurality of queues.

13. The apparatus of claim 7 further comprising a flow filter for directing a flow associated with the received packet to said selected queue.

14. An apparatus comprising:

a plurality of output ports;

at least one input port comprising a plurality of queues comprising at least one queue for each of the output ports;

a monitor for monitoring said plurality of queues and categorizing a congestion state of each of said plurality of queues in a congestion table; and

means for identifying a port group for transmitting the packet from the network device, the port group comprising a plurality of members each associated with one of the output ports; and

means for selecting one of said plurality of queues based on utilization of said plurality of members, wherein means for selecting one of said plurality of queues based on utilization of said members comprises means for selecting one of said plurality of queues based on load balancing, checking said congestion state of said selected queue, and selecting another of said plurality of queues if said congestion state is above a specified threshold.

15. The apparatus of claim 14 wherein means for selecting one of said plurality of queues further comprises if the packet is associated with a flow assigned to one of the output ports, means for assigning the packet to said queue associated with the output port.

16. The apparatus of claim 14 further comprising an arbiter for assigning credit to said plurality of queues based on an occupancy level of queues at the output ports and wherein means for selecting one of said plurality of queues based on utilization of said plurality of members comprises means for monitoring an occupancy level of each of said plurality of queues.

17. The method of claim 1 wherein said congestion state is based on an occupancy level of each of said plurality of queues.

18. The method of claim 1 further comprising storing information about the selected queue in a flow filter.

19. The apparatus of claim 7 further comprising memory for storing the congestion table.

20. The apparatus of 7 wherein said congestion state is categorized into at least three classes.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 11, 2011
From: RAMAN, PIRABHU; CHERIAN, DEEPAK; BALASUBRAMANIAN, HARIHARAN; RAO, RAMPRASAD NAGARAJA
To: CISCO TECHNOLOGY, INC.
Reel/Frame 025942/0154 →
Continuity (1)
Related Publication 20120207175A1 · Aug 16, 2012