IP Library Granted Patent US 12,506,690
Granted Patent B2
US 12,506,690 · App. 18/225,559 · Granted Dec 23, 2025

Connectivity between logical router pods

Inventors: Yu Ying (Cupertino, CA); Yong Wang (San Jose, CA); Pankaj Gupta (Fremont, CA); Sreeram Kumar Ravinoothala (San Jose, CA)
Assignee: VMware LLC
H04L45/76H04L45/586H04L47/125
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 12,506,690
App. No.
18/225,559
Granted
Dec 23, 2025
Kind
B2
Abstract

Some embodiments provide a method for implementing a logical router of a logical network at a first Pod executing on a first node of a Kubernetes cluster to implement data message forwarding for the logical router. The method receives a data message for processing by the logical router. The method determines that the data message requires layer 7 (L7) service processing at the logical router. The method selects a second Pod from multiple Pods that perform L 7 service for the logical router. Each of the Pods executes on a different node of the cluster. The method forwards the data message to the second Pod via a layer 2 (L2) construct that connects the first and second Pods.

Claims (67)

1 . A method for implementing a logical router of a logical network, the method comprising:

at a first Pod executing on a first node of a Kubernetes cluster to implement data message forwarding for the logical router:

receiving a data message for processing by the logical router;

determining that the data message requires layer 7 (L7) service processing at the logical router;

selecting a second Pod from a plurality of Pods that perform L7 service for the logical router, each Pod of the plurality of Pods executing on a different node of the cluster;

retrieving a security key specific to a type of L7 security service implemented by the second Pod, the security key being selected from a set of pre-defined keys based on a service configuration;

providing datapath interface attributes to the second Pod using a Kubernetes ConfigMap, the datapath interface attributes including a MAC address, VLAN identifier, and IP address for configuring a second interface on the second Pod for L2 communication with the first Pod; and

forwarding the data message to the second Pod via a layer 2 (L2) construct that connects the first and second Pods.

2 . The method of claim 1 , wherein the second Pod executes on the first node along with the first Pod.

3 . The method of claim 1 , wherein the second Pod executes on a second, different node than the first Pod.

4 . The method of claim 3 , wherein one of the other Pods that performs L7 service processing for the logical router executes on the first Pod.

5 . The method of claim 1 , wherein selecting the second Pod from the plurality of Pods comprises performing a load balancing operation to select the second Pod.

6 . The method of claim 1 further comprising:

receiving the data message back from the second Pod after the second Pod performs the L7 service on the data message, and

forwarding the processed data message to a destination of the data message.

7 . The method of claim 1 , wherein the L2 construct that connects the first and second Pods comprises a virtual switch executing on the first node.

8 . The method of claim 7 , wherein the virtual switch is an Open vSwitch (OVS) bridge.

9 . The method of claim 7 , wherein:

the second Pod also executes on the first node; and

the first and second Pods both have ports connected to the virtual switch.

10 . The method of claim 7 , wherein:

the virtual switch is a first virtual switch;

the second Pod executes on a second, different node; and

the L2 construct further comprises a second virtual switch executing on the second node and a tunnel between the first and second virtual switches.

11 . The method of claim 7 , wherein the first Pod comprises separate interfaces connected to the virtual switch for connections to each of the plurality of Pods.

12 . The method of claim 7 , wherein the first Pod comprises a single interface connected to the virtual switch for connections to all of the Pods in the plurality of Pods.

13 . The method of claim 12 , wherein traffic for each of the Pods in the plurality of Pods uses a different sub-interface enabled by a different VLAN tag.

14 . The method of claim 1 , wherein:

the data message is a first data message and the plurality of Pods is a first plurality of Pods;

the first Pod implements data message forwarding for a plurality of logical routers of the logical network; and

the method further comprises:

receiving a second data message for processing by a second logical router;

determining that the second data message requires layer 7 (L7) service processing at the second logical router;

selecting a third Pod from a second plurality of Pods that perform an L7 service for the second logical router, each Pod of the second plurality of Pods executing on a different node of the cluster; and

forwarding the second data message to the third Pod via a layer 2 (L2) construct that connects the first and third Pods.

