IP Library Granted Patent US 9,124,506
Granted Patent B2
US 9,124,506 · App. 14/069,276 · Granted Sep 1, 2015

Techniques for end-to-end network bandwidth optimization using software defined networking

Inventors: Prasad Jogalekar (San Jose, CA); Suresh Vobbilisetty (San Jose, CA); Muhammad Durrani (Sunnyvale, CA); Ram Krishnan (Cupertino, CA); Mukhtiar Shaikh (San Jose, CA)
Assignee: Brocade Communications Systems, Inc.
H04L47/12H04L45/12H04L45/38H04L45/64
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 9,124,506
App. No.
14/069,276
Granted
Sep 1, 2015
Kind
B2
Abstract

Techniques for end-to-end network bandwidth optimization using software defined networking are provided. In one embodiment, a computer system can receive information regarding a flow to be admitted to a network, where the flow is associated with a source and a destination. The computer system can further calculate, for each path in a plurality of paths between the source and the destination, a projected utilization of the path in view of the flow. If the projected utilization of the shortest path in the plurality of paths is less than or equal to a target utilization threshold, the computer system can assign the flow to the shortest path. Otherwise, the computer system can select a path in the plurality of paths that comes closest to the target utilization threshold without exceeding the threshold and can assign the flow to that selected path.

Claims (58)

1. A method comprising:

receiving, by a computer system, information regarding a flow to be admitted to a network, the flow being associated with a source and a destination;

for each path in a plurality of paths between the source and the destination, calculating, by the computer system, a projected utilization of the path in view of the flow;

if the projected utilization of a shortest path in the plurality of paths is less than or equal to a target utilization threshold, assigning, by the computer system, the flow to the shortest path;

else if the projected utilization of the shortest path is greater than the target utilization threshold:

selecting, by the computer system, a path in the plurality of paths whose projected utilization comes closest to the target utilization threshold without exceeding the threshold; and

assigning, by the computer system, the flow to the selected path.

2. The method of claim 1 wherein the projected utilization of each path in the plurality of paths is based on:

a current utilization percentage of a most utilized link in the path; and

an estimated percentage of the most utilized link that would be consumed by the flow.

3. The method of claim 2 wherein the current utilization percentage of the most utilized link corresponds to an average utilization percentage over a recent time window.

4. The method of claim 1 further comprising, prior to the receiving:

determining topology information and one or more policies for the network; and

computing the plurality of paths using the topology information and the one or more policies.

5. The method of claim 4 wherein the plurality of paths comprise a preconfigured number of shortest paths between the source and the destination.

6. The method of claim 5 wherein the preconfigured number is defined by one of the one or more policies.

7. The method of claim 5 wherein no two paths in the plurality of paths include a common link.

8. The method of claim 1 further comprising:

tracking utilization of the path assigned to the flow; and

if the utilization rises above a reallocation threshold, repeating the steps of claim 1 in order to reassign the flow to a different path in the plurality of paths.

9. The method of claim 8 wherein the utilization of the path is determined based on utilization of a most utilized link in the path.

10. The method of claim 1 wherein the computer system is a software defined networking (SDN) controller device.

11. A non-transitory computer readable medium having stored thereon program code executable by a processor, the program code comprising:

code that causes the processor to receive information regarding a flow to be admitted to a network, the flow being associated with a source and a destination;

code that causes the processor to, for each path in a plurality of paths between the source and the destination, calculate a projected utilization of the path in view of the flow;

if the projected utilization of a shortest path in the plurality of paths is less than or equal to a target utilization threshold, code that causes the processor to assign the flow to the shortest path;

else if the projected utilization of the shortest path is greater than the target utilization threshold:

code that causes the processor to select a path in the plurality of paths whose projected utilization comes closest to the target utilization threshold without exceeding the threshold; and

code that causes the processor to assign the flow to the selected path.

12. The non-transitory computer readable medium of claim 11 wherein the projected utilization of each path in the plurality of paths is based on:

a current utilization percentage of a most utilized link in the path; and

an estimated percentage of the most utilized link that would be consumed by the flow.

13. The non-transitory computer readable medium of claim 11 wherein the program code further comprises:

code that causes the processor to determine topology information and one or more policies for the network; and

code that causes the processor to compute the plurality of paths using the topology information and the one or more policies.

14. The non-transitory computer readable medium of claim 13 wherein the plurality of paths comprise a preconfigured number of shortest paths between the source and the destination.

15. The non-transitory computer readable medium of claim 11 wherein the program code further comprises:

code that causes the processor to track utilization of the path assigned to the flow; and

if the utilization rises above a reallocation threshold, code that causes the processor to repeat the steps embodied in the program code of claim 11 in order to reassign the flow to a different path in the plurality of paths.

16. A computer system comprising:

a processor; and

a non-transitory computer readable medium having stored thereon executable program code which, when executed by the processor, causes the processor to:

receive information regarding a flow to be admitted to a network, the flow being associated with a source and a destination;

for each path in a plurality of paths between the source and the destination, calculate a projected utilization of the path in view of the flow;

if the projected utilization of a shortest path in the plurality of paths is less than or equal to a target utilization threshold, assign the flow to the shortest path;

else if the projected utilization of the shortest path is greater than the target utilization threshold:

select a path in the plurality of paths whose projected utilization comes closest to the target utilization threshold without exceeding the threshold; and

assign the flow to the selected path.

17. The computer system of claim 16 wherein the projected utilization of each path in the plurality of paths is based on:

a current utilization percentage of a most utilized link in the path; and

an estimated percentage of the most utilized link that would be consumed by the flow.

18. The computer system of claim 16 wherein the program code further causes the processor to, prior to the receiving:

determine topology information and one or more policies for the network; and

compute the plurality of paths using the topology information and the one or more policies.

19. The computer system of claim 18 wherein the plurality of paths comprise a preconfigured number of shortest paths between the source and the destination.

20. The computer system of claim 16 wherein the program code further causes the processor to:

track utilization of the path assigned to the flow; and

if the utilization rises above a reallocation threshold, repeat the steps performed by the processor in claim 16 in order to reassign the flow to a different path in the plurality of paths.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 18, 2018
From: BROCADE COMMUNICATIONS SYSTEMS LLC
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047270/0247 →
CHANGE OF NAME Recorded Dec 13, 2017
From: BROCADE COMMUNICATIONS SYSTEMS, INC.
To: BROCADE COMMUNICATIONS SYSTEMS LLC
Reel/Frame 044891/0536 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 6, 2014
From: JOGALEKAR, PRASAD, DR.; VOBBILISETTY, SURESH; DURRANI, MUHAMMAD; KRISHNAN, RAM; SHAIKH, MUKHTIAR
To: BROCADE COMMUNICATIONS SYSTEMS, INC.
Reel/Frame 033480/0177 →
Continuity (2)
Provisional Application 61832655 · Jun 7, 2013
Related Publication 20140362686A1 · Dec 11, 2014