IP Library Granted Patent US 10,263,909
Granted Patent B2
US 10,263,909 · App. 15/167,846 · Granted Apr 16, 2019

System, method, and computer program for managing network bandwidth by an endpoint

Inventors: Fred Allison Bower, III (Durham, NC); Qian QiaoNeng (Shanghai, CN); Andrew Jack Sloma (Austin, TX)
Assignee: Lenovo Enterprise Solutions (Singapore) Pte. Ltd.
H04L47/762
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 10,263,909
App. No.
15/167,846
Granted
Apr 16, 2019
Kind
B2
Abstract

A computer program embodied on a tangible computer readable medium includes computer code for identifying a plurality of incomplete tasks by a management server, computer code for determining by the management server, for each of the plurality of incomplete tasks, a priority associated with the task, computer code for determining by the management server an availability of network bandwidth, and computer code for managing, by the management server, the network bandwidth, based on the priority associated with each of the plurality of incomplete tasks and the availability of network bandwidth.

Claims (39)

1. A computer program embodied on a tangible computer readable medium, comprising:

computer code for identifying a plurality of incomplete tasks assigned to a plurality of endpoints by a management server;

computer code for determining by the management server, for each of the plurality of incomplete tasks, a priority associated with the incomplete task;

computer code for determining by the management server an availability of network bandwidth; and

computer code for conditionally adjusting, by the management server, the network bandwidth assigned to one or more of the plurality of incomplete tasks by communicating with one or more baseboard management controllers (BMCs) on the plurality of endpoints, based on the priority associated with each of the plurality of incomplete tasks and the availability of network bandwidth, including temporarily decreasing a portion of the network bandwidth assigned to a low priority incomplete task and temporarily increasing a portion of the network bandwidth assigned to a high priority incomplete task in response to determining that no unused bandwidth is currently available and that a threshold maximum bandwidth associated with the high priority incomplete task is not met.

2. The computer program of claim 1 , further comprising computer code for creating a profile for each of the plurality of incomplete tasks, where for each of the plurality of incomplete tasks, the profile indicates a bandwidth consumption of the incomplete task, including:

one or more requirements for implementing the incomplete task,

an amount of full bandwidth time needed to complete the incomplete task, and

one or more breaks in bandwidth usage during the incomplete task;

wherein the profile for the each of the plurality of incomplete tasks is saved for multiple iterations of the incomplete task, such that the profile is associated with the incomplete task after the incomplete task has been completed and is instantiated again.

3. The computer program of claim 1 , wherein conditionally adjusting the network bandwidth assigned to one or more of the plurality of incomplete tasks includes setting one or more limits within the one or more BMCs.

4. The computer program of claim 1 , wherein conditionally adjusting the network bandwidth assigned to one or more of the plurality of incomplete tasks includes increasing a portion of the network bandwidth assigned to a low priority incomplete task by the management server, in response to determining that unused bandwidth is currently available.

5. The computer program of claim 1 , wherein managing the network bandwidth includes temporarily decreasing a portion of the network bandwidth assigned to a low priority incomplete task and temporarily increasing a portion of the network bandwidth assigned to a high priority incomplete task by the management server, in response to determining that no unused bandwidth is currently available on a network connection.

6. The computer program of claim 1 , wherein, for each of the plurality of incomplete tasks, the priority associated with each the incomplete task is obtained from a priority of an endpoint to which the incomplete task is assigned.

7. The computer program of claim 1 , wherein a portion of the network bandwidth assigned to a low priority incomplete task is temporarily decreased, and a portion of the network bandwidth assigned to a high priority incomplete task is temporarily increased, via the management server communicating with a BMC of an endpoint to bridge management network traffic to the high priority incomplete task.

8. The computer program of claim 7 , wherein the BMC of the endpoint is requested by the management server to throttle a bridge to implement the temporary decreasing of the portion of the network bandwidth assigned to the low priority incomplete task and the temporary increasing of the portion of the network bandwidth assigned to the high priority incomplete task.

9. A method, comprising:

identifying a plurality of incomplete tasks assigned to a plurality of endpoints by a management server;

determining by the management server, for each of the plurality of incomplete tasks, a priority associated with the incomplete task;

determining by the management server an availability of network bandwidth; and

