IP Library Granted Patent US 11,294,703
Granted Patent B2
US 11,294,703 · App. 16/444,884 · Granted Apr 5, 2022

Providing services by using service insertion and service transport layers

Inventors: Pierluigi Rolando (Santa Clara, CA); Camille Lecuyer (Mountain View, CA); Saahil Gokhale (Santa Clara, CA); Rajeev Nair (Newark, CA); Kantesh Mundaragi (Pune, IN); Rahul Mishra (Mountain View, CA); Jayant Jain (Cupertino, CA); Raju Koganty (San Jose, CA)
Assignee: VMWARE, INC.
G06F9/45558G06F9/546H04L12/4633H04L41/0803H04L41/0816H04L41/5003H04L41/5054H04L45/26H04L45/308H04L45/38H04L45/586H04L45/66H04L45/74H04L45/745H04L47/125H04L47/17H04L47/19H04L47/2425H04L49/252H04L49/3009H04L61/2592H04L61/6022H04L67/10H04L67/101H04L67/1002H04L67/16H04L67/28H04L67/2814H04L67/32H04L69/321H04L69/324H04L69/325G06F2009/4557G06F2009/45595H04L41/0806H04L41/0893H04L2212/00
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 11,294,703
App. No.
16/444,884
Granted
Apr 5, 2022
Kind
B2
Abstract

Some embodiments provide novel methods for performing services for machines operating in one or more datacenters. For instance, for a group of related guest machines (e.g., a group of tenant machines), some embodiments define two different forwarding planes: (1) a guest forwarding plane and (2) a service forwarding plane. The guest forwarding plane connects to the machines in the group and performs L2 and/or L3 forwarding for these machines. The service forwarding plane (1) connects to the service nodes that perform services on data messages sent to and from these machines, and (2) forwards these data messages to the service nodes. In some embodiments, the guest machines do not connect directly with the service forwarding plane. For instance, in some embodiments, each forwarding plane connects to a machine or service node through a port that receives data messages from, or supplies data messages to, the machine or service node. In such embodiments, the service forwarding plane does not have a port that directly receives data messages from, or supplies data messages to, any guest machine. Instead, in some such embodiments, data associated with a guest machine is routed to a port proxy module executing on the same host computer, and this other module has a service plane port. This port proxy module in some embodiments indirectly can connect more than one guest machine on the same host to the service plane (i.e., can serve as the port proxy module for more than one guest machine on the same host).

Claims (34)

1. A method of performing services for a data message flow associated with a machine, the method comprising:

on a single host computer:

configuring at least one service insertion module (i) to receive the data message flow, (ii) to identify a set of one or more services that a set of one or more service nodes have to perform on the data message flow, and (iii) to identify a network address of a next-hop service node in the set of service nodes; and

configuring at least one service transport module to receive, from the service insertion module, the data message flow and service identifying data that identifies the set of services, and to format the data message flow for forwarding to the identified next-hop service node.

2. The method of claim 1 , wherein the configured service insertion module identifies the set of services by identifying, in an encapsulating header of a data message that is part of the data message flow, a service path identifier that identifies a service path that includes the set of service nodes.

3. The method of claim 1 , wherein the configured service insertion module identifies the set of services by matching a set of attributes associated with the data message flow with a service insertion rule that identifies the set of one or more services.

4. The method of claim 3 , wherein the service insertion rule provides a service chain identifier that identifies a service chain that comprises the set of services.

5. The method of claim 3 , wherein the service insertion rule provides a service identifier for each service in the set of services.

6. The method of claim 1 , wherein

configuring the service insertion module comprises configuring the service insertion module to specify service identifying parameters to store in a first encapsulation header for encapsulating the data messages of the flow; and

configuring the service transport module comprises configuring the service transport module to specify network address of the next-hop service node to store in a second encapsulation header for encapsulating the data messages of the flow.

7. The method of claim 1 , wherein

configuring the service insertion module comprises configuring the service insertion module to specify service identifying parameters to store in an encapsulation header for encapsulating the data messages of the flow; and

configuring the service transport module comprises configuring the service transport module to modify the encapsulation header to store the network address of the next-hop service node.

8. The method of claim 1 , wherein

the machine executes on the host computer, and

the machine is a virtual machine or a software container.

9. The method of claim 1 , wherein

the host computer is a first host computer on which one of the service nodes executes to process the data message flow, and

the machine executes on a second host computer.

10. The method of claim 9 , wherein the service node executing on the first host computer is a service virtual machine or a service container.

11. The method of claim 9 , wherein configuring the service insertion module to identify the set of services comprises configuring the service insertion module (i) to identify a service path through the set of service nodes by using a service identifier embedded with at least one data message in the flow, and (ii) to use the service node executing on the first host computer to perform one of the services associated with the identified service path.

12. The method of claim 1 , wherein

the host computer is a first host computer on which the machine and a first service node executes,

at least a second service node executes on a second host computer, and

the service transport module is part of a service transport layer that comprises a plurality of service transport modules executing on a plurality of host computers,

configuring the service transport module comprises configuring the service transport modules to encapsulate data messages in the flow when delivering the data message to a next-hop service node that is on a different host computer than the service insertion module and to forego encapsulating the data messages in the flow when delivering the data messages to a next-hop service node that is on the same host computer as the service insertion module.

13. The method of claim 1 , wherein the service insertion module executing on the host computer implements a service insertion layer with service insertion modules executing on other host computer in order to segregate the service nodes from a service transport layer implemented between the service transport module executing on the host computer and the service transport modules executing on other host computers.

14. The method of claim 13 , wherein the segregation allows the service nodes to operate with more security.

15. The method of claim 13 , wherein the segregation prevents the service nodes from having access to parameters for establishing the service transport layer.

16. The method of claim 1 , wherein the service insertion module performs liveness control signaling with at least one service node executing on the host computer, in order to ensure that the service node is operational.

17. The method of claim 1 , wherein the service transport module performs a MAC redirect operation to forward the data message flow to the next-hop service node.

18. The method of claim 1 , wherein the service transport module forwards the data message flow to the next-hop service node by specifying a layer 3 network address associated with the next-hop service node in an encapsulating header for the data message flow.

19. The method of claim 1 , wherein the service transport module forwards the data message flow to the next-hop service node with an encapsulating header that stores (i) a network address associated with the next-hop service node and (ii) data that describes the set of services to perform on the data message flow.

Assignments (3)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 2, 2019
From: LECUYER, CAMILLE; NAIR, RAJEEV
To: VMWARE, INC.
Reel/Frame 049946/0724 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 18, 2019
From: GOKHALE, SAAHIL; MUNDARAGI, KANTESH; MISHRA, RAHUL; ROLANDO, PIERLUIGI; JAIN, JAYANT; KOGANTY, RAJU
To: VMWARE, INC.
Reel/Frame 049507/0920 →
Cited By (1)
US 12,341,680