IP Library Granted Patent US 9,379,992
Granted Patent B2
US 9,379,992 · App. 14/140,503 · Granted Jun 28, 2016

Method and an apparatus for virtualization of a quality-of-service

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,379,992
App. No.
14/140,503
Granted
Jun 28, 2016
Kind
B2
Abstract

A method and a system embodying the method for virtualization of a quality of service, comprising associating a packet received at an interface with an aura via an aura identifier; determining configuration parameters for the aura; determining a pool for the aura; determining the state of the pool resources, the resources comprising a level of buffers available in the pool and a level of buffers allocated to the aura; and determining a quality of service for the packet in accordance with the determined state of the pool and the configuration parameters for the aura, is disclosed.

Claims (88)

1. A method for virtualization of a quality of service, comprising:

associating a packet received at an interface with an aura via an aura identifier by evaluating information of the internal fields of the packet's structure and information external to the packet's structure;

determining configuration parameters for the aura, comprising a parameter identifying maximum number of buffers that may be allocated to the aura (AURA_CNT_LIMIT), a parameter identifying number of buffers allocated at a particular time (AURA_CNT), and a parameter identifying aura level related to the pool of available buffers (AURA_POOL_LEVELS);

determining a pool of buffers for the aura;

determining the state of the pool resources, the resources comprising a level of buffers available in the pool and a level of buffers allocated to the aura; and

determining a quality of service for the packet in accordance with the determined state of the pool and the configuration parameters for the aura.

2. The method as claimed in claim 1 , wherein the determining a quality of service for the packet comprises:

comparing the determined level of buffers available in the pool with a first threshold;

comparing the determined level of buffers allocated to the aura with a second threshold; and

providing an interrupt when either the determined level of buffers available in the pool crosses the first threshold and/or when the determined level of buffers allocated to the aura crosses the second threshold.

3. The method as claimed in claim 2 , further comprising:

adding resources to or removing resources from the pool in accordance with the provided interrupt and the direction of crossing the first and/or the second threshold; wherein

the resources are removed from the pool when the first threshold was crossed from the value less that the first threshold to a level greater than the first threshold and/or when the second threshold was crossed from the value less that the second threshold to a level greater than the second threshold; and

the resources are added otherwise.

4. The method as claimed in claim 1 , wherein the determining a quality of service for the packet comprises:

comparing the determined level of the buffers available in the pool with the value of the configuration parameters of aura levels related to the pool of buffers;

comparing the determined level of aura buffers allocated to the aura with the value of the configuration parameters of aura levels related to the buffers allocated the aura; and

determining the quality of service for the packet in accordance with the result of the comparing.

5. The method as claimed in claim 4 , wherein the determining the quality of service for the packet in accordance with the result of the comparing comprises:

dropping the packet when

the determined level of the buffers available in the pool is less than the value of the determined configuration parameter AURA_POOLS_LEVELS[DROP], or

the determined level of buffers allocated to the aura is greater than the value of the determined configuration parameter AURA_CNT_LIMIT, or

the determined level of buffers allocated to the aura is greater than the value of the determined configuration parameter AURA_CNT_LEVELS[DROP].

6. The method as claimed in claim 4 , wherein the determining the quality of service for the packet in accordance with the result of the comparing comprises:

carrying out random early discard of the packet when

the determined level of the buffers available in the pool is between the value of the determined configuration parameter AURA_POOLS_LEVELS[DROP] and the value of the determined configuration parameter AURA_POOLS_LEVELS[PASS], or

the determined level of the buffers allocated to the aura is between the value of the determined configuration parameter AURA_CNT_LEVELS[DROP] and the value of the determined configuration parameter AURA_CNT_LEVELS[PASS].

7. The method as claimed in claim 6 , wherein the carrying out random early discard of the packet comprises:

calculating a first drop probability as a first function of the value of the determined configuration parameter AURA_POOLS_LEVELS[PASS] and the value of the determined configuration parameter AURA_POOLS_LEVELS[DROP];

