Queue protection using a shared global memory reserve
AssigneeCisco Technology, Inc.
InventorsVinod Mitulal, Krishnan Subramani, Peter Newman, Georges Akis
Life of this patent
Estimating the term…
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.
Claims20
A method of managing memory in a network switch, the method comprising:
- configuring a memory space to have a first shared allocated space, wherein the first shared allocated space is associated with a dynamic maximum threshold that is a function of available space in the first shared allocated space, and a second shared allocated space,
- wherein the memory space is associated with a plurality of ports including a first port, wherein the first port is associated with a first queue for enqueuing packets within the memory space;
- upon receiving a packet on the first port, comparing a fill level of the first queue to the dynamic maximum threshold;
- upon determining that the fill level of the first queue is below the dynamic maximum threshold, enqueuing the packet in the first shared allocated space;
- and
- upon determining that the fill level of the first queue is above the dynamic maximum threshold, enqueuing the packet in the second shared allocated space.
A shared memory network switch comprising:
- at least one processor;
- a plurality of ports;
- a buffer memory;
- a memory device storing instructions that, when executed by the at least one processor, cause the at least one processor to perform operations comprising:
- configuring the buffer memory to have a first shared allocated space, wherein the first shared allocated space is associated with a dynamic maximum threshold that is a function of available space in the first shared allocated space, and a second shared allocated space;
- associating a first port of the plurality of ports with a first queue for enqueuing packets within a first allocated memory space;
- upon receiving a packet on the first port, comparing a fill level of the first queue to the dynamic maximum threshold;
- upon determining that the fill level of the first queue is below the dynamic maximum threshold, enqueuing the packet in the first shared allocated space;
- and
- upon determining that the fill level of the first queue is above the dynamic maximum threshold, enqueuing the packet in the second shared allocated space.
A non-transitory computer-readable storage medium comprising instructions stored therein, which when executed by one or more processors, cause the one or more processors to perform operations comprising:
- configuring a buffer memory to have a first shared allocated space, wherein the first shared allocated space is associated with a dynamic maximum threshold that is a function of available space in the first shared allocated space, and a second shared allocated space;
- associating a first port of a plurality of ports with a first queue for enqueuing packets within a first allocated memory space;
- upon receiving a packet on the first port, comparing a fill level of the first queue to the dynamic maximum threshold;
- upon determining that the fill level of the first queue is below the dynamic maximum threshold, enqueuing the packet in the first shared allocated space;
- and
- upon determining that the fill level of the first queue is above the dynamic maximum threshold, enqueuing the packet in the second shared allocated space.
Dependencies are inferred from the claim text.