Accelerated network packet processing

US9912774B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9912774-B2
Application numberUS-201514977810-A
CountryUS
Kind codeB2
Filing dateDec 22, 2015
Priority dateDec 22, 2015
Publication dateMar 6, 2018
Grant dateMar 6, 2018

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.

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.

First claim

Opening claim text (preview).

What is claimed is: 1. A control device comprising: a memory; and a processor configured to: match an action reference from a table to a portion of a data in a network data packet; and process an action corresponding to the action reference in cooperation with the memory and accelerate a packet-processing pipeline for the network data packet by processing the action to one or more of: 1) offload processing of software-based resources to hardware-based resources, 2) reorganize processing of the software-based resources, and 3) reorganize how the software-based resources access the hardware-based resources; wherein the processor is further configured to: decapsulate an outer tunnel encapsulated header of the network data packet; remove the outer tunnel encapsulated header from the network data packet; and add metadata into a header for the network data packet that indicates the outer tunnel encapsulated header was removed from the network data packet. 2. The control device of claim 1 , wherein when the processor processes the action, the processing circuitry is further configured to perform a Ternary Content-Addressable Memory lookup on the portion of the data and insert results from the lookup into the network data packet as a pre-classification of the network data packet. 3. The control device of claim 1 , wherein when the processor processes the action, the processor is further configured to: copy a packet payload from the network data packet; and send the copied packet payload to an independent location, wherein the independent location is independent of locations, each location processes the packet-processing pipeline. 4. The control device of claim 1 , wherein when the processor processes the action, the processor is further configured to: copy data packet forwarding rules from a virtual switch to a second virtual switch. 5. The control device of claim 1 , wherein when the processor is a physical function integrated into the control device. 6. The control device of claim 1 , wherein the processor is a virtualized function programmed into the control device. 7. The control device of claim 1 further includes: a data plane interface configured to forward the network data packet to one of: an Operating System (OS) kernel stack, a virtualized switch, and a driver. 8. The control device of claim 1 , wherein the control device is a network interface controller. 9. The control device of claim 8 , wherein the control device is interfaced and integrated into a multi-core hardware server. 10. A non-transitory machine-readable medium including instructions that, when executed on a machine cause the machine to perform operations including: matching, within the machine, a portion of a network data packet to an action in a match-action table; and accelerating processing of the network data packet through the machine by executing the action as part of a packet-processing pipeline for the network data packet through processing the action by one or more of: 1) offloading processing of software-based resources to hardware-based resources, 2) reorganizing processing of the software-based resources, and 3) reorganizing how the software-based resources access the hardware-based resources; wherein accelerating further includes: assigning the network data packet to a queue associated with a specific processing core of the machine filtering the network data packet responsive to filtering rule; setting a resource identifier on the network data packet that identifies a resource for processing against the network data packet when processing the network data packet through the packet-processing pipeline; zero-copying rules for processing the network data packet into an aliased virtualized function; processing a frame for the network data packet through a user-space pipeline of an Operating System (OS) and when finished pushing the frame into the aliased virtualized function; and passing the network data packet through the user-space pipeline of the OS. 11. The non-transitory machine-readable medium of claim 10 , wherein the instructions to accelerate further include instructions to insert metadata into the network data. packet indicating a portion of the packet-processing pipeline was processed when the action was processed. 12. The non-transitory machine-readable medium of claim 10 , wherein instructions to accelerate further include instructions to: copy a packet frame for the network data packet; and send the copied packet frame to a location, where the location is independent of other locations associated with the packet-processing pipeline. 13. A system comprising: a means for matching a portion of a network packet to an action; a means for processing the action to accelerate a packet-processing pipeline associated with the network packet based on processing the action by processing the action to one or more of: offload processing of software-based resources to hardware-based resources, 2) reorganize processing of the software-based resources, and 3) reorganize how the software-based resources access the hardware-based resources; wherein the means for processing the action to accelerate the packet-processing pipeline further includes processing to: assign the network data packet to a queue associated with a specific processing core of the machine filter the network data packet responsive to filtering rule; set a resource identifier on the network data packet that identifies a resource for processing against the network data packet when processing the network data packet through the packet-processing pipeline; zero-copy rules for processing the network data packet into an aliased virtualized function; process a frame for the network data packet through a user-space pipeline of an Operating System(OS) and when finished pushing the frame into the aliased virtualized function; and pass the network data packet through the user-space pipeline of the OS. 14. The system of claim 13 , wherein the network packet is sent from a first Virtual Machine (VM) to a second VM, and each of the VMs executing on a same multi-core server, wherein the same multi-core server executes the means for matching and the means for processing. 15. The system of claim 13 , the system further including a means for configuring the means for processing to custom-define the action. 16. The system of claim 13 , wherein the means for processing is one or more of: a virtualized network switch, a hardware switch, a kernel process, a device driver, and virtualized interface. 17. A switch comprising: ports for receiving network packets; a control interface to communicate with a control device; and a data plane interface to communicate with one or more data plane processors, wherein the switch is configured to evaluate, over the control interface, match-action rules for which network packets are designed to accelerated through a packet-processing pipeline for the network packets by custom-action processing performed by the switch to one or more of: 1) offloading processing of software-based resources to hardware-based resources, 2) reorganizing processing of the software-based resources, and 3) reorganizing how the software-based resources access the hardware-based resources; wherein the switch is further configured to: assign the network data packet to a queue associated with a specific processing core of the machine filter the network data packet responsive to filtering rule; set a resource identifier on the network data packet that identifies a resource for processing against the

Assignees

Inventors

Classifications

  • in the data link layer [OSI layer 2], e.g. HDLC · CPC title

  • H04L69/22Primary

    Parsing or analysis of headers · CPC title

  • H04L49/70Primary

    Virtual switches · CPC title

  • Electricity · mapped topic

  • H04L67/561Primary

    Adding application-functional data or data for application control, e.g. adding metadata · 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 US9912774B2 cover?
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.
Who is the assignee on this patent?
Intel Corp
What technology area does this patent fall under?
Primary CPC classification H04L69/22. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Mar 06 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).