US Patent No. 9,894,670

IMPLEMENTING ADAPTIVE RESOURCE ALLOCATION FOR NETWORK DEVICES


Patent No. 9,894,670
Issue Date February 13, 2018
Title Implementing Adaptive Resource Allocation For Network Devices
Inventorship William Brad Matthews, San Jose, CA (US)
Puneet Agarwal, Cupertino, CA (US)
Bruce H. Kwan, Sunnyvale, CA (US)
Ashwin Alapati, Sunnyvale, CA (US)
William Fan, San Francisco, CA (US)
Ajit K. Jain, Cupertino, CA (US)
Assignee Innovium, Inc., San Jose, CA (US)

Claim of US Patent No. 9,894,670

1. A resource management system for a network device comprising:
a resource manager that is configured to:
generate a sequence of a plurality of access time slots for a plurality of candidate entities to access a plurality of resources
associated with the network device,

wherein a candidate entity of the plurality of candidate entities is a network entity that requests access to one or more
of the plurality of resources, and

wherein an access time slot provides a time period during which a candidate entity associated with the access time slot can
access a resource of the plurality of resources;

determine a priority level associated with each of the plurality of candidate entities, wherein each of the candidate entities
is associated with a respective one of a predetermined plurality of priority levels, including:

determining a first priority level for a first candidate entity of the of the plurality of candidate entities, and
determining a second priority level for a second candidate entity of the of the plurality of candidate entities, wherein the
second priority level is lower than the first priority level;

in response to determining that the first candidate entity has the first priority level that is higher than the second priority
level of the second candidate entity, assign a greater number of access time slots to the first candidate entity, and a lower
number of access time slots to the second candidate entity;

determine that at least one of the first candidate entity or the second candidate entity is not using one or more access time
slots assigned to the respective candidate entity; and

in response to determining that at least one of the first candidate entity or the second candidate entity is not using one
or more access time slots assigned to the respective candidate entity, redistribute an unused access time slot presently assigned
to one of the first candidate entity or the second candidate entity to a third candidate entity that is without any assigned
access time slot; and

a resource monitor that is configured to detect usage of each of the access time slots by the respective candidate entities
that are assigned the access time slots.