IP Library Granted Patent US 11,743,234
Granted Patent B2
US 11,743,234 · App. 17/223,956 · Granted Aug 29, 2023

Upgrading firewall module on port-by-port basis

Inventors: Vignesh Raghuraman (San Francisco, CA); Guolin Yang (San Jose, CA); Boon S. Ang (Saratoga, CA); Prerit Rodney (Union City, CA); Rajeev Nair (Newark, CA); Ashwin Mahesh Shroff (San Jose, CA)
Assignee: VMWARE, INC.
H04L63/0263H04L12/4633H04L63/0236H04L63/20
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,743,234
App. No.
17/223,956
Granted
Aug 29, 2023
Kind
B2
Abstract

Some embodiments of the invention provide a method of upgrading a firewall module executing on a host computer to process traffic sent to and from machines executing on the host computer. While a first version of the firewall module executes on the host computer to process the traffic to and from the machines, the method loads a second version of the firewall module alongside the first version of the firewall module. For each of multiple ports associated with machines executing on the host computer for which the firewall module processes traffic sent to and from the port, the method saves a runtime state of the first version that relates to the port, transfers association of a firewall filter associated with the port from the first version to the second version, and restores the saved runtime state for the port to the second version.

Claims (32)

1. A method of upgrading a firewall module executing on a host computer to process traffic sent to and from a plurality of machines executing on the host computer, the method comprising:

while a first version of a firewall module is executing on the host computer to process the traffic to and from the plurality of machines, loading a second version of the firewall module alongside the first version of the firewall module; and

for each port of a plurality of ports associated with machines executing on the host computer for which the firewall module processes traffic sent to and from the port:

saving a runtime state of the first version of the firewall module that relates to the port;

transferring association of a firewall filter associated with the port from the first version of the firewall module to the second version of the firewall module;

restoring the saved runtime state for the port to the second version of the firewall module;

blocking the port before saving the runtime state of the first version of the firewall module; and

unblocking the port after the runtime state has been restored to the second version of the firewall module.

2. The method of claim 1 , wherein the first version of the firewall module is an existing version of the firewall module and the second version of the firewall module is an upgraded version of the firewall module.

3. The method of claim 1 further comprising unloading the first version of the firewall module from the host computer after the saved runtime state has been restored to the second version of the firewall module for each port of the plurality of ports.

4. The method of claim 1 , wherein a plurality of non-firewall SDN (software defined network) modules executing on the host computer are upgraded before the firewall module is upgraded.

5. The method of claim 4 , wherein a runtime migrator module is responsible for upgrading the plurality of SDN modules and the firewall module, wherein the runtime migrator module is loaded onto the host computer before upgrading the plurality of SDN modules and the firewall module, and unloaded after the plurality of SDN modules and the firewall module are upgraded.

6. The method of claim 1 , wherein the first version of the firewall module is identified by a first number and the second version of the firewall module is identified by a different second number.

7. The method of claim 6 , wherein the first number is associated with a first namespace defined for the firewall module and the different second number is associated with a second namespace defined for the firewall module.

8. The method of claim 1 , wherein after a first port of the plurality of ports is upgraded, and before a last port of the plurality of ports is upgraded, at least one port of the plurality of ports is being serviced by the first version of the firewall module while at least another port of the plurality of ports is being serviced by the second version of the firewall module.

9. The method of claim 1 , wherein each particular firewall filter is a distributed virtual (DV) firewall filter that performs filtering, encapsulation, and decapsulation of packets sent to and from the port associated with the particular DV firewall filter.

10. A non-transitory machine readable medium storing a program which when executed by at least one processing unit upgrades a firewall module executing on a host computer to process traffic sent to and from a plurality of machines executing on the host computer, the program comprising sets of instructions for:

while a first version of a firewall module is executing on the host computer to process the traffic to and from the plurality of machines, loading a second version of the firewall module alongside the first version of the firewall module; and

for each port of a plurality of ports associated with machines executing on the host computer for which the firewall module processes traffic sent to and from the port:

saving a runtime state of the first version of the firewall module that relates to the port;

transferring association of a firewall filter associated with the port from the first version of the firewall module to the second version of the firewall module;

restoring the saved runtime state for the port to the second version of the firewall module;

blocking the port before saving the runtime state of the first version of the firewall module; and

unblocking the port after the runtime state has been restored to the second version of the firewall module.

11. The non-transitory machine readable medium of claim 10 , wherein the first version of the firewall module is an existing version of the firewall module and the second version of the firewall module is an upgraded version of the firewall module.

12. The non-transitory machine readable medium of claim 10 , wherein the program further comprises a set of instructions for unloading the first version of the firewall module from the host computer after the saved runtime state has been restored to the second version of the firewall module for each port of the plurality of ports.

13. The non-transitory machine readable medium of claim 10 , wherein a plurality of non-firewall SDN (software defined network) modules executing on the host computer are upgraded before the firewall module is upgraded.

14. The non-transitory machine readable medium of claim 13 , wherein the program is a runtime migrator module that is (i) loaded onto the host computer before upgrading the plurality of SDN modules and the firewall module and (ii) unloaded after the plurality of SDN modules and the firewall module are upgraded.

15. The non-transitory machine readable medium of claim 10 , wherein the first version of the firewall module is identified by a first number and the second version of the firewall module is identified by a different second number.

16. The non-transitory machine readable medium of claim 15 , wherein the first number is associated with a first namespace defined for the firewall module and the different second number is associated with a second namespace defined for the firewall module.

17. The non-transitory machine readable medium of claim 10 , wherein after a first port of the plurality of ports is upgraded, and before a last port of the plurality of ports is upgraded, at least one port of the plurality of ports is being serviced by the first version of the firewall module while at least another port of the plurality of ports is being serviced by the second version of the firewall module.

18. The non-transitory machine readable medium of claim 10 , wherein each particular firewall filter is a distributed virtual (DV) firewall filter that performs filtering, encapsulation, and decapsulation of packets sent to and from the port associated with the particular DV firewall filter.

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 Nov 23, 2021
From: RAGHURAMAN, VIGNESH; YANG, GUOLIN; ANG, BOON S.; RODNEY, PRERIT; NAIR, RAJEEV; SHROFF, ASHWIN MAHESH
To: VMWARE, INC.
Reel/Frame 058200/0762 →