Direct memory access rate limiting in a communication device

US9258257B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9258257-B2
Application numberUS-201313738789-A
CountryUS
Kind codeB2
Filing dateJan 10, 2013
Priority dateJan 10, 2013
Publication dateFeb 9, 2016
Grant dateFeb 9, 2016

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.

Rate limiting operations can be implemented at an ingress DMA unit to minimize the probability of dropped packets because of differences between the communication rates of the ingress DMA unit and a packet processing engine. The communication rate associated with each of the software ports of a communication device can be determined and an aggregate software port ingress rate can be calculated by summing the communication rate associated with each of the software ports. The transfer rate associated with the ingress DMA unit can be limited so that packets are transmitted from the ingress DMA unit to the packet processing engine at a communication rate that is at least equal to the aggregate software port ingress rate. If each software port comprises a dedicated rate-limited ingress DMA queue, packets from a rate-limited ingress DMA queue can be transmitted at the at least the communication rate of the corresponding software port.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for providing packets to a packet processing engine via an ingress direct memory access (DMA) unit of a communication device, the method comprising: determining communication rates of a plurality of software ports of the communication device; determining an aggregate software port ingress rate of the communication device based, at least in part, on the communication rates of the plurality of software ports; and providing, by the ingress DMA unit, the packets received from at least a subset of the plurality of software ports to the packet processing engine at a transfer rate that is at least equal to the aggregate software port ingress rate and that does not exceed a maximum communication rate of the packet processing engine. 2. The method of claim 1 , wherein the communication device comprises a plurality of hardware ports, and the plurality of software ports and the plurality of hardware ports share the packet processing engine. 3. The method of claim 1 , wherein the transfer rate of the ingress DMA unit comprises at least one member selected from the group consisting of a bits per second throughput associated with the ingress DMA unit and a number of packets transferred per second by the ingress DMA unit. 4. The method of claim 1 , further comprising configuring the ingress DMA unit to limit the transfer rate for providing packets to the packet processing engine to a rate between the aggregate software port ingress rate and the maximum communication rate of the packet processing engine. 5. The method of claim 1 , wherein the communication device comprises one or more processors configured to pre-process packets received at the plurality of software ports. 6. The method of claim 1 , wherein the ingress DMA unit comprises a plurality of ingress DMA queues, wherein each of the plurality of ingress DMA queues corresponds to one or more of the plurality of software ports. 7. The method of claim 1 , wherein the ingress DMA unit comprises a plurality of ingress DMA queues, wherein each of the plurality of software ports maps to at least one of the plurality of ingress DMA queues. 8. The method of claim 1 , wherein the ingress DMA unit comprises one or more ingress DMA queues associated with the plurality of software ports, and wherein said providing, by the ingress DMA unit, the packets received from at least the subset of the plurality of software ports to the packet processing engine comprises, for a first ingress DMA queue of the one or more ingress DMA queues, providing, from the first ingress DMA queue, packets received from a first software port to the packet processing engine at a transfer rate that is at least equal to a communication rate associated with the first software port. 9. The method of claim 1 , further comprising determining the maximum communication rate of the packet processing engine based, at least in part, on the aggregate software port ingress rate and an aggregate hardware port ingress rate. 10. The method of claim 1 , wherein the ingress DMA unit comprises one or more ingress DMA queues associated with the plurality of software ports, the method further comprising: for a rate limiter associated with a first ingress DMA queue of the one or more ingress DMA queues, configuring a communication rate of the rate limiter to be at least equal to a communication rate of a first software port associated with the first ingress DMA queue and less than the maximum communication rate of the packet processing engine. 11. The method of claim 1 , wherein a communication rate associated with a first software port of the plurality of software ports is a peak ingress communication rate of the first software port; and a communication rate associated with a first hardware port of one or more hardware ports of the communication device is a peak ingress communication rate of the first hardware port. 12. The method of claim 1 , wherein the maximum communication rate of the packet processing engine comprises at least one member selected from the group consisting of a predefined bits per second throughput of the packet processing engine and a predefined packets per second throughput of the packet processing engine. 13. The method of claim 1 , wherein if the ingress DMA unit comprises one or more ingress DMA queues associated with the plurality of software ports, the method further comprising: determining, at the ingress DMA unit, whether to provide a packet from a first ingress DMA queue to the packet processing engine based, at least in part, on determining whether providing the packet to the packet processing engine will exceed the maximum communication rate of the packet processing engine. 14. The method of claim 13 , wherein said determining whether providing the packet to the packet processing engine will exceed the maximum communication rate of the packet processing engine comprises at least one member selected from the group consisting of: determining whether providing the packet to the packet processing engine will cause the packet processing engine to exceed a predefined bits per second throughput threshold; and determining whether providing the packet to the packet processing engine will cause the packet processing engine to exceed a predefined packets processed per second threshold. 15. The method of claim 1 , further comprising: determining an aggregate hardware port ingress rate of the communication device based, at least in part, on a sum of communication rates of a plurality of hardware ports of the communication device; and determining the maximum communication rate of the packet processing engine based, at least in part, on a sum of the aggregate software port ingress rate and the aggregate hardware port ingress rate. 16. The method of claim 1 , wherein the aggregate software port ingress rate of the communication device comprises a sum of the communication rates of the plurality of software ports. 17. The method of claim 1 , further comprising receiving a packet in a first packet format at a first software port of the plurality of software ports; converting the packet from the first packet format into a second packet format supported by the packet processing engine; and providing the packet in the second packet format to the ingress DMA unit for subsequent transfer to the packet processing engine. 18. The method of claim 17 , wherein said providing the packet in the second packet format to the ingress DMA unit comprises: providing the packet to a first ingress DMA queue of the ingress DMA unit, wherein the first ingress DMA queue is associated with the first software port. 19. The method of claim 17 , wherein the first packet format is a wireless local area network (WLAN) packet format or a universal serial bus (USB) packet format. 20. The method of claim 17 , wherein the second packet format is an Ethernet packet format. 21. The method of claim 1 , further comprising: determining to transmit a packet, from the packet processing engine to an egress DMA unit of the communication device based, at least in part, on a transmission priority of the packet; and determining to transmit the packet from the egress DMA unit to a first software port of the plurality of software ports based, at least in part, on a communication rate associated with the first software port. 22. The method of claim 21 , wherein the egress DMA unit comprises one or more rate-limited egress DMA queues associated with of the plurality o

Assignees

Inventors

Classifications

  • Intermediate storage in different physical parts of a node or terminal · CPC title

  • G06F13/28Primary

    using burst mode transfer, e.g. direct memory access {DMA}, cycle steal (G06F13/32 takes precedence) · 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 US9258257B2 cover?
Rate limiting operations can be implemented at an ingress DMA unit to minimize the probability of dropped packets because of differences between the communication rates of the ingress DMA unit and a packet processing engine. The communication rate associated with each of the software ports of a communication device can be determined and an aggregate software port ingress rate can be calculated …
Who is the assignee on this patent?
Qualcomm Inc
What technology area does this patent fall under?
Primary CPC classification H04L49/9063. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Feb 09 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).