15 . The method of claim 14 , wherein the L2 construct that connects the first and second Pods is the same as the L2 construct that connects the first and third Pods.

16 . The method of claim 1 , wherein:

the plurality of Pods is a first plurality of Pods that perform a first L7 service for the logical router; and

a second plurality of Pods performs a second L7 service for the logical router.

17 . A non-transitory machine-readable medium storing a program which when executed by at least one processing unit implements a logical router of a logical network, the program executing in a first Pod that executes on a first node of a Kubernetes cluster to implement data message forwarding for the logical router:

receiving a data message for processing by the logical router;

determining that the data message requires layer 7 (L7) service processing at the logical router;

selecting a second Pod from a plurality of Pods that perform L7 service for the logical router, each Pod of the plurality of Pods executing on a different node of the cluster;

retrieving a security key specific to a type of L7 security service implemented by the second Pod, the security key being selected from a set of pre-defined keys based on a service configuration;

providing datapath interface attributes to the second Pod using a Kubernetes ConfigMap, the datapath interface attributes including a MAC address, VLAN identifier, and IP address for configuring a second interface on the second Pod for L2 communication with the first Pod; and

forwarding the data message to the second Pod via a layer 2 (L2) construct that connects the first and second Pods.

18 . The non-transitory machine-readable medium of claim 17 , wherein the set of instructions for selecting the second Pod from the plurality of Pods comprises a set of instructions for performing a load balancing operation to select the second Pod.

19 . The non-transitory machine-readable medium of claim 17 , wherein the program further comprises sets of instructions for:

receiving the data message back from the second Pod after the second Pod performs the L7 service on the data message, and

forwarding the processed data message to a destination of the data message.

20 . The non-transitory machine-readable medium of claim 17 , wherein:

the second Pod also executes on the first node;

the L2 construct that connects the first and second Pods comprises a virtual switch executing on the first node; and

the first and second Pods both have ports connected to the virtual switch.

21 . The non-transitory machine-readable medium of claim 17 , wherein:

the second Pod executes on a second, different node; and

the L2 construct that connects the first and second Pods comprises a first virtual switch executing on the first node, a second virtual switch executing on the second node, and a tunnel between the first and second virtual switches.

22 . The non-transitory machine-readable medium of claim 17 , wherein:

the L2 construct that connects the first and second Pods comprises a virtual switch executing on the first node; and

the first Pod comprises separate interfaces connected to the virtual switch for connections to each of the plurality of Pods.

23 . The non-transitory machine-readable medium of claim 17 , wherein:

the L2 construct that connects the first and second Pods comprises a virtual switch executing on the first node;

the first Pod comprises a single interface connected to the virtual switch for connections to all of the Pods in the plurality of Pods; and

traffic for each of the Pods in the plurality of Pods uses a different sub-interface enabled by a different VLAN tag.

24 . The non-transitory machine-readable medium of claim 17 , wherein:

the plurality of Pods is a first plurality of Pods that perform a first L7 service for the logical router; and

a second plurality of Pods performs a second L7 service for the logical router.