calculating a second drop probability as a function of the value of the determined configuration parameter AURA_CNT_LEVELS[PASS] and the value of the determined configuration parameter AURA_POOLS_LEVELS[DROP];

combining the calculated first drop probability and the second drop probability;

generating a pseudorandom number; and

carrying out random early discard in accordance with a result of a comparison of the combined drop probabilities with the pseudorandom number.

8. The method as claimed in claim 7 , wherein the combining the calculated first drop probability and the second drop probability comprises:

taking the greater of the first drop probability and the second drop probability.

9. The method as claimed in claim 7 , wherein the carrying out random early discard of the packet comprises:

dropping the packet when the pseudorandom number is smaller than or equal to the combined drop probabilities.

10. The method as claimed in claim 7 , wherein the carrying out random early discard of the packet comprises:

dropping the packet when the pseudorandom number is smaller than the combined drop probabilities.

11. The method as claimed in claim 4 , wherein the determining the quality of service for the packet in accordance with the result of the comparing comprises:

applying a backpressure when

the determined level of the buffers available in the pool is less than the value of the determined configuration parameter AURA_POOL_LEVELS [BP], or

the determined level of buffers allocated to the aura is less than the value of the determined configuration parameter AURA_CNT_LEVELS[BP].

12. The method as claimed in claim 11 , wherein the applying a backpressure comprises:

mapping the aura identifier of all the auras requesting a backpressure to a backpressure indicator;

mapping the backpressure indicator onto one or more channels of the interface; and

applying the backpressure in accordance with the backpressure indicator.

13. An apparatus for virtualization of a quality of service, comprising:

a parser configured to associate a packet received at an interface with an aura via an aura identifier by evaluating information of the internal fields of the packet's structure and information external to the packet's structure;

an aura management entity communicatively connected to the parser, the aura management entity being configured to determine configuration parameters for the aura, comprising a parameter identifying maximum number of buffers that may be allocated to the aura (AURA_CNT_LIMIT), a parameter identifying number of buffers allocated at a particular time (AURA_CNT), and a parameter identifying aura level related to the pool of available buffers (AURA_POOL_LEVELS),

determine a pool of buffers for the aura,

to determine the state of the pool resources, the resources comprising a level of buffers available in the pool and a level of buffers allocated to the aura, and

to determine a quality of service for the packet in accordance with the determined state of the pool and the configuration parameters for the aura.

14. The apparatus as claimed in claim 13 , wherein the aura management entity determines a quality of service for the packet by being configured to:

compare the determined level of buffers available in the pool with a first threshold;

compare the determined level of buffers allocated to the aura with a second threshold; and

provide an interrupt when either the determined level of buffers available in the pool crosses the first threshold and/or when the determined level of buffers allocated to the aura crosses the second threshold.

15. The apparatus as claimed in claim 14 , further comprising:

means for adding resources to or removing resources from the pool in accordance with the provided interrupt and the direction of crossing the first and/or the second threshold; wherein

the resources are removed from the pool when the first threshold was crossed from the value less that the first threshold to a level greater than the first threshold and/or when the second threshold was crossed from the value less that the second threshold to a level greater than the second threshold; and

the resources are added otherwise.

16. The apparatus as claimed in claim 13 , wherein the aura management entity determines a quality of service for the packet by being configured to:

compare the determined level of the buffers available in the pool with the value of the determined configuration parameters of aura levels related to the pool of buffers;

compare the determined level of aura buffers allocated to the aura with the value of the configuration parameters of aura levels related to the buffers allocated the aura; and

determine the quality of service for the packet in accordance with the result of the comparing.

17. The apparatus as claimed in claim 16 , wherein the aura management entity determines a quality of service for the packet by being configured to drop the packet when

the determined level of the buffers available in the pool is less than the value of the determined configuration parameter AURA_POOLS_LEVELS[DROP], or

the determined level of buffers allocated to the aura is greater than the value of the determined configuration parameter AURA 13 CNT_LIMIT, or

