IP Library Granted Patent US 10,432,745
Granted Patent B2
US 10,432,745 · App. 15/878,966 · Granted Oct 1, 2019

Accelerated network packet processing

Inventors: Daniel Daly (Ann Arbor, MI); John R. Fastabend (Hillsboro, OR); Matthew Vick (Hillsboro, OR); Brian J. Skerry (Gilbert, AZ); Marco Varlese (Raheny, IE); Jing Mark Chen (Shanghai, CN); Danny Y. Zhou (Shanghai, CN)
Assignee: Intel Corporation
H04L67/2804H04L49/70H04L69/22H04L69/324
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 10,432,745
App. No.
15/878,966
Granted
Oct 1, 2019
Kind
B2
Abstract

Devices and techniques for accelerated packet processing are described herein. The device can match an action to a portion of a network data packet and accelerate the packet-processing pipeline for the network data packet through the machine by processing the action.

Claims (47)

1. A network interface controller, comprising:

a switch interface;

a data plane interface to communicate with one or more data plane processors, wherein:

the one or more data plane processors are not included in the network interface controller;

the one or more data plane processors are, during operation, to implement a software-based packet processor;

the software-based packet processor includes one or more of: a virtual switch, a virtual machine, and a virtual network function; and

the software-based packet processor is to execute a first action of a packet-processing pipeline for a network packet; and

processing circuitry to execute a second action of the packet-processing pipeline for the packet, wherein the second action is different from the first action, and the second action includes one or more of: decapsulation, pre-classification, and Ternary Content-Addressable Memory (TCAM) lookup;

wherein:

the software-based packet processor implements a virtual switch;

the virtual switch is to program a set of rules into a TCAM;

the second action comprises a TCAM lookup on the packet;

the virtual switch is to detect metadata in the packet added to the packet by the processing circuitry upon execution of the second action; and

the virtual switch is to not execute the second action in response to detection of the metadata.

2. The network interface controller of claim 1 , wherein the second action comprises decapsulation of an outer tunnel encapsulated header for the packet.

3. The network interface controller of claim 1 , wherein the second action comprises removal of an outer tunnel encapsulated header from the packet.

4. The network interface controller of claim 1 , wherein the second action comprises the TCAM lookup on the packet and insertion of results from the TCAM lookup into the packet as a pre-classification of the packet.

5. The network interface controller of claim 1 , wherein the processing circuitry is further to:

match an action reference from a table in a memory to a portion of data in the packet, wherein the action reference refers to the second action; and

in response to the match, execute the second action.

6. The network interface controller of claim 1 , wherein the one or more data plane processors comprises a multi-core processor.

7. The network interface controller of claim 6 , wherein the multi-core processor is a server.

8. The network interface controller of claim 1 , wherein the processing circuitry is to be programmed by an Application Programming Interface (API) provided in formats supported by one or more of: Data Plane Development Kit, OpenvSwitch, OpenDaylight, and OpenStack.

9. The network interface controller of claim 1 , wherein the processing circuitry comprises a physical function integrated into the network interface controller.

10. The network interface controller of claim 1 , wherein the processing circuitry comprises a virtualized function programmed into the network interface controller.

11. The network interface controller of claim 1 , wherein the second action is offloaded from the one or more data plane processors to the network interface controller.

12. The network interface controller of claim 1 , wherein the one or more data plane processors do not execute the second action.

13. The network interface controller of claim 1 , wherein the first action is executed within an operating system of the one or more data plane processors.

14. One or more non-transitory computer-readable media having instructions that, when executed by processing circuitry of a network interface controller, cause the network interface controller to:

receive a packet, wherein the packet is associated with a packet-processing pipeline;

execute a first action of the packet-processing pipeline by the network interface controller, wherein the first action includes one or more of: decapsulation, pre-classification, and Ternary Content-Addressable Memory (TCAM) lookup; and

cause one or more other actions of the packet-processing pipeline to be executed by one or more data plane processors, wherein:

the one or more other actions is different from the first action; and

the network interface controller communicates with the one or more data plane processors through a data plane interface;

wherein the first action comprises removal of an outer tunnel encapsulated header from the packet, and wherein the first action comprises a TCAM lookup on the packet and insertion of results from the lookup into the packet as a pre-classification of the packet.

15. The one or more non-transitory computer-readable media of claim 14 , wherein the network interface controller is further caused by the instructions to:

prior to executing the first action, determine the first action based on a portion of data in the packet being matched in a match-action table stored in the one or more non-transitory computer-readable media; and

the first action is executed in response to the portion of data in the packet being matched to the first action in the match-action table.

16. The one or more non-transitory computer-readable media of claim 14 , wherein the one or more data plane processors are not part of the network interface controller.

17. The one or more non-transitory computer-readable media of claim 14 , wherein:

the one or more other actions of the packet-processing pipeline is executed by a software-based packet processor implemented by the one or more data plane processors; and

the software-based packet processor includes one or more of: a virtual switch, a virtual machine, and a virtual network function.

18. The one or more non-transitory computer-readable media of claim 14 , wherein:

the network interface controller is further caused to:

add metadata to the packet resulting from the TCAM lookup; and

cause the one or more data plane processors to not execute the first action.

19. The one or more non-transitory computer-readable media of claim 14 , wherein the first action comprises decapsulation of an outer tunnel encapsulated header for the packet.

Continuity (2)
Continuation 14977810 · Dec 22, 2015
Related Publication 20180234516A1 · Aug 16, 2018
Cited By (2)
US 12,255,828 US 12,726,447