IP Library Granted Patent US 11,563,695
Granted Patent B2
US 11,563,695 · App. 15/250,860 · Granted Jan 24, 2023

Queue protection using a shared global memory reserve

Inventors: Vinod Mitulal (Santa Clara, CA); Krishnan Subramani (San Jose, CA); Peter Newman (Fremont, CA); Georges Akis (Los Altos, CA)
Assignee: Cisco Technology, Inc.
H04L49/103H04L47/29H04L47/30H04L47/32H04L49/108H04L49/3036H04L49/9005H04L49/9084
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 11,563,695
App. No.
15/250,860
Granted
Jan 24, 2023
Kind
B2
Abstract

The subject technology relates to the management of a shared buffer memory in a network switch. Systems, methods, and machine readable media are provided for receiving a data packet at a first network queue from among a plurality of network queues, determining if a fill level of a queue in a shared buffer of the network switch exceeds a dynamic queue threshold, and in an event that the fill level of the shared buffer exceeds the dynamic queue threshold, determining if a fill level of the first network queue is less than a static queue minimum threshold.

Claims (37)

1. A method of managing memory in a network switch, the method comprising:

receiving a data packet at a first network queue from among a plurality of network queues;

determining if a fill level of the first network queue in a shared buffer of the network switch exceeds a dynamic queue threshold, the dynamic queue threshold being reconfigurable;

and in response to the fill level of the first network queue exceeding the dynamic queue threshold, determining if the fill level of the first network queue is less than a static queue minimum threshold, the static queue minimum threshold being a minimum amount of memory reserved for the first network queue.

2. The method of claim 1 , further comprising: |enqueuing the data packet in the shared buffer when the fill level of the first network queue is less than the static queue minimum threshold.

3. The method of claim 1 , further comprising: |dropping the data packet when the fill level of the first network queue is greater than the static queue minimum threshold.

4. The method of claim 1 , further comprising: |dropping the data packet when the fill level of the first network queue exceeds the dynamic queue threshold and the static queue minimum threshold.

5. The method of claim 1 , wherein the dynamic queue threshold is based on an amount of unallocated memory in the shared buffer.

6. The method of claim 1 , wherein the dynamic queue threshold is a function of a fill level for each respective one of the plurality of network queues.

7. The method of claim 1 , wherein the static queue minimum threshold is a user defined value.

8. A shared memory network switch comprising:

at least one processor;

a shared buffer memory, the shared buffer memory comprising a dynamic memory allocation and a reserve memory allocation;

and a memory device storing instructions that, when executed by the at least one processor, cause the at least one processor to perform operations comprising:

receiving a data packet at a first network queue from among a plurality of network queues;

determining if a fill level of the first network queue in the shared buffer of the network switch exceeds a dynamic queue threshold, the dynamic queue threshold being reconfigurable;

and when the fill level of the first network queue in the shared buffer exceeds the dynamic queue threshold, determining if the fill level of the first network queue is less than a static queue minimum threshold, the static queue minimum threshold being a minimum amount of memory reserved for the first network queue.

9. The shared memory network switch of claim 8 , further comprising:

enqueuing the data packet in the shared buffer when the fill level of the first network queue is less than the static queue minimum threshold.

10. The shared memory network switch of claim 8 , further comprising:

dropping the data packet when the fill level of the first network queue is greater than the static queue minimum threshold.

11. The shared memory network switch of claim 8 , further comprising:

dropping the data packet when the fill level of the first network queue exceeds the dynamic queue threshold and the static queue minimum threshold.

12. The shared memory network switch of claim 8 , wherein the dynamic queue threshold is based on an amount of unallocated memory in the shared buffer.

13. The shared memory network switch of claim 8 , wherein the dynamic queue threshold is a function of a fill level for each respective one of the plurality of network queues.

14. The shared memory network switch of claim 8 , wherein the static queue minimum threshold is a user defined value.

15. A non-transitory computer-readable storage medium comprising instructions stored therein, which when executed by one or more processors, cause the processors to perform operations comprising:

receiving a data packet at a first network queue from among a plurality of network queues; determining if a fill level of the first network queue in a shared buffer exceeds a dynamic queue threshold, the dynamic queue threshold being reconfigurable;

and when the fill level of the first network queue in the shared buffer exceeds the dynamic queue threshold, determining if the fill level of the first network queue is less than a static queue minimum threshold, the static queue minimum threshold being a minimum amount of memory reserved for the first network queue.

16. The non-transitory computer-readable storage medium of claim 15 , further comprising:

enqueuing the data packet in the shared buffer when the fill level of the first network queue is less than the static queue minimum threshold.

17. The non-transitory computer-readable storage medium of claim 15 , further comprising:

dropping the data packet when the fill level of the first network queue is greater than the static queue minimum threshold.

18. The non-transitory computer-readable storage medium of claim 15 , further comprising:

dropping the data packet when the fill level of the fill level of the first network queue exceeds the dynamic queue threshold and the static queue minimum threshold.

19. The non-transitory computer-readable storage medium of claim 15 , wherein the dynamic queue threshold is based on an amount of unallocated memory in the shared buffer.

20. The non-transitory computer-readable storage medium of claim 15 , wherein the dynamic queue threshold is a function of a fill level for each respective one of the plurality of network queues.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 29, 2016
From: MITULAL, VINOD; SUBRAMANI, KRISHNAN; NEWMAN, PETER; AKIS, GEORGES
To: CISCO TECHNOLOGY, INC.
Reel/Frame 039570/0069 →
Continuity (1)
Related Publication 20180063030A1 · Mar 1, 2018
Cited By (4)
US 12,192,122 US 12,231,343 US 12,375,404 US 12,474,833