IP Library Granted Patent US 12,425,352
Granted Patent B2
US 12,425,352 · App. 17/893,835 · Granted Sep 23, 2025

Mice-elephant aware shared buffer schema

Inventors: Niv Aibester (Herzliya, IL); Gil Levy (Hod-Hasharon, IL); Aviv Kfir (Nili, IL)
Assignee: MELLANOX TECHNOLOGIES, LTD.
H04L47/621H04L43/0882H04L47/2441H04L47/801H04L49/103
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 12,425,352
App. No.
17/893,835
Granted
Sep 23, 2025
Kind
B2
Abstract

A networking device and system are described, among other things. An illustrative system is disclosed to include a shared buffer and at least a flow controller. In some embodiments, the system and/or flow controller may be configured to measure a packet flow's bandwidth consumption of the shared buffer, assign a flow-type attribute to the packet flow based on the packet flow's bandwidth consumption of the shared buffer, select a shared buffer schema for the packet flow based on the flow-type attribute assigned to the packet flow, and apply the selected shared buffer schema to the packet flow. For example, the flow-type attribute assigned to the packet flow may comprise a mice flow state or an elephant flow state, and a reserve attribute may be assigned to the flow based on the packet flow being assigned the mice flow state or the elephant flow state.

Claims (40)

1. A system, comprising:

a processor; and

computer memory coupled to the processor, wherein the computer memory comprises instructions stored thereon that, when executed by the processor, enable the processor to:

measure bandwidth consumption of a packet flow within a distributed computing environment, wherein the bandwidth consumption is measured on a per-quota basis;

based on the bandwidth consumption of the packet flow, assign a flow-type attribute and a corresponding quota to the packet flow, wherein the flow-type attribute assigned to the packet flow comprises a mice flow state or an elephant flow state, wherein a reserve attribute is assigned to the flow based on the packet flow being assigned the mice flow state or the elephant flow state, wherein the reserve attribute represents a reserved number of resources for processing and/or forwarding the packet flow, and wherein the corresponding quota retains the reserve attribute for the packet flow;

apply an admission schema for the packet flow to access one or more buffer resources shared among multiple devices in the distributed computing environment;

contingent upon the packet flow satisfying the admission schema, select a shared buffer schema for the packet flow based on the flow-type attribute assigned to the packet flow, wherein the shared buffer schema is applied to the one or more buffer resources shared among multiple devices in the distributed computing environment; and

apply the selected shared buffer schema to the packet flow.

2. The system of claim 1 , wherein the instructions, when executed by the processor, further enable the processor to:

measure the bandwidth consumption of the packet flow at an ingress of a queue.

3. The system of claim 1 , wherein the instructions, when executed by the processor, further enable the processor to:

measure the bandwidth consumption of the packet flow at an egress of a queue.

4. The system of claim 1 , wherein the bandwidth consumption of the packet flow is measured for at least one of a physical queue or a virtual queue.

5. The system of claim 4 , wherein the bandwidth consumption of the packet flow is measured in bytes.

6. The system of claim 4 , wherein the instructions, when executed by the processor, further enable the processor to:

adjust a service class of the at least one of the physical queue and the virtual queue.

7. The system of claim 1 , wherein the reserved number of resources for processing and/or forwarding the packet flow correspond to one or more resources dedicated to the packet flow.

8. The system of claim 7 , wherein the packet flow is assigned a first amount of a reserved buffer when the packet flow is assigned the mice flow state as the flow-type attribute and wherein the packet flow is assigned a second amount of the reserved buffer when the packet flow is assigned the elephant flow state as the flow-type attribute.

9. The system of claim 8 , wherein the mice flow state is assigned to the packet flow when the packet flow exhibits a first amount of burstiness and wherein the elephant flow state is assigned to the packet flow when the packet flow exhibits a second amount of burstiness that is less than the first amount of burstiness.

10. A flow controller, comprising:

one or more receiver circuits that receive a packet flow within a distributed computing environment;

one or more flow-type detection circuits that classify the packet flow and a corresponding quota between a mice flow state and an elephant flow state; and

one or more resource allocation circuits that assign a resource allocation schema to the packet flow based on the classification assigned to the packet flow by the one or more flow-type detection circuits and based upon the packet flow satisfying an admission schema for the packet flow to access one or more buffer resources shared among multiple devices in the distributed computing environment, wherein a reserve attribute is assigned to the packet flow based on the packet flow being assigned the mice flow state or the elephant flow state, wherein the reserve attribute represents a reserved number of resources for processing and/or forwarding the packet flow, and wherein the corresponding quota retains the reserve attribute for the packet flow.

