Flow templating in logical L3 routing

US9319375B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9319375-B2
Application numberUS-201313757619-A
CountryUS
Kind codeB2
Filing dateFeb 1, 2013
Priority dateAug 17, 2011
Publication dateApr 19, 2016
Grant dateApr 19, 2016

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.

For a network controller for managing hosts in a network, a method for configuring a host to handle flow entries and template flow entries is described. The method generates a template flow entry to be populated in order to create a flow entry for a particular managed forwarding element. The method sends the template flow entry to the particular forwarding element in a host. The method configures a flow entry generating flow entry generating module in a host to create the flow entry by populating the template flow entry. The method configures the particular managed forwarding element to (1) send the template flow entry to the flow entry generating flow entry generating module (2) forward packets using the flow entry created by the flow entry generating flow entry generating module.

First claim

Opening claim text (preview).

What is claimed is: 1. For a managed forwarding element that processes packets in a host machine according to a set of flow entries stored in a set of forwarding tables, a method comprising: receiving a packet from an end machine that operates on the host machine; when the packet matches a template flow entry with a set of data fields unpopulated, sending the template flow entry to a flow entry generating module that operates on the host machine; receiving a new flow entry with the set of data fields populated from the flow entry generating module; and storing the new flow entry received from the flow entry generating module in a forwarding table, wherein the new flow entry has a higher priority than the template flow entry such that subsequent packets are processed according to the new flow entry rather than the template flow entry without sending the template flow entry to the flow entry generating module. 2. The method of claim 1 , wherein the flow entry generating module and the managed forwarding element are separate software applications configured in the host. 3. The method of claim 1 , wherein the set of unpopulated data fields comprises a source network address field to use for network address translation (NAT) of the packet, wherein processing subsequent packets with the new flow entry comprises performing NAT on the subsequent packets to replace a source network address of the packets with a source network address populated in the new flow entry by the flow entry generating module. 4. The method of claim 1 , wherein the set of unpopulated data fields comprises a destination data link layer address to use for address resolution of the packet, wherein processing subsequent packets comprises performing address resolution on the subsequent packets to replace a destination data link layer address of the packets with the data link layer address populated in the new flow entry by the flow entry generating module. 5. The method of claim 1 , wherein the flow entry generating module maintains and uses a lookup list from which to populate the set of unpopulated data fields of the template flow entry. 6. The method of claim 5 , wherein (i) the host machine is a first host machine and the lookup list is a local lookup list, (ii) a second host machine maintains and uses a global lookup list of information that is collected from other host machines, and (iii) the flow entry generating module asks the second host machine for information that does not exist in the local lookup list. 7. The method of claim 1 , wherein the set of unpopulated data fields comprises a destination network address field to use for destination network address translation (DNAT) of the packet, wherein processing subsequent packets with the new flow entry comprises performing DNAT on the subsequent packets to replace a destination network address of the packets with the destination network address populated in the new flow entry by the flow entry generating module. 8. A non-transitory machine readable medium storing a program which when executed by at least one processing unit processes packets in a host machine according to a set of flow entries stored in a set of forwarding tables, the program comprising sets of instructions for: receiving a packet from an end machine that operates on the host machine; when the packet matches a template flow entry with a set of data fields unpopulated, sending the template flow entry to a flow entry generating module that operates on the host machine; receiving a new flow entry with the set of data fields populated from the flow entry generating module; and storing the new flow entry received from the flow entry generating module in a forwarding table, wherein the new flow entry has a higher priority than the template flow entry such that subsequent packets are processed according to the new flow entry rather than the template flow entry without sending the template flow entry to the flow entry generating module. 9. The non-transitory machine readable medium of claim 8 , wherein the set of unpopulated data fields comprises a source network address field to use for network address translation (NAT) of the packet, wherein the set of instructions for processing subsequent packets with the new flow entry comprises a set of instructions for performing NAT on the subsequent packets to replace a source network address of the packets with a source network address populated in the new flow entry by the flow entry generating module. 10. The non-transitory machine readable medium of claim 8 , wherein the set of unpopulated data fields comprises a destination data link layer address to use for address resolution of the packet, wherein the set of instructions for processing subsequent packets comprises a set of instructions for performing address resolution on the subsequent packets to replace a destination data link layer address of the packets with the data link layer address populated in the new flow entry by the flow entry generating module. 11. The non-transitory machine readable medium of claim 8 , wherein the flow entry generating module maintains and uses a lookup list from which to populate the set of unpopulated data fields of the template flow entry. 12. The non-transitory machine readable medium of claim 11 , wherein (i) the host machine is a first host machine and the lookup list is a local lookup list, (ii) a second host machine maintains and uses a global lookup list of information that is collected from other host machines, and (iii) the flow entry generating module asks the second host machine for information that does not exist in the local lookup list. 13. The non-transitory machine readable medium of claim 8 , wherein the set of unpopulated data fields comprises a destination network address field to use for destination network address translation (DNAT) of the packet, wherein the set of instructions for processing subsequent packets with the new flow entry comprises a set of instructions for performing DNAT on the subsequent packets to replace a destination network address of the packets with the destination network address populated in the new flow entry by the flow entry generating module. 14. A computer configured as a host machine for hosting a set of end machines that are sources and destinations of network traffic, the computer comprising: a set of processing units; and a machine readable medium storing: a flow entry generating module for execution by at least one processing unit in the set of processing units, the flow entry generating module configured to create a new flow entry based on a template flow entry by populating a set of data fields of the template flow entry; and a software forwarding element for execution by at least one processing unit in the set of processing units, the software forwarding element configured (i) to process packets from the end machines operating on the host machine, (ii) to send the template flow entry to the flow entry generating module when packets match the template flow entry with a set of data fields unpopulated, (iii) to receive the new flow entry from the flow entry generating module with the set of data fields populated, and (iv) to store the new flow entry received from the flow entry generating module in a forwarding table, wherein the new flow entry has a higher priority than the template flow entry such that subsequent packets are processed according to the new flow entry rather than the template flow entry without sending the template flow entry to the flow entry generating module. 15. The computer of claim 14 , wherein the set of unpopulated data

Assignees

Inventors

Classifications

  • Interdomain routing, e.g. hierarchical routing · CPC title

  • H04L45/74Primary

    Address processing for routing · CPC title

  • Organization of routing tables · CPC title

  • NAT traversal · CPC title

  • by balancing the load, e.g. traffic engineering · 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 US9319375B2 cover?
For a network controller for managing hosts in a network, a method for configuring a host to handle flow entries and template flow entries is described. The method generates a template flow entry to be populated in order to create a flow entry for a particular managed forwarding element. The method sends the template flow entry to the particular forwarding element in a host. The method configur…
Who is the assignee on this patent?
Nicira Inc
What technology area does this patent fall under?
Primary CPC classification H04L45/74. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Apr 19 2016 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 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).