IP Library Granted Patent US 12,206,599
Granted Patent B2
US 12,206,599 · App. 18/435,517 · Granted Jan 21, 2025

Network forwarding element with key-value processing in the data plane

Inventors: Xiaozhou Li (San Jose, CA); Jeongkeun Lee (Mountain View, CA); Changhoon Kim (Palo Alto, CA); John Nathan Foster (Ithaca, NY)
Assignee: Barefoot Networks, Inc.
H04L49/3009G06F3/061G06F3/0649G06F3/067H04L45/54H04L45/742H04L45/745
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,206,599
App. No.
18/435,517
Filed
Feb 7, 2024
Granted
Jan 21, 2025
Kind
B2
Art Unit
2467
USPC
370/392
Abstract

Some embodiments of the invention provide a forwarding element (e.g., a switch, a router, etc.) that has one or more data plane, message-processing pipelines with key-value processing circuits. The forwarding element's data plane key-value circuits allow the forwarding element to perform key-value services that would otherwise have to be performed by data compute nodes connected by the network fabric that includes the forwarding element. In some embodiments, the key-value (KV) services of the forwarding element and other similar forwarding elements supplement the key-value services of a distributed set of key-value servers by caching a subset of the most commonly used key-value pairs in the forwarding elements that connect the set of key-value servers with their client applications. In some embodiments, the key-value circuits of the forwarding element perform the key-value service operations at message-processing line rates at which the forwarding element forwards messages to the data compute nodes and/or to other network forwarding elements in the network fabric.

Claims (51)

1. Switch circuitry for use in association with network forwarding operations, the switch circuitry comprising:

processing circuitry to modify, based upon received packet data, at least one data value to be identified, at least in part, based upon at least one key-value-pair;

wherein:

the at least one key-value-pair is to be maintained by the switch circuitry;

the received packet data is to be comprised in multiple received packets; and

the multiple received packets comprise respective identifications of the at least one key-value-pair.

2. The switch circuitry of claim 1 , wherein:

the multiple received packets are mutually different from each other, at least in part.

3. The switch circuitry of claim 1 , wherein:

the switch circuitry is comprised in a network switch.

4. The switch circuitry of claim 1 , wherein:

the switch circuitry is comprised in an application specific integrated circuit.

5. The switch circuitry of claim 1 , wherein:

the processing circuitry comprises packet data processing pipelines; and

the packet data processing pipelines comprise packet data processing stages to process header values associated with the received packet data.

6. The switch circuitry of claim 5 , wherein:

the packet data processing pipelines are for use in association with the network forwarding operations.

7. A method implemented using switch circuitry, the switch circuitry to be used in association with network forwarding operations, the method comprising:

modifying, by processing circuitry of the switch circuitry, based upon received packet data, at least one data value to be identified, at least in part, based upon at least one key-value-pair;

wherein:

the at least one key-value-pair is to be maintained by the switch circuitry;

the received packet data is to be comprised in multiple received packets; and

the multiple received packets comprise respective identifications of the at least one key-value-pair.

8. The method of claim 7 , wherein:

the multiple received packets are mutually different from each other, at least in part.

9. The method of claim 7 , wherein:

the switch circuitry is comprised in a network switch.

10. The method of claim 7 , wherein:

the switch circuitry is comprised in an application specific integrated circuit.

11. The method of claim 7 , wherein:

the processing circuitry comprises packet data processing pipelines; and

the packet data processing pipelines comprise packet data processing stages to process header values associated with the received packet data.

12. The method of claim 11 , wherein:

the packet data processing pipelines are for use in association with the network forwarding operations.

13. At least one non-transitory machine-readable storage medium storing instructions to be executed by switch circuitry, the instructions, when executed by the switch circuitry, resulting in the switch circuitry being configured for performance of operations comprising:

modifying, by processing circuitry of the switch circuitry, based upon received packet data, at least one data value to be identified, at least in part, based upon at least one key-value-pair;

wherein:

the at least one key-value-pair is to be maintained by the switch circuitry;

the received packet data is to be comprised in multiple received packets; and

the multiple received packets comprise respective identifications of the at least one key-value-pair.

14. The at least one non-transitory machine-readable storage medium of claim 13 , wherein:

the multiple received packets are mutually different from each other, at least in part.

15. The at least one non-transitory machine-readable storage medium of claim 13 , wherein:

the switch circuitry is comprised in a network switch.

16. The at least one non-transitory machine-readable storage medium of claim 13 , wherein:

the switch circuitry is comprised in an application specific integrated circuit.

17. The at least one non-transitory machine-readable storage medium of claim 13 , wherein:

the processing circuitry comprises packet data processing pipelines; and

the packet data processing pipelines comprise packet data processing stages to process header values associated with the received packet data.

18. The at least one non-transitory machine-readable storage medium of claim 17 , wherein:

the packet data processing pipelines are for use in association with network forwarding operations.

Continuity (7)
Continuation 17877512 · Jul 29, 2022
Continuation 17092136 · Nov 6, 2020
Continuation 16372370 · Apr 1, 2019
Continuation 15730700 · Oct 11, 2017
Provisional Application 62426873 · Nov 28, 2016
Provisional Application 62407465 · Oct 12, 2016
Related Publication 20240267343A1 · Aug 8, 2024
References Cited (27)
US 7184437B1 · Cole · 2007 [cited by examiner]
US 9323457B2 · Blott et al. · 2016 [cited by applicant]
US 9563426B1 · Bent et al. · 2017 [cited by applicant]
US 10185730B2 · Bestler et al. · 2019 [cited by applicant]
US 10257122B1 · Li et al. · 2019 [cited by applicant]
US 10705974B2 · Qiu et al. · 2020 [cited by applicant]
US 20070050472A1 · Cha · 2007 [cited by applicant]
US 20120136889A1 · Jagannathan et al. · 2012 [cited by applicant]
US 20130163426A1 · Beliveau · 2013 [cited by examiner]
US 20140348161A1 · Koponen · 2014 [cited by examiner]
Final Office Action from U.S. Appl. No. 17/877,512 notified Sep. 7, 2023, 7 pgs. [cited by applicant]
Notice of Allowance for U.S. Appl. No. 15/730,699, dated Dec. 13, 2018. [cited by applicant]
Notice of Allowance for U.S. Appl. No. 15/730,700, dated Mar. 13, 2019. [cited by applicant]
Notice of Allowance for U.S. Appl. No. 16/372,370, dated Jul. 30, 2020. [cited by applicant]
Notice of Allowance for U.S. Appl. No. 17/092,136, dated Jun. 13, 2022. [cited by applicant]
Notice of Allowance from U.S. Appl. No. 17/877,512 notified Nov. 16, 2023, 5 pgs. [cited by applicant]
Office Action for U.S. Appl. No. 15/730,700, dated Nov. 21, 2018. [cited by applicant]
Office Action for U.S. Appl. No. 16/372,370, dated Apr. 9, 2020. [cited by applicant]
Office Action for U.S. Appl. No. 17/092,136, dated Mar. 15, 2022. [cited by applicant]
Office Action for U.S. Appl. No. 17/877,512, dated Apr. 11, 2023. [cited by applicant]
Kalia, Anuj, et al., “Using RDMA Efficiently for Key-Value Services”, SIGCOMM'14, Aug. 17-22, 2014, 15 pages, ACM, Chicago, IL, USA. [cited by applicant]
Li, Xiaozhou, et al., “Be Fast, Cheap and in Control with SwitchKV”, 13th USENIX Symposium on Networked Systems Design and Implementation (NSDI'16), Mar. 16-18, 2016, 15 pages, Santa Clara, CA, USA. [cited by applicant]
Lim, Hyeontaek, et al., “Mica: A Holistic Approach to Fast In-Memory Key-Value Storage”, NSDI'14, 11th USENIX Symposium on Networked Systems Design and Implementation, Apr. 2-4, 2014, 17 pages, USENIX Association, Seatt… [cited by applicant]
Lim, Hyeontaek, et al., “Silt: A Memory-Efficient, High-Performance Key-Value Store”, SOSP'11, 23rd ACM Symposium on Operating Systems Principles, Oct. 23-26, 2011, 13 pages, ACM, Cascais, Portugal. [cited by applicant]
Lloyd, W., et al., “Don't settle for Eventual: Scalable Causal Consistency for Wide-Area Storage with Cops”, SOSP'11, 23rd ACM Symposium on Operating Systems Principles, Oct. 23-26, 2011, 16 pages, ACM, Cascais, Portuga… [cited by applicant]
Phanishayee, Amar, et al., “Flex-KV: Enabling High-performance and Flexible KV Systems”, MBDS'12, Proceedings of the 2012 Workshop on Management of Big Data Systems, Sep. 21, 2012, 6 pages, ACM, San Jose, CA, USA. [cited by applicant]
Vasudevan, Vijay, et al., “Using Vector Interfaces to Deliver Millions of IOPS from a Networked Key-value Storage Server”, SOCC'12, 3rd ACM Symposium on Cloud Computing, Oct. 14-17, 2012, 13 pages, ACM, San Jose, CA. [cited by applicant]