IP Library Granted Patent US 11,929,944
Granted Patent B2
US 11,929,944 · App. 17/877,512 · Granted Mar 12, 2024

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 11,929,944
App. No.
17/877,512
Granted
Mar 12, 2024
Kind
B2
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 (30)

1. Forwarding element circuitry for use in association with a network switch, the forwarding element circuitry comprising:

processing circuitry to process received data messages having key-values for use in distributed key-value services based upon the key-values;

wherein:

the processing circuitry is to modify data message header field data based upon received data message key value data.

2. The forwarding element circuitry of claim 1 , wherein the forwarding element circuitry is to store key-value pairs associated with the key-values.

3. The forwarding element circuitry of claim 1 , wherein at least one of the data messages includes at least one header comprising at least one key-value instruction and at least one key.

4. The forwarding element circuitry of claim 3 , wherein the at least one header comprises a layer 4 port value that specifies that the at least one of the data messages includes the at least one key-value instruction.

5. The forwarding element circuitry of claim 4 , wherein the at least one key-value instruction comprises a read instruction, a write instruction, a delete instruction, and/or an insert instruction.

6. The forwarding element circuitry of claim 4 , wherein:

the processing circuitry comprises action engine circuitry to modify the at least one header;

the at least one key-value instruction comprises read instruction; and

the action engine circuitry is to receive at least one key value and write the at least one key value to a data message header field.

7. The forwarding element circuitry of claim 1 , wherein:

the processing circuitry comprises a set of one or more message processing pipelines; and

each of the pipelines comprises a plurality of message processing stages for processing header values associated with the data messages to forward the data messages to network forwarding elements and/or to data message destinations.

8. A method implemented using forwarding element circuitry, the forwarding element circuitry being for use in association with a network switch, the method comprising:

processing, by processing circuitry of the forwarding element circuitry, received data messages having key-values for use in distributed key-value services based upon the key-values;

wherein:

the processing circuitry is to modify data message header field data based upon received data message key value data.

9. The method of claim 8 , wherein the forwarding element circuitry is to store key-value pairs associated with the key-values.

10. The method of claim 8 , wherein at least one of the data messages includes at least one header comprising at least one key-value instruction and at least one key.

11. The method of claim 10 , wherein the at least one header comprises a layer 4 port value that specifies that the at least one of the data messages includes the at least one key-value instruction.

12. The method of claim 11 , wherein the at least one key-value instruction comprises a read instruction, a write instruction, a delete instruction, and/or an insert instruction.

13. The method of claim 12 , wherein:

the processing circuitry comprises action engine circuitry to modify the at least one header;

the at least one key-value instruction comprises read instruction; and

the action engine circuitry is to receive at least one key value and write the at least one key value to a data message header field.

14. The method of claim 8 , wherein:

the processing circuitry comprises a set of one or more message processing pipelines; and

each of the pipelines comprises a plurality of message processing stages for processing header values associated with the data messages to forward the data messages to network forwarding elements and/or to data message destinations.

Continuity (6)
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 20230027453A1 · Jan 26, 2023