the determined level of buffers allocated to the aura is greater than the value of the determined configuration parameter AURA_CNT_LEVELS[DROP].

18. The apparatus as claimed in claim 16 , wherein the aura management entity determines a quality of service for the packet by being configured to carry out random early discard of the packet when

the determined level of the buffers available in the pool is between the value of the determined configuration parameter AURA_POOLS_LEVELS[DROP] and the value of the determined configuration parameter AURA_POOLS_LEVELS[PASS], or

the determined level of the buffers allocated to the aura is between the value of the determined configuration parameter AURA_CNT_LEVELS[DROP] and the value of the determined configuration parameter AURA_CNT_LEVELS[PASS].

19. The apparatus as claimed in claim 18 , wherein the aura management entity carries out random early discard of the packet by being configured to:

calculate a first drop probability as a first function of the value of the determined configuration parameter AURA_POOLS_LEVELS[PASS] and the value of the determined configuration parameter AURA_POOLS_LEVELS[DROP];

calculate a second drop probability as a function of the value of the determined configuration parameter AURA_CNT_LEVELS[PASS] and the value of the determined configuration parameter AURA_POOLS_LEVELS[DROP];

combine the calculated first drop probability and the second drop probability;

generate a pseudorandom number; and

carry out random early discard in accordance with a result of a comparison of the combined drop probabilities with the pseudorandom number.

20. The apparatus as claimed in claim 19 , wherein the aura management entity combines the calculated first drop probability and the second drop probability by being configured to take the greater of the first drop probability and the second drop probability.

21. The apparatus as claimed in claim 19 , wherein the aura management entity carries out random early discard of the packet by being configured to drop the packet when the pseudorandom number is smaller than or equal to the combined drop probabilities.

22. The apparatus as claimed in claim 19 , wherein the aura management entity carries out random early discard of the packet by being configured to drop the packet when the pseudorandom number is smaller than the combined drop probabilities.

23. The apparatus as claimed in claim 16 , wherein the aura management entity determines a quality of service for the packet by being configured to apply a backpressure when

the determined level of the buffers available in the pool is less than the value of the determined configuration parameter AURA_POOL_LEVELS [BP], or

the determined level of buffers allocated to the aura is less than the value of the determined configuration parameter AURA_CNT_LEVELS[BP].

24. The apparatus as claimed in claim 23 , wherein the aura management entity applies a backpressure by being configured to:

map the aura identifier of all the auras requesting a backpressure to a backpressure indicator;

map the backpressure indicator onto one or more channels of the interface; and

apply the backpressure in accordance with the backpressure indicator.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2020
From: CAVIUM INTERNATIONAL
To: MARVELL ASIA PTE, LTD.
Reel/Frame 053179/0320 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 17, 2020
From: CAVIUM, LLC
To: CAVIUM INTERNATIONAL
Reel/Frame 051948/0807 →
CHANGE OF NAME Recorded Dec 12, 2019
From: CAVIUM, INC.
To: CAVIUM, LLC
Reel/Frame 051260/0567 →
RELEASE OF SECURITY INTEREST Recorded Jul 6, 2018
From: JP MORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: CAVIUM, INC; CAVIUM NETWORKS LLC; QLOGIC CORPORATION
Reel/Frame 046496/0001 →
SECURITY AGREEMENT Recorded Aug 17, 2016
From: CAVIUM, INC.; CAVIUM NETWORKS LLC
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 039715/0449 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 25, 2013
From: SNYDER II, WILSON PARKHURST; HUMMEL, THOMAS FREDERICK; KUJTKOWSKI, ANNA KAREN
To: CAVIUM, INC.
Reel/Frame 031846/0808 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 25, 2013
From: SNYDER II, WILSON PARKHURST; HUMMEL, THOMAS FREDERICK; KUJTKOWSKI, ANNA KAREN
To: CAVIUM, INC.
Reel/Frame 031846/0812 →