Packet switch with reduced latency
US-9641465-B1 · May 2, 2017 · US
US10218642B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10218642-B2 |
| Application number | US-201715469643-A |
| Country | US |
| Kind code | B2 |
| Filing date | Mar 27, 2017 |
| Priority date | Mar 27, 2017 |
| Publication date | Feb 26, 2019 |
| Grant date | Feb 26, 2019 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A network switch includes circuitry and multiple ports, including multiple input ports and at least one output port, configured to connect to a communication network. The circuitry includes multiple distinct-flow counters, which are each associated with a respective input port and with the output port, and which are configured to estimate respective distinct-flow counts of distinct data flows received via the respective input ports and destined to the output port. The circuitry is configured to store packets that are destined to the output port and were received via the multiple input ports in multiple queues, to determine a transmission schedule for the packets stored in the queues, based on the estimated distinct-flow counts, and to transmit the packets via the output port in accordance with the determined transmission schedule.
Opening claim text (preview).
The invention claimed is: 1. A network switch, comprising: multiple ports, including multiple input ports and at least one output port, configured to connect to a communication network; and circuitry comprising multiple hardware-implemented distinct-flow counters, wherein each distinct-flow counter is associated with a respective input port and with the output port, and is configured to estimate, based on packets received via the respective input port, a respective distinct-flow count, comprising a number of different data flows received via the respective input port and destined to the output port; wherein the circuitry is configured to: store packets that are destined to the output port and were received via the multiple input ports in multiple queues; read count values from the distinct-flow counters that are associated with the respective input ports and with the output port; determine for the packets stored in the queues a transmission schedule that distributes a bandwidth available at the output port among the queues, by allocating a portion of the bandwidth available at the output port, for a given queue that queues packets received via one or more input ports, based on the read count values that are associated respectively with the one or more input ports, such that each input port is allocated a bandwidth-portion that grows with the number of distinct flows received via that input port; and transmit the packets via the output port in accordance with the determined transmission schedule. 2. The network switch according to claim 1 , wherein the circuitry is configured to read from a distinct-flow counter multiple distinct-flow counts that were estimated over different respective time periods, to calculate a filtered count from the multiple distinct-flow counts, and to determine the transmission schedule based on the filtered count. 3. The network switch according to claim 1 , wherein each distinct-flow counter comprises a count state and is configured to receive a count definition specifying one or more packet-header fields, and to update the count state upon accepting a packet, based on the accepted packet and the respective count definition. 4. The network switch according to claim 3 , wherein the count state comprises multiple bins, wherein the distinct-flow counter is configured to update values of the bins on a packet-by-packet basis, and to estimate the number of different data flows by averaging over the values of the multiple bins. 5. The network switch according to claim 3 , wherein the distinct-flow counter is configured to apply a hash function to one or more fields in a header of the packet in accordance with the count definition, and to update the count state based on an outcome of the hash function. 6. The network switch according to claim 5 , wherein the distinct-flow counter is configured to calculate a combined value that combines a value that updates cyclically, with the one or more fields of the packet header, and to apply the hash function to the combined value. 7. The network switch according to claim 1 , wherein the circuitry is configured to define a minimal weight value, and to determine the transmission schedule based on a weight value selected as larger between the weights calculated from respective distinct-flow counts and the defined minimal weight value. 8. The network switch according to claim 1 , wherein the packets received via the input ports are assigned multiple respective Service Level (SL) values, wherein the circuitry is configured to store packets that are assigned different SLs in different respective SL-specific queues, and to determine the transmission schedule separately for groups of SL-specific queues sharing a same SL. 9. The network switch according to claim 1 , wherein the circuitry is configured to calculate arbitration weights based on respective distinct-flow counts, and to distribute a bandwidth of the output port among the multiple queues in accordance with Enhanced Transmission Selection (ETS) specifications, so that the bandwidth is allocated based on the arbitration weights. 10. A method, comprising: in a network switch that comprises multiple ports for connecting to a communication network, including multiple input ports and at least one output port, and that further comprises multiple hardware-implemented distinct-flow counters, wherein each distinct-flow counter is associated with a respective input port and with the output port, and estimates, based on packets received via the respective input port, a respective distinct-flow count, comprising a number of different data flows received via the respective input port and destined to the output port, storing packets that are destined to the output port and were received via the multiple input ports in multiple queues; reading count values from the distinct-flow counters that are associated with the respective input ports and with the output port; determining for the packets stored in the queues a transmission schedule that distributes a bandwidth available at the output port among the queues, by allocating a portion of the bandwidth available at the output port, for a given queue that queues packets received via one or more input ports, based on the read count values that are associated respectively with the one or more input ports, such that each input port is allocated a bandwidth-portion that grows with the number of distinct flows received via that input port; and transmitting the packets via the output port in accordance with the determined transmission schedule. 11. The method to claim 10 , wherein determining the transmission schedule comprises reading from a distinct-flow counter multiple distinct-flow counts that were estimated over different respective time periods, calculating a filtered count from the multiple distinct-flow counts, and determining the transmission schedule based on the filtered count. 12. The method according to claim 10 , wherein each distinct-flow counter comprises a count state, and comprising, receiving a count definition specifying one or more packet-header fields, and updating the count state upon accepting a packet, based on the accepted packet and the respective count definition. 13. The method according to claim 12 , wherein the count state comprises multiple bins, wherein updating the count state comprises updating values of the bins on a packet-by-packet basis, and wherein determining the transmission schedule comprises estimating the number of different data flows by averaging over the values of the multiple bins. 14. The method according to claim 12 , wherein updating the count state comprises applying a hash function to one or more fields in a header of the packet in accordance with the count definition, and updating the count state based on an outcome of the hash function. 15. The method according to claim 14 , and comprising calculating a combined value that combines a value that updates cyclically, with the one or more fields of the packet header, and applying the hash function to the combined value. 16. The method according to claim 10 , and comprising defining a minimal weight value, and wherein determining the transmission schedule comprises determining the transmission schedule based on a weight value selected as larger between the weights calculated from respective distinct-flow counts and the defined minimal weight value. 17. The method according to claim 10 , wherein the packets received via the input ports are assigned multiple respective Service Level (SL) values, wherein storing the packets comprises storing packet
Re-configuration of fast packet switches · CPC title
Input queuing · CPC title
Packet splitting · CPC title
Centralised controller, i.e. arbitration or scheduling · CPC title
Parallel switch fabric planes · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.