Assignments (2)
CHANGE OF NAME Recorded Feb 27, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 066692/0103 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 19, 2023
From: YING, YU; WANG, YONG; GUPTA, PANKAJ; RAVINOOTHALA, SREERAM KUMAR
To: VMWARE, INC.
Reel/Frame 064955/0493 →
Continuity (1)
Related Publication 20250039088A1 · Jan 30, 2025
References Cited (61)
US 6490679B1 · Tumblin · 2002 [cited by examiner]
US 7987356B2 · Buer · 2011 [cited by examiner]
US 9979602B1 · Chinnakannan et al. · 2018 [cited by applicant]
US 10672044B2 · Inbaraj et al. · 2020 [cited by applicant]
US 10708082B1 · Bakiaraj et al. · 2020 [cited by applicant]
US 10855531B2 · Vaidya et al. · 2020 [cited by applicant]
US 10944691B1 · Raut · 2021 [cited by examiner]
US 10949313B2 · Bernat et al. · 2021 [cited by applicant]
US 10965752B1 · Smith · 2021 [cited by applicant]
US 11050620B2 · Reed et al. · 2021 [cited by applicant]
US 11074091B1 · Nayakbomman et al. · 2021 [cited by applicant]
US 11159366B1 · Gawade et al. · 2021 [cited by applicant]
US 11201955B1 · Sachdeva et al. · 2021 [cited by applicant]
US 11316822B1 · Gawade et al. · 2022 [cited by applicant]
US 11329918B2 · Sarva et al. · 2022 [cited by applicant]
US 20050232428A1 · Little · 2005 [cited by examiner]
US 20050251680A1 · Brown · 2005 [cited by examiner]
US 20060117177A1 · Buer · 2006 [cited by examiner]
US 20100104102A1 · Brown · 2010 [cited by examiner]
US 20120131655A1 · Bender · 2012 [cited by examiner]
US 20130152208A1 · King · 2013 [cited by examiner]
US 20170054591A1 · Hyoudou et al. · 2017 [cited by applicant]
US 20170085486A1 · Chung et al. · 2017 [cited by applicant]
US 20170126500A1 · Eggen et al. · 2017 [cited by applicant]
US 20180367605A1 · Maity et al. · 2018 [cited by applicant]
US 20190068439A1 · Inbaraj et al. · 2019 [cited by applicant]
US 20190081905A1 · Inbaraj et al. · 2019 [cited by applicant]
US 20190087297A1 · Inbaraj et al. · 2019 [cited by applicant]
US 20190089483A1 · Rathineswaran et al. · 2019 [cited by applicant]
US 20190166032A1 · Inbaraj et al. · 2019 [cited by applicant]
US 20190384376A1 · Mathews et al. · 2019 [cited by applicant]
US 20200073692A1 · Rao · 2020 [cited by examiner]
US 20200099610A1 · Heron et al. · 2020 [cited by applicant]
US 20200112487A1 · Namdar et al. · 2020 [cited by applicant]
US 20200204481A1 · Heron et al. · 2020 [cited by applicant]
US 20200204492A1 · Sarva et al. · 2020 [cited by applicant]
US 20200252458A1 · Bhatia et al. · 2020 [cited by applicant]
US 20200403872A1 · Shivashankara et al. · 2020 [cited by applicant]
US 20210019194A1 · Bahl et al. · 2021 [cited by applicant]
US 20210067484A1 · Parab et al. · 2021 [cited by applicant]
US 20210084103A1 · Smith · 2021 [cited by applicant]
US 20210126871A1 · Bonas · 2021 [cited by applicant]
US 20210185125A1 · Smith · 2021 [cited by applicant]
US 20210271523A1 · Parthasarathy et al. · 2021 [cited by applicant]
US 20210303365A1 · Li et al. · 2021 [cited by applicant]
US 20210328858A1 · Asveren et al. · 2021 [cited by applicant]
US 20210365290A1 · Zhang et al. · 2021 [cited by applicant]
US 20220038310A1 · Boutros · 2022 [cited by examiner]
US 20220038311A1 · Shen · 2022 [cited by examiner]
US 20220038368A1 · Shen · 2022 [cited by examiner]
US 20220038501A1 · Shen · 2022 [cited by examiner]
US 20220131852A1 · Sharma et al. · 2022 [cited by applicant]
US 20220200957A1 · Prabagaran et al. · 2022 [cited by applicant]
US 20230028837A1 · Wang et al. · 2023 [cited by applicant]
US 20230028922A1 · Wang et al. · 2023 [cited by applicant]
US 20250007783A1 · Smith · 2025 [cited by examiner]
CN 114143258A · 2022 [cited by applicant]
Non-Published Commonly Owned U.S. Appl. No. 18/225,027, filed Jul. 21, 2023, 27 pages, VMware, Inc. [cited by applicant]
Non-Published Commonly Owned U.S. Appl. No. 18/225,554, filed Jul. 24, 2023, 49 pages, VMware, Inc. [cited by applicant]
Tran, M. et al., Network Performance Benchmarking for Containerized Infrastructure in NFV Environment, 2022 4th International Workshop on Performance Evaluation of Next Generation Virtualized Environments and Software-D… [cited by applicant]
European Patent Office, Extended Search Report, Application No. 24190438.2, Nov. 27, 2024, 14 pages. [cited by applicant]