IP Library Granted Patent US 11,792,112
Granted Patent B2
US 11,792,112 · App. 16/904,377 · Granted Oct 17, 2023

Using service planes to perform services at the edge of a network

Inventors: Pierluigi Rolando (Santa Clara, CA); Jayant Jain (Cupertino, CA); Raju Koganty (San Jose, CA); Kantesh Mundaragi (Pune, IN); Yuxiao Zhang (Mountain View, CA); Rahul Mishra (Mountain View, CA); Akhila Naveen (Palo Alto, CA); Elton Furtado (San Jose, CA)
Assignee: VMWARE, INC.
H04L45/20H04L12/4633H04L12/4662H04L41/0654H04L41/0893H04L45/02H04L45/04H04L45/12H04L45/24H04L45/30H04L45/306H04L45/586H04L45/741H04L45/745H04L47/125H04L47/2408H04L47/2441H04L49/20H04L49/70H04L63/0272H04L63/164H04L63/306H04L67/1004H04L67/142H04L67/51H04L67/563H04L67/63H04L47/825H04L67/146
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,792,112
App. No.
16/904,377
Granted
Oct 17, 2023
Kind
B2
Abstract

Some embodiments provide novel methods for providing a set of services for a logical network associated with an edge forwarding element acting between a logical network and an external network. In some embodiments, the services are provided using a logical service forwarding plane that connects the edge forwarding element to a set of service nodes that each provide a service in the set of services. The service classification operation of some embodiments identifies a chain of multiple service operations that has to be performed on the data message. In some embodiments, identifying the chain of service operations includes selecting a service path to provide the multiple services. After selecting the service path, the data message is sent along the selected service path to have the services provided. The data message is returned to the edge forwarding element by a last service node in the service path that performs the last service operation and the edge forwarding element performs next hop forwarding on the data message.

Claims (51)

1. A method for providing a plurality of services at a router of a datacenter, the method comprising:

at the router,

performing, for a data message received for routing, a service classification operation to determine that a particular chain of a plurality of service operations has to be performed on the data message;

selecting, for the particular service chain, a service path to provide the plurality of services by performing a load balancing operation from a plurality of service paths associated with the particular service chain;

sending the data message along the selected service path to have the plurality of services performed; and

performing next hop forwarding on the data message after receiving the data message from a service node that performs a last service operation.

2. The method of claim 1 , wherein the router of the datacenter is a logical router of a logical network implemented by physical forwarding elements of the datacenter.

3. The method of claim 2 , wherein the logical router is an edge router at a boundary between the logical network and an external network.

4. The method of claim 3 , wherein the received data message is a data message crossing the boundary between the logical network and the external network.

5. The method of claim 2 , A method for providing a plurality of services at a logical router of a logical network implemented by physical forwarding elements of a datacenter, the method comprising:

at the logical router,

performing, for a data message received for routing, a service classification operation to determine that a particular chain of a plurality of service operations has to be performed on the data message;

selecting, for the particular service chain, a service path to provide the plurality of services;

sending the data message along the selected service path to have the plurality of services performed; and

after receiving the data message from a service node that performs a last service operation, identifying a next hop within the logical network as a next hop for the data message and performing next hop forwarding on the data message.

6. A method for providing a plurality of services at a logical router of a logical network implemented by physical forwarding elements of a datacenter, the method comprising:

at the logical router,

performing, for a data message received for routing, a service classification operation to determine that a particular chain of a plurality of service operations has to be performed on the data message;

selecting, for the particular service chain, a service path to provide the plurality of services;

sending the data message along the selected service path to have the plurality of services performed; and

after receiving the data message from a service node that performs a last service operation, identifying a next hop in an external network as a next hop for the received data message and performing next hop forwarding on the data message.

7. A non-transitory machine readable medium storing a program for providing a plurality of services at a router of a datacenter, the program for execution by at least one processing unit, the program comprising sets of instructions for:

at the router,

performing, for a data message received for routing, a service classification operation to determine that a particular chain of a plurality of service operations has to be performed on the data message;

selecting, for the particular service chain, a service path to provide the plurality of services by performing a load balancing operation from a plurality of service paths associated with the particular service chain;

sending the data message along the selected service path to have the plurality of services performed; and

performing next hop forwarding on the data message after receiving the data message from a service node that performs a last service operation.

8. The non-transitory machine readable medium of claim 7 , wherein the router of the datacenter is a logical router of a logical network implemented by physical forwarding elements of the datacenter.

9. The non-transitory machine readable medium of claim 8 , wherein

the logical router is an edge router at a boundary between the logical network and an external network, and

the received data message is a data message crossing the boundary between the logical and external network.

10. A non-transitory machine readable medium storing a program for providing a plurality of services at a router of a datacenter, the program for execution by at least one processing unit, the program comprising sets of instructions for:

at the router,

performing, for a data message received for routing, a service classification operation to determine that a particular chain of a plurality of service operations has to be performed on the data message;

selecting, for the particular service chain, a service path to provide the plurality of services, wherein the service path comprises a plurality of service nodes that connect to a logical service forwarding plane, and the selected service path is a path through the plurality of service nodes using the logical service forwarding plane;

sending the data message along the selected service path to have the plurality of services performed; and

performing next hop forwarding on the data message after receiving the data message from a service node that performs a last service operation.

11. The non-transitory machine readable medium of claim 10 , wherein the logical forwarding service plane is implemented as a service logical forwarding element using a service virtual network identifier.

12. The non-transitory machine readable medium of claim 10 , wherein the plurality of service nodes comprise at least one of a service virtual machine and a service appliance and each service node is associated with a service proxy that operates between the logical service forwarding plane and the service node to facilitate implementing the service path.

13. A non-transitory machine readable medium storing a program for providing a plurality of services at a logical router of a logical network implemented by physical forwarding elements of a datacenter, the program for execution by at least one processing unit, the program comprising sets of instructions for:

at the logical router,

performing, for a data message received for routing, a service classification operation to determine that a particular chain of a plurality of service operations has to be performed on the data message;

selecting, for the particular service chain, a service path to provide the plurality of services;

sending the data message along the selected service path to have the plurality of services performed; and

after receiving the data message from a service node that performs a last service operation, identifying a next hop within the logical network as a next hop for the data message and performing next hop forwarding on the data message.

14. A non-transitory machine readable medium storing a program for providing a plurality of services at a logical router of a logical network implemented by physical forwarding elements of a datacenter, the program for execution by at least one processing unit, the program comprising sets of instructions for:

at the logical router,

performing, for a data message received for routing, a service classification operation to determine that a particular chain of a plurality of service operations has to be performed on the data message;

selecting, for the particular service chain, a service path to provide the plurality of services;

sending the data message along the selected service path to have the plurality of services performed; and

after receiving the data message from a service node that performs a last service operation, identifying a next hop in an external network as a next hop for the data message and performing next hop forwarding on the data message.

Assignments (3)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
CHANGE OF NAME Recorded Feb 27, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 066692/0103 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 17, 2020
From: ROLANDO, PIERLUIGI; JAIN, JAYANT; KOGANTY, RAJU; MUNDARAGI, KANTESH; ZHANG, YUXIAO; MISHRA, RAHUL; NAVEEN, AKHILA; FURTADO, ELTON
To: VMWARE, INC.
Reel/Frame 052970/0937 →