11. The flow controller of claim 10 , wherein the resource allocation schema further comprises a lossy schema, a lossless schema, or a combination thereof.

12. The flow controller of claim 11 , wherein a different amount of reserved buffer is made available to the packet flow depending upon the classification assigned to the packet flow by the one or more flow-type detection circuits.

13. The flow controller of claim 12 , wherein the packet flow is allocated a smaller portion of the reserved buffer when classified with the mice flow state than would be allocated to the packet flow when classified with the elephant flow state.

14. The flow controller of claim 13 , wherein the mice flow state is assigned to the packet flow when the packet flow exhibits a first amount of burstiness and wherein the elephant flow state is assigned to the packet flow when the packet flow exhibits a second amount of burstiness that is less than the first amount of burstiness.

15. The flow controller of claim 10 , wherein the one or more flow-type detection circuits classify the packet flow based on a measured bandwidth consumed by the packet flow.

16. The flow controller of claim 15 , wherein the bandwidth consumed by the packet flow is measured at an ingress and/or egress of a buffer.

17. A system, comprising:

a shared buffer that comprises buffer resources shared among a plurality of devices in a distributed computing environment; and

a flow controller that:

measures a packet flow's bandwidth consumption of the shared buffer on a per-quota basis;

based on the packet flow's bandwidth consumption of the shared buffer, assigns a flow-type attribute and a corresponding quota to the packet flow, wherein the flow-type attribute assigned to the packet flow comprises a mice flow state or an elephant flow state, wherein a reserve attribute is assigned to the flow based on the packet flow being assigned the mice flow state or the elephant flow state, wherein the reserve attribute represents a reserved number of resources for processing and/or forwarding the packet flow, and wherein the corresponding quota retains the reserve attribute for the packet flow;

applies an admission schema for the packet flow to access one or more buffer resources shared among multiple resource sin the distributed computing environment;

selects a shared buffer schema for the packet flow based on the flow-type attribute assigned to the packet flow and contingent upon the packet flow satisfying the admission schema; and

applies the selected shared buffer schema to the packet flow thereby adjusting an amount of the buffer resources from the shared buffer that are made available to the packet flow.

18. The system of claim 17 , wherein the flow controller measures the packet flow's bandwidth consumption at one or both of a queue ingress and a queue egress.

19. The system of claim 18 , wherein the queue comprises at least one of a physical queue or a virtual queue.

20. The system of claim 17 , wherein the reserved number of resources for processing and/or forwarding the packet flow correspond to one or more resources dedicated to the packet flow.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 23, 2022
From: AIBESTER, NIV; LEVY, GIL; KFIR, AVIV
To: MELLANOX TECHNOLOGIES, LTD.
Reel/Frame 060873/0246 →
Continuity (1)
Related Publication 20240073151A1 · Feb 29, 2024
References Cited (21)
US 6501733B1 · Falco · 2002 [cited by examiner]
US 7221656B1 · Aweya · 2007 [cited by examiner]
US 10078613B1 · Ramey · 2018 [cited by examiner]
US 10178029B2 · Levy et al. · 2019 [cited by applicant]
US 10462060B2 · Ruthstein et al. · 2019 [cited by applicant]
US 10476794B2 · Levy et al. · 2019 [cited by applicant]
US 10476803B2 · Shpiner et al. · 2019 [cited by applicant]
US 10498612B2 · Levy et al. · 2019 [cited by applicant]
US 10601714B2 · Srebro et al. · 2020 [cited by applicant]
US 11032206B2 · Mula et al. · 2021 [cited by applicant]
US 11374838B1 · Finkelshtein et al. · 2022 [cited by applicant]
US 20050100009A1 · Botvich · 2005 [cited by examiner]
US 20140254380A1 · Swenson · 2014 [cited by examiner]
US 20150006486A1 · Lin · 2015 [cited by examiner]
US 20160080207A1 · Prakash · 2016 [cited by examiner]
US 20180019947A1 · Shpiner et al. · 2018 [cited by applicant]
US 20180241677A1 · Srebro · 2018 [cited by examiner]
US 20190158414A1 · Navon · 2019 [cited by examiner]
US 20220045972A1 · Aibester · 2022 [cited by examiner]
US 20220075766A1 · Levy et al. · 2022 [cited by applicant]
US 20220255870A1 · Lo et al. · 2022 [cited by applicant]