Datapath with service stages

US9973445B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9973445-B2
Application numberUS-201514929427-A
CountryUS
Kind codeB2
Filing dateNov 2, 2015
Priority dateJan 30, 2015
Publication dateMay 15, 2018
Grant dateMay 15, 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.

A novel design of a gateway that handles traffic in and out of a network by using a datapath pipeline is provided. The datapath pipeline includes multiple stages for performing various data-plane packet-processing operations at the edge of the network. The processing stages include centralized routing stages and distributed routing stages. The processing stages can include service-providing stages such as NAT and firewall. The gateway caches the result previous packet operations and reapplies the result to subsequent packets that meet certain criteria. For packets that do not have applicable or valid result from previous packet processing operations, the gateway datapath daemon executes the pipelined packet processing stages and records a set of data from each stage of the pipeline and synthesizes those data into a cache entry for subsequent packets.

First claim

Opening claim text (preview).

What is claimed is: 1. For a gateway that executes a datapath module for processing packets sent between a first network and a second network, a method comprising: receiving a packet from the first network; executing a plurality of pipeline stages for processing the packet and determining a next destination of the packet, wherein the plurality of pipeline stages comprises a set of logical forwarding element stages for performing packet forwarding and a set of service stages for performing transport layer services and application layer services, wherein each pipeline stage is a function called by the datapath module; and outputting the processed packet to a second network based on the next destination of the packet. 2. The method of claim 1 , wherein the set of service stages comprises at least one of a firewall stage and a network address translation (NAT) stage. 3. The method of claim 1 , wherein the set of service stages perform transport layer services based on a layer 4 (L 4 ) header of the packet and perform application layer services based on a layer 7 (L 7 ) header of the packet. 4. The method of claim 1 , wherein the set of service stages comprises a stateful service that maintains a state for each L 4 connection. 5. The method of claim 1 , wherein the set of service stages comprises at least one of a cryptography stage and a hypertext transfer protocol security stage. 6. The method of claim 1 , wherein the first network is an overlay encapsulation network and the second network is a physical network. 7. The method of claim 1 , wherein the set of service stages, are part of a service router stage. 8. The method of claim 1 , wherein the plurality of pipeline stages is executed at a processor as a run-to-completion thread. 9. The method of claim 1 , wherein the set of logical forwarding element stages comprises at least one logical switch stage and at least one logical router stage. 10. The method of claim 1 , wherein the packet is a first packet and the set of service stages is a first set of service stages, the method further comprising: receiving a second packet from the first network; executing a plurality of pipeline stages for processing the second packet and determining a next destination of the second packet, wherein the plurality of pipeline stages comprises the set of logical forwarding element stages and a second set of service stages, wherein at least one service performed by the second set of service stages is not performed by the first set of service stages; and outputting the processed second packet to the second network based on the next destination of the second packet. 11. The method of claim 10 , wherein the first and second sets of service stages are different based on the first and second packets belonging to different L 4 data flows. 12. A computing device that implements a gateway for processing packets exchanged between a first network and a second network, the computing device comprising: a first network interface controller (NIC) for receiving a packet from the first network; a processor for executing sets of instructions for operating a plurality of pipeline stages for processing the packet and determining a next destination of the packet, wherein the plurality of pipeline stages comprises a set of logical switch forwarding element stages for performing packet forwarding and a set of service stages for performing transport layer services and application layer services, wherein each pipeline stage is a function; and a second NIC for outputting the processed packet to a second network based on the next destination of the packet. 13. The computing device of claim 12 , wherein the set of service stages comprises at least one of a firewall stage and a network address translation (NAT) stage. 14. The computing device of claim 12 , wherein the set of service stages perform transport layer services based on a layer 4 (L 4 ) header of the packet and perform application layer services based on a layer 7 (L 7 ) header of the packet. 15. The computing device of claim 12 , wherein the set of service stages comprises a stateful service that maintains a state for each L 4 connection. 16. The computing device of claim 12 , wherein the set of service stages comprises at least one of a cryptography stage and a hypertext transfer protocol security stage. 17. The computing device of claim 12 , wherein the first network is an overlay encapsulation network and the second network is a physical network. 18. The computing device of claim 12 , wherein the set of service stages are part of a service router stage. 19. The computing device of claim 12 , wherein the processor executes the plurality of pipeline stages as a run-to-completion thread. 20. The computing device of claim 12 further comprising a non-transitory machine readable medium storing a datapath configuration database for storing configuration data for the plurality of pipeline stages.

Assignees

Inventors

Classifications

  • Flow based routing · CPC title

  • using network fault recovery (ring fault isolation or reconfiguration in loop networks without recovery actions by a network management system H04L12/437) · CPC title

  • using route fault recovery · CPC title

  • Centralised routing · CPC title

  • wherein the managed service relates to simple transport services, i.e. providing only network infrastructure · 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 US9973445B2 cover?
A novel design of a gateway that handles traffic in and out of a network by using a datapath pipeline is provided. The datapath pipeline includes multiple stages for performing various data-plane packet-processing operations at the edge of the network. The processing stages include centralized routing stages and distributed routing stages. The processing stages can include service-providing sta…
Who is the assignee on this patent?
Nicira Inc
What technology area does this patent fall under?
Primary CPC classification H04L45/586. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue May 15 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 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).