conditionally adjusting, by the management server, the network bandwidth assigned to one or more of the plurality of incomplete tasks by communicating with one or more baseboard management controllers (BMCs) on the plurality of endpoints, based on the priority associated with each of the plurality of incomplete tasks and the availability of network bandwidth, including temporarily decreasing a portion of the network bandwidth assigned to a low priority incomplete task and temporarily increasing a portion of the network bandwidth assigned to a high priority incomplete task in response to determining that no unused bandwidth is currently available and that a threshold maximum bandwidth associated with the high priority incomplete task is not met.

10. The method of claim 9 , further comprising creating a profile for each of the plurality of incomplete tasks, where for each of the plurality of incomplete tasks, the profile indicates a bandwidth consumption of the incomplete task, including:

one or more requirements for implementing the incomplete task,

an amount of full bandwidth time needed to complete the incomplete task, and

one or more breaks in bandwidth usage during the incomplete task;

wherein a profile for the each of the plurality of incomplete tasks is saved for multiple iterations of the incomplete task, such that the profile is associated with the incomplete task after the incomplete task has been completed and is instantiated again.

11. The method of claim 9 , wherein conditionally adjusting the network bandwidth assigned to one or more of the plurality of incomplete tasks includes setting one or more limits within the one or more BMCs.

12. The method of claim 9 , wherein conditionally adjusting the network bandwidth assigned to one or more of the plurality of incomplete tasks includes increasing a portion of the network bandwidth assigned to a low priority incomplete task by the management server, in response to determining that unused bandwidth is currently available.

13. The method of claim 9 , wherein managing the network bandwidth includes temporarily decreasing a portion of the network bandwidth assigned to a low priority incomplete task and temporarily increasing a portion of the network bandwidth assigned to a high priority incomplete task by the management server, in response to determining that no unused bandwidth is currently available on a network connection.

14. The method of claim 9 , wherein, for each of the plurality of incomplete tasks, the priority associated with each the incomplete task is obtained from a priority of an endpoint to which the incomplete task is assigned.

15. The method of claim 9 , wherein a portion of the network bandwidth assigned to a low priority incomplete task is temporarily decreased, and a portion of the network bandwidth assigned to a high priority incomplete task is temporarily increased, via the management server communicating with a BMC of an endpoint to bridge management network traffic to the high priority incomplete task.

16. The method of claim 15 , wherein the BMC of the endpoint is requested by the management server to throttle a bridge to implement the temporary decreasing of the portion of the network bandwidth assigned to the low priority incomplete task and the temporary increasing of the portion of the network bandwidth assigned to the high priority incomplete task.

17. A system, comprising:

a processor for:

identifying a plurality of incomplete tasks assigned to a plurality of endpoints by a management server;

determining by the management server, for each of the plurality of incomplete tasks, a priority associated with the incomplete task;

determining by the management server an availability of network bandwidth; and

conditionally adjusting, by the management server, the network bandwidth assigned to one or more of the plurality of incomplete tasks by communicating with one or more baseboard management controllers (BMCs) on the plurality of endpoints, based on the priority associated with each of the plurality of incomplete tasks and the availability of network bandwidth, including temporarily decreasing a portion of the network bandwidth assigned to a low priority incomplete task and temporarily increasing a portion of the network bandwidth assigned to a high priority incomplete task in response to determining that no unused bandwidth is currently available and that a threshold maximum bandwidth associated with the high priority incomplete task is not met.

18. The system of claim 17 , wherein the processor is coupled to memory via a bus.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 10, 2025
From: LENOVO GLOBAL TECHNOLOGIES INTERNATIONAL LIMITED
To: LENOVO GLOBAL TECHNOLOGIES SWITZERLAND INTERNATIONAL GMBH
Reel/Frame 069869/0614 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 15, 2019
From: LENOVO (SINGAPORE) PTE LTD
To: LENOVO GLOBAL TECHNOLOGIES INTERNATIONAL LTD
Reel/Frame 051024/0514 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 27, 2016
From: BOWER, FRED ALLISON, III; QIAONENG, QIAN; SLOMA, ANDREW JACK
To: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE. LTD.
Reel/Frame 038740/0963 →
Continuity (1)
Related Publication 20170346761A1 · Nov 30, 2017