Dynamic Protection Of Shared Memory Used By Output Queues In A Network Device

US2016337258A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2016337258-A1
Application numberUS-201514710822-A
CountryUS
Kind codeA1
Filing dateMay 13, 2015
Priority dateMay 13, 2015
Publication dateNov 17, 2016
Grant date

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A network switch includes a buffer to store network packets linked to queues to feed the packets to output ports of the switch associated with the queues. The buffer is shared dynamically among multiple traffic pools. The network switch determines per-pool dynamic thresholds each based on an amount of unused buffer space, and per-queue dynamic thresholds based on amounts of unused buffer space available in the pools with which the queues are associated. The network switch receives packets, and for each received packet, the network switch admits the packet to the pool with which the packet is associated and the queue for which the packet is destined if (i) occupancy of the associated pool is less than the corresponding per-pool dynamic threshold, and (ii) occupancy of the queue for which the packet is destined is less than the corresponding per-queue dynamic threshold, and otherwise drops the packet.

First claim

Opening claim text (preview).

What is claimed is: 1 . A method comprising: at a network switch including a buffer having buffer space to store network packets linked to queues to feed the packets to output ports of the switch associated with the queues, the buffer space being shared dynamically among multiple traffic pools: determining per-pool dynamic thresholds defining upper limits for per-pool occupancy each based on an amount of unused buffer space; determining per-queue dynamic thresholds defining upper limits for per-queue occupancy based on amounts of unused buffer space available in the pools with which the queues are associated; and receiving packets, and for each received packet: admitting the packet to the pool with which the packet is associated and the queue for which the packet is destined if (i) occupancy of the associated pool is less than the corresponding per-pool dynamic threshold, and (ii) occupancy of the queue for which the packet is destined is less than the corresponding per-queue dynamic threshold; and for each receive packet; and dropping the packet if both conditions (i) and (ii) are not met. 2 . The method of claim 1 , further comprising, for each packet: determining if the occupancy of the queue for which the packet is destined is less than a predetermined static queue threshold, wherein: the admitting includes admitting the packet if the occupancy of the queue is less than the predetermined static threshold or if both conditions (i) and (ii) are met; and the dropping includes dropping the packet if the occupancy of the queue is not less than the predetermined static threshold and both conditions (i) and (ii) are not met. 3 . The method of claim 1 , wherein the determining the per-pool dynamic thresholds includes, for each pool, multiplying the amount of unused buffer space by a respective pool parameter. 4 . The method of claim 3 , wherein at least some of the respective pool parameters are different from one another. 5 . The method of claim 1 , wherein the determining the per-queue dynamic thresholds includes, for each queue in an associated pool, multiplying the amount of unused buffer space in the associated pool by a respective queue parameter. 6 . The method of claim 5 , wherein the respective queue parameters are a same queue parameter for all queues. 7 . The method of claim 5 , wherein at least some of the respective queue parameters are different from one another. 8 . The method of claim 5 , wherein the determining the per-queue dynamic thresholds further includes, for the queue for which the packet is destined: reducing the determined per-queue dynamic threshold by a random amount. 9 . The method of claim 1 , wherein each of the multiple traffic pools is associated with a corresponding one of different network traffic classes and each of the different network traffic classes is associated with a corresponding Quality-of-Service (QoS). 10 . An apparatus comprising: network ports to receive and send network packets from and to a network; and a controller coupled to the network ports, the controller including a buffer with buffer space to store network packets linked to queues to feed the packets to ones of the network ports associated with the queues, the buffer space being shared dynamically among multiple traffic pools, the controller configured to: determine per-pool dynamic thresholds defining upper limits for per-pool occupancy each based on an amount of unused buffer space; determine per-queue dynamic thresholds defining upper limits for per-queue occupancy based on amounts of unused buffer space available in the pools with which the queues are associated; and receive packets from the input ports, and for each received packet: admit the packet to the pool with which the packet is associated and the queue for which the packet is destined if (i) occupancy of the associated pool is less than the corresponding per-pool dynamic threshold, and (ii) occupancy of the queue for which the packet is destined is less than the corresponding per-queue dynamic threshold; and drop the packet if both conditions (i) and (ii) are not met. 11 . The apparatus of claim 10 , wherein the controller is further configured to, for each packet: determine if the occupancy of the queue for which the packet is destined is less than a predetermined static queue threshold; admit the packet if the occupancy of the queue is less than the predetermined static threshold or if both conditions (i) and (ii) are met; and drop the packet if the occupancy of the queue is not less than the predetermined static threshold and both conditions (i) and (ii) are not met. 12 . The apparatus of claim 10 , wherein the controller is configured to determine the per-pool dynamic thresholds by, for each pool, multiply the amount of unused buffer space by a respective pool parameter. 13 . The apparatus of claim 12 , wherein at least some of the respective pool parameters are different from one another. 14 . The apparatus of claim 10 , wherein the controller is configured to determine the per-queue dynamic thresholds by, for each queue in an associated pool, multiply the amount of unused buffer space in the associated pool by a respective queue parameter. 15 . The apparatus of claim 14 , wherein the respective queue parameters are a same queue parameter for all queues. 16 . The apparatus of claim 14 , wherein the processor is configured to determine the per-queue dynamic thresholds by, for the queue for which the packet is destined: reducing the determined per-queue dynamic threshold by a random amount. 17 . The apparatus of claim 10 , wherein each of the multiple traffic pools is associated with a corresponding one of different network traffic classes and each of the different network traffic classes is associated with a corresponding Quality-of-Service (QoS). 18 . A method comprising: at a network switch including a buffer having buffer space to store network packets linked to queues to feed the packets to output ports of the switch associated with the queues, the buffer space being shared dynamically among the queues: determining for each queue a first dynamic threshold defining an upper limit for queue occupancy of the queue by multiplying an amount of unused buffer space available to store packets by a respective queue parameter for the queue; receiving a packet destined for a given queue; reducing the first dynamic threshold for the given queue by a random amount to produce a second dynamic threshold for the given queue; and admitting the received packet into the given queue if queue occupancy of the given queue is less than the second dynamic threshold; and dropping the received packet if the queue occupancy is not less than the second dynamic threshold. 19 . The method of claim 18 , wherein the reducing includes reducing the first dynamic threshold by a random amount between zero percent and fifty percent of the first dynamic threshold. 20 . The method of claim 18 , further comprising: sharing the buffer space dynamically among the queues and also among multiple traffic pools each associated with a respective one of multiple traffic classes, the method further comprising: determining per-pool dynamic thresholds defining upper limits for per-pool occupancy each based on the amount of unused buffer space, wherein the receiving includes receiving the packet destined for the given queue and a given pool, and wherein the admitting further includes admitting the packet to the

Assignees

Inventors

Classifications

  • using multiple queues, one for each individual QoS, connection, flow or priority · CPC title

  • at the destination endpoint, e.g. reservation of terminal resources or buffer space · CPC title

  • by discarding or delaying data units, e.g. packets or frames · CPC title

  • Multicast operation; Broadcast operation · CPC title

  • H04L49/107Primary

    using shared medium · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US2016337258A1 cover?
A network switch includes a buffer to store network packets linked to queues to feed the packets to output ports of the switch associated with the queues. The buffer is shared dynamically among multiple traffic pools. The network switch determines per-pool dynamic thresholds each based on an amount of unused buffer space, and per-queue dynamic thresholds based on amounts of unused buffer space …
Who is the assignee on this patent?
Cisco Tech Inc
What technology area does this patent fall under?
Primary CPC classification H04L47/6295. Mapped technology areas include Electricity.
When was this patent published?
Publication date Thu Nov 17 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 5 related publications on this page (citations in our corpus or others sharing the same primary CPC).