IP Library Granted Patent US 11,604,666
Granted Patent B2
US 11,604,666 · App. 16/445,051 · Granted Mar 14, 2023

Service path generation in load balanced manner

Inventors: Yong Feng (Sunnyvale, CA); Akhila Naveen (Palo Alto, CA); Fenil Kavathia (Sunnyvale, CA); Pierluigi Rolando (Santa Clara, 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/2592H04L67/10H04L67/101H04L67/1001H04L67/51H04L67/56H04L67/563H04L67/60H04L69/321H04L69/324H04L69/325G06F2009/4557G06F2009/45595H04L41/0806H04L41/0893H04L2101/622H04L2212/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,604,666
App. No.
16/445,051
Granted
Mar 14, 2023
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 (26)

1. A method of specifying a sequence of services to perform on a set of data messages of a data message flow originating from a machine executing on a host computer, the method comprising:

at a first server operating outside of the host computer:

identifying a chain of services to perform on the set of data messages of the data message flow originating from the host computer;

for each of a plurality of services in the chain, selecting one service node to perform the service from a group of service nodes that are associated with the service, said selecting comprising using load balancing criteria to distribute a load across the service nodes of at least one group of service nodes;

using the selected service nodes to define a service path for implementing the service chain; and

distributing a description of the service path to the host computer for the host computer to use to process the data message flow that the host computer receives after receiving the service path, said host computer using the service path to forward the data messages of the data message flow to at least two selected service nodes operating outside of the host computer to perform at least two services of the service chain.

2. The method of claim 1 , wherein the load balancing criteria is round robin criteria that distributes the load for processing different data message sets to different service nodes in a group of service nodes based on a plurality of weight values associated with the service nodes in the group.

3. The method of claim 2 , wherein the weight values are based on load statistics collected for the service nodes.

4. The method of claim 2 further comprising:

collecting statistics regarding messages processed by the service nodes, and

using the collected statistics to generate the weight values to use for the round robin criteria.

5. The method of claim 4 , wherein collecting the statistics comprises collecting at least a set of the statistics from service managers associated with the service nodes.

6. The method of claim 4 , wherein

at least a set of the service nodes execute on a set of computers,

collecting the statistics comprises collecting, from a set of modules executing on the set of computers, statistics regarding messages processed by the set of service nodes.

7. The method of claim 6 , wherein said modules comprising:

service proxies that connect the service nodes to a service plane for forwarding data messages to the service nodes and that generate statistics regarding data messages processed by the service nodes, and

control plane modules that collect the generated statistics and provide the generated statistics to a set of one or more servers that collect the statistics, the set of servers including the first server.

8. The method of claim 1 further comprising defining a plurality of service paths to implement the identified service chain and distributing descriptions of the plurality of service paths to the host computer.

9. The method of claim 8 , wherein defining the plurality of service paths comprises:

for each service path, using load balancing criteria to select, for each service in the service chain, a service node to perform the service from the group of service nodes associated with the service.

10. The method of claim 8 further comprising:

generating load balancing criteria for the host computer to select among the different defined service paths, and

distributing the load balancing criteria to the host computer to use to select one service path from the plurality of defined service paths, each time that the host computer has to identify one service path to use for a data message that has to be processed by the service chain.

11. The method of claim 8 , wherein one service node is on at least two of the defined service paths.

12. The method of claim 1 , wherein the machine is one of a virtual machine, a Pod or a container.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 18, 2019
From: NAVEEN, AKHILA; KAVATHIA, FENIL; FENG, YONG; ROLANDO, PIERLUIGI; JAIN, JAYANT; KOGANTY, RAJU
To: VMWARE, INC.
Reel/Frame 049508/0635 →
Priority Claims (1)
IN 201941007860 · Feb 28, 2019 · national
Continuity (2)
Provisional Application 62809464 · Feb 22, 2019
Related Publication 20200272500A1 · Aug 27, 2020
Cited By (4)
US 12,231,252 US 12,254,340 US 12,341,680 US 12,719,746