Efficient use of buffer space in a network switch

US2017337010A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2017337010-A1
Application numberUS-201615161316-A
CountryUS
Kind codeA1
Filing dateMay 23, 2016
Priority dateMay 23, 2016
Publication dateNov 23, 2017
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.

Communication apparatus includes multiple ports configured to serve as ingress ports and egress ports for connection to a packet data network. A memory is coupled to the ports and configured to contain both respective input buffers allocated to the ingress ports and a shared buffer holding data packets for transmission in multiple queues via the egress ports. Control logic is configured to monitor an overall occupancy level of the memory, and when a data packet is received through an ingress port having an input buffer that is fully occupied while the overall occupancy level of the memory is below a specified maximum, to allocate additional space in the memory to the input buffer and to accept the received data packet into the additional space.

First claim

Opening claim text (preview).

1 . Communication apparatus, comprising: multiple ports configured to serve as ingress ports and egress ports for connection to a packet data network; a memory, coupled to the ports and configured to contain both respective input buffers allocated to the ingress ports and a shared buffer holding data packets for transmission in multiple queues via the egress ports; and control logic, which is configured to monitor an overall occupancy level of the memory, and when a data packet is received through an ingress port having an input buffer that is fully occupied while the overall occupancy level of the memory is below a specified maximum, to allocate additional space in the memory to the input buffer and to accept the received data packet into the additional space. 2 . The apparatus according to claim 1 , wherein the control logic is configured, when the overall occupancy level is above the specified maximum, to discard the received data packet. 3 . The apparatus according to claim 1 , wherein the control logic is configured to apply a predefined quota to the additional space that can be allocated to each input buffer, and to discard the received data packet when the quota has been filled. 4 . The apparatus according to claim 3 , wherein the control logic is configured, upon transmission of the data packet through a designated egress port or discard of the packet, to release the input buffer to receive further data packets. 5 . The apparatus according to claim 1 , wherein the control logic is configured to classify and queue the data packets received through the ingress ports into the multiple queues in the memory for transmission through the egress ports. 6 . The apparatus according to claim 5 , wherein the control logic is configured, responsively to respective classifications of the data packets, to transfer some of the data packets to the shared buffer while holding others of the data packets in the input buffers until the data packets are transmitted through the egress ports. 7 . The apparatus according to claim 6 , wherein the control logic is configured, upon transfer of the data packet from the input buffer to the shared buffer, to release the input buffer to receive further data packets only after verifying that a memory occupancy criterion is satisfied. 8 . The apparatus according to claim 1 , wherein the memory is configured so that the control logic can allocate any portion of the memory to the input buffers of the ingress ports. 9 . The apparatus according to claim 1 , wherein the control logic is configured to monitor the overall occupancy level of the memory by counting a first data volume of the data packets received through the ingress ports and a second data volume of the data packets transmitted through the egress ports. 10 . The apparatus according to claim 9 , wherein the control logic is configured to monitor respective fill levels of the input buffers by incrementing an input buffer count when a given data packet is written from the ingress port to a location in the memory, and decrementing the input buffer count when the given data packet is transferred to the egress ports or to the shared buffer and the additional space allocated in the memory to the input buffer is no longer occupied, and sufficient space is available in the memory to reduce the input buffer count. 11 . A method for communication, comprising: receiving data packets from a packet data network through an ingress port of a network element having multiple ports configured to serve as ingress ports and egress ports; transferring the data packets from the ingress port to memory in the network element, which is configured to contain both respective input buffers allocated to the ingress ports and a shared buffer holding data packets for transmission in multiple queues via the egress ports; monitoring an overall occupancy level of the memory; and when a data packet is received through an ingress port having an input buffer that is fully occupied while the overall occupancy level of the memory is below a specified maximum, allocating additional space in the memory to the input buffer and accepting the received data packet into the additional space. 12 . The method according to claim 11 , and comprising, when the overall occupancy level is above the specified maximum, discarding the received data packet. 13 . The method according to claim 11 , wherein allocating the additional space comprises applying a predefined quota to the additional space that can be allocated to each input buffer, and discarding the received data packet when the quota has been filled. 14 . The method according to claim 13 , and comprising, upon transmission of the data packet through a designated egress port or discard of the packet, releasing the input buffer to receive further data packets. 15 . The method according to claim 11 , and comprising classifying and queuing the data packets received through the ingress ports into the multiple queues in the memory for transmission through the egress ports. 16 . The method according to claim 15 , wherein transferring the data packets comprises transferring some of the data packets, responsively to respective classifications of the data packets, to the shared buffer while holding others of the data packets in the input buffers until the data packets are transmitted through the egress ports. 17 . The method according to claim 16 , and comprising, upon transfer of the data packet from the input buffer to the shared buffer, releasing the input buffer to receive further data packets only after verifying that a memory occupancy criterion is satisfied. 18 . The method according to claim 11 , wherein the memory is configured so that any portion of the memory can be allocated to the input buffers of the ingress ports. 19 . The method according to claim 11 , wherein monitoring the overall occupancy level of the memory comprises counting a first data volume of the data packets received through the ingress ports and a second data volume of the data packets transmitted through the egress ports. 20 . The method according to claim 19 , and comprising monitoring respective fill levels of the input buffers by incrementing an input buffer count when a given data packet is written from the ingress port to a location in the memory, and decrementing the input buffer count when the given data packet is transferred to the egress ports or to the shared buffer and the additional space allocated in the memory to the input buffer is no longer occupied, and sufficient space is available in the memory to reduce the input buffer count.

Assignees

Inventors

Classifications

  • Improving I/O performance · CPC title

  • G06F3/0656Primary

    Data buffering arrangements · CPC title

  • Common buffer combined with individual queues · CPC title

  • Buffering arrangements · CPC title

  • using a shared central buffer; using a shared memory · 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 US2017337010A1 cover?
Communication apparatus includes multiple ports configured to serve as ingress ports and egress ports for connection to a packet data network. A memory is coupled to the ports and configured to contain both respective input buffers allocated to the ingress ports and a shared buffer holding data packets for transmission in multiple queues via the egress ports. Control logic is configured to moni…
Who is the assignee on this patent?
Mellanox Tech Tlv Ltd
What technology area does this patent fall under?
Primary CPC classification G06F3/0656. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu Nov 23 2017 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 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).