IP Library Granted Patent US 10,243,883
Granted Patent B2
US 10,243,883 · App. 14/965,270 · Granted Mar 26, 2019

Edge datapath using user-kernel transports

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,243,883
App. No.
14/965,270
Granted
Mar 26, 2019
Kind
B2
Abstract

A novel design of a gateway that handles traffic in and out of a network by using a datapath daemon is provided. The datapath daemon is a run-to-completion process that performs various data-plane packet-processing operations at the edge of the network. In some embodiments, the datapath daemon dispatches packets to other processes or processing threads outside of the daemon. In some embodiments, the datapath daemon dispatches packets to a kernel network stack in order to support packet traffic monitoring.

Claims (24)

1. A method for implementing a gateway datapath for a logical network, wherein the logical network comprises a plurality of logical forwarding elements connected by logical ports, the method comprising:

receiving a packet at the gateway datapath, the gateway datapath executing in a user space of a computing device to process packets through sets of pipeline stages corresponding to the logical forwarding elements;

executing a set of the pipeline stages to process the received packet through a set of the logical forwarding elements and logical ports; and

replicating a copy of the packet to a kernel network stack by transporting the packet copy from the user space to the kernel space through a user-kernel transport upon processing the packet through a particular one of the pipeline stages identified by the gateway datapath as an observation point for the logical network, wherein the kernel network stack enables a process executing in the user space of the computing device to access the packet copy.

2. The method of claim 1 , wherein the set of pipeline stages is executed as a run-to-completion thread of the gateway datapath.

3. The method of claim 1 , wherein the sets of pipeline stages operate according to configuration data provided by a configuration database, wherein the configuration database further specifies the observation point.

4. The method of claim 1 , wherein the logical forwarding elements of the logical network comprise distributed logical routers, logical switches, and service routers.

5. The method of claim 1 , wherein the observation point identified by the gateway datapath is a logical port of a logical forwarding element that is identified by the particular pipeline stage.

6. The method of claim 1 , wherein the observation point identified by the gateway datapath is a logical forwarding element to which the particular pipeline stage corresponds.

7. The method of claim 1 , wherein the process executing in the user space that accesses the packet copy from the kernel network stack is for producing a report of packet traffic through the gateway datapath.

8. The method of claim 7 , wherein the process is a packet dump command provided by the operating system.

9. A non-transitory machine readable medium storing a program that when executed by at least one processing unit of a computing device implements a gateway datapath for a logical network, the program comprising sets of instructions for:

receiving a packet at the gateway datapath, the gateway datapath executing in a user space of the computing device to process packets through sets of pipeline stages corresponding to the logical forwarding elements;

executing a set of the pipeline stages to process the received packet through a set of the logical forwarding elements and logical ports; and

replicating a copy of the packet to a kernel network stack by transporting the packet copy from the user space to the kernel space through a user-kernel transport upon processing the packet through a particular one of the pipeline stages identified by the gateway datapath as an observation point for the logical network, wherein the kernel network stack enables a process executing in the user space of the computing device to access the packet copy.

10. The non-transitory machine readable medium of claim 9 , wherein the set of pipeline stages is executed as a run-to-completion thread of the gateway datapath.

11. The non-transitory machine readable medium of claim 9 , wherein the sets of pipeline stages operate according to configuration data provided by a configuration database, wherein the configuration database further specifies the observation point.

12. The non-transitory machine readable medium of claim 9 , wherein the logical forwarding elements of the logical network comprise distributed logical routers, logical switches, and service routers.

13. The non-transitory machine readable medium of claim 9 , wherein the observation point identified by the gateway datapath is a logical port of a logical forwarding element that is identified by the particular pipeline stage.

14. The non-transitory machine readable medium of claim 9 , wherein the observation point identified by the gateway datapath is a logical forwarding element to which the pipeline stage corresponds.

15. The non-transitory machine readable medium of claim 9 , wherein the process executing in the user space that accesses the packet copy from the kernel network stack is for producing a report of packet traffic through the gateway datapath.

16. The non-transitory machine readable medium of claim 15 , wherein the process is a packet dump command provided by the operating system.

17. The method of claim 1 , wherein the kernel network stack treats the packet copy as though received from a network interface controller of the computing device.

18. The method of claim 1 , wherein the kernel network stack enables the process executing in the user space to access the packet copy by storing the packet copy in a user space buffer consumed by the process.

Assignments (2)
MERGER Recorded Jan 27, 2025
From: NICIRA, INC.
To: VMWARE LLC
Reel/Frame 070187/0487 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 19, 2016
From: ZHANG, RONGHUA; KOPONEN, TEEMU; WANG, YONG; HU, MICHAEL; HONG, XINHUA
To: NICIRA, INC.
Reel/Frame 038468/0983 →