Buffer space availability for different packet classes

US10735331B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-10735331-B1
Application numberUS-201615374828-A
CountryUS
Kind codeB1
Filing dateDec 9, 2016
Priority dateDec 9, 2016
Publication dateAug 4, 2020
Grant dateAug 4, 2020

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.

Some embodiments provide a method for a hardware forwarding element. The method receives a packet to add to a buffer. The packet is assigned a packet class. The method determines an amount of buffer space available for the assigned packet class. Different packet classes have different amounts of buffer space available in the buffer. When the available buffer space for the assigned packet class is large enough for the received packet, the method adds the packet to the buffer.

First claim

Opening claim text (preview).

What is claimed is: 1. For a hardware forwarding element, a method comprising: receiving a packet to add to an output buffer of the hardware forwarding element that is shared between a plurality of egress pipelines of the hardware forwarding element that comprise configurable match-action units, wherein the packet is assigned a packet class based on (i) an ingress pipeline of the hardware forwarding element that processed the packet and (ii) a priority value assigned to the packet; for at least one of a plurality of packet classes including the assigned packet class, determining an amount of buffer space available in the output buffer by (i) calculating a total amount of buffer space available in the output buffer and (ii) multiplying the total amount of buffer space available by coefficients assigned to at least one of the packet classes, wherein the plurality of packet classes comprise a packet class for at least possible priority value for at least one of a plurality of ingress pipelines of the hardware forwarding element, wherein at least two different packet classes have different amounts of buffer space available in the buffer based on different coefficients being assigned to the at least two different packet classes; and based on the available buffer space for the assigned packet class being large enough for the received packet, adding the packet to the output buffer. 2. The method of claim 1 , wherein the output buffer comprises a temporary storage for packets processed by one of the ingress pipelines prior to processing by an egress pipeline of the hardware forwarding element. 3. The method of claim 2 , wherein the hardware forwarding element comprises a plurality of configurable ingress pipelines and a plurality of configurable egress pipelines. 4. The method of claim 3 , wherein at least one packet received by the hardware forwarding element is processed by one of the ingress pipelines, wherein at least one packet is assigned a priority value by the ingress pipeline that processes the packet. 5. The method of claim 1 , wherein a number of different packet classes is a number of ingress pipelines of the forwarding element multiplied by a number of possible priority values. 6. The method of claim 1 , wherein the hardware forwarding element comprises a traffic management circuit that performs the receiving, determining, and adding. 7. The method of claim 1 , wherein at least one of the coefficients is a value between 0 and 1. 8. The method of claim 1 , wherein the amount of buffer space available for at least one packet class is re-calculated every clock cycle. 9. The method of claim 7 , wherein the sum of the coefficients is a value less than 1. 10. The method of claim 1 , wherein adding the packet to the output buffer comprises: writing packet data for the packet into the available buffer space of the output buffer; and adding a reference to the packet data in the output buffer to one of a plurality of egress pipeline queues of the hardware forwarding element. 11. The method of claim 10 , wherein the output buffer stores packet data for the plurality of egress pipeline queues. 12. For a hardware forwarding element comprising a traffic management circuit for performing packet replication for broadcast and multicast packets, a method comprising: receiving a packet to add to an output buffer of the hardware forwarding element, wherein the packet is assigned a packet class based on (i) an ingress pipeline of the hardware forwarding element that processed the packet and (ii) a priority value assigned to the packet; for at least one of a plurality of packet classes including the assigned packet class, determining an amount of buffer space available in the output buffer by (i) calculating a total amount of buffer space available in the output buffer and (ii) multiplying the total amount of buffer space available by coefficients assigned to each of the packet classes, wherein the plurality of packet classes comprises a packet class for at least one possible priority value for at least one of a plurality of ingress pipelines of the hardware forwarding element, wherein at least one different packet classes have different amounts of buffer space available in the buffer based on different coefficients being assigned to the at least two different packet classes; and based on the available buffer space for the assigned packet class being large enough for the received packet, adding the packet to the output buffer, wherein the traffic management circuit performs the receiving, determining, and adding. 13. The method of claim 12 , wherein the output buffer is shared between a plurality of egress pipelines of the hardware forwarding element. 14. The method of claim 13 , wherein the egress pipelines comprise configurable match-action units. 15. The method of claim 12 , wherein the traffic management circuit performs processing on a particular packet after the packet is processed by one of a plurality of configurable ingress pipelines and prior to processing by one of a plurality of configurable egress pipelines. 16. The method of claim 15 , wherein based on a broadcast packet being replicated by the traffic management circuit, at least two of the replicated packets are processed by different configurable egress pipelines. 17. A forwarding element comprising: an output buffer to store storing packet data for a packet received by the forwarding element, wherein the packet is assigned a packet class based on (i) an ingress pipeline of the forwarding element that processed the packet and (ii) a priority value assigned to the packet; and a traffic management circuit to perform packet replication for broadcast and multicast packets, the traffic management circuit to: determine, for at least one of a plurality of packet classes including the assigned packet class, an amount of buffer space available in the output buffer by (i) calculate of a total amount of buffer space available and (ii) multiplication of the total amount of buffer space available by coefficients assigned to at least one of the packet classes, wherein the plurality of packet classes comprises a packet class for each possible priority value for at least one of the ingress pipelines of the hardware forwarding element, wherein at least two different packet classes have different amounts of buffer space available in the buffer based on different coefficients being assigned to the at least two different packet classes; and based on the available buffer space for the assigned packet class being large enough for the received packet, add the packet to the output buffer. 18. The forwarding element of claim 17 further comprising: a plurality of configurable ingress pipelines; and a plurality of configurable egress pipelines, wherein the output buffer comprises a temporary storage for packets processed by an ingress pipeline prior to processing by an egress pipeline. 19. The forwarding element of claim 17 , wherein at least one of the coefficients is a value between 0 and 1. 20. The forwarding element of claim 19 , wherein the sum of the coefficients is a value less than 1. 21. The forwarding element of claim 17 , wherein the traffic management circuit is to re-calculate the amount of buffer space available for at least one packet class during clock cycle of the forwarding element.

Assignees

Inventors

Classifications

  • using dynamic buffer space allocation · CPC title

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

  • in combination with information about buffer occupancy at either end or at transit nodes · CPC title

  • Traffic characterised by specific attributes, e.g. priority or QoS · CPC title

  • for broadcast or conference {, e.g. multicast} · 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 US10735331B1 cover?
Some embodiments provide a method for a hardware forwarding element. The method receives a packet to add to a buffer. The packet is assigned a packet class. The method determines an amount of buffer space available for the assigned packet class. Different packet classes have different amounts of buffer space available in the buffer. When the available buffer space for the assigned packet class …
Who is the assignee on this patent?
Barefoot Networks Inc
What technology area does this patent fall under?
Primary CPC classification H04L49/9005. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Aug 04 2020 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).