IP Library Granted Patent US 10,977,067
Granted Patent B2
US 10,977,067 · App. 16/147,831 · Granted Apr 13, 2021

Control plane interface for logical middlebox services

Inventors: Amar Padmanabhan (Menlo Park, CA); Teemu Koponen (San Francisco, CA); Ronghua Zhang (San Jose, CA); Pankaj Thakkar (Cupertino, CA); Bruce Davie (Melbourne, AU); Martin Casado (Portola Valley, CA)
Assignee: NICIRA, INC.
G06F9/45558G06F9/455G06F9/45533G06F15/177H04L41/08H04L41/0803H04L41/0806H04L41/0813H04L41/0823H04L41/0889H04L41/0893H04L41/12H04L45/64H04L45/74H04L49/70H04L61/2503H04L61/256H04L61/2517H04L61/2521H04L63/0218H04L67/1008G06F2009/4557G06F2009/45595H04L45/02H04L49/15
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 10,977,067
App. No.
16/147,831
Granted
Apr 13, 2021
Kind
B2
Abstract

Some embodiments provide a non-transitory machine readable medium of a first middlebox element of several middlebox elements to implement a middlebox instance in a distributed manner in several hosts. The non-transitory machine readable medium stores a set of instructions for receiving (1) configuration data for configuring the middlebox instance to implement a middlebox in a logical network and (2) a particular identifier associated with the middlebox in the logical network. The non-transitory machine readable medium stores a set of instructions for generating (1) a set of rules to process packets for the middlebox in the logical network and (2) an internal identifier associated with the set of rules. The non-transitory machine readable medium stores a set of instructions for associating the particular identifier with the internal identifier for later processing of packets having the particular identifier.

Claims (38)

1. A non-transitory machine readable medium for storing a middlebox element which when executed by at least one processor of a host computer implements middleboxes on the host computer for a set of logical networks, the middlebox element comprising sets of instructions for:

receiving a data message from a source machine, the data message comprising a particular slice identifier that identifies a particular middlebox associated with a particular logical network;

determining, based on a stored mapping between a set of slice identifiers and a set of middlebox instances that are currently instantiated by the middlebox element, that no middlebox instance has been instantiated by the middlebox element for the particular middlebox; and

based on the determination that no middlebox instance has been instantiated by the middlebox element for the particular middlebox, instantiating a middlebox instance for the particular middlebox to process data messages associated with the logical network.

2. The non-transitory machine readable medium of claim 1 , wherein the data message from the source machine is received from a managed forwarding element.

3. The non-transitory machine readable medium of claim 2 , wherein the source machine and the managed forwarding element both execute on a same source host computer.

4. The non-transitory machine readable medium of claim 3 , wherein the host computer on which the middlebox element executes is the same source host computer.

5. The non-transitory machine readable medium of claim 3 , wherein the host computer on which the middlebox element executes is a different host computer than the source host computer.

6. The non-transitory machine readable medium of claim 1 , wherein the set of instructions for instantiating the middlebox instance comprises sets of instructions for:

generating (1) a set of rules for the middlebox instance to use to process the data messages associated with the logical network and (2) an internal identifier for the middlebox instance, said internal identifier associated with the set of rules;

associating the particular slice identifier with the internal identifier for subsequent processing of data messages comprising the particular slice identifier; and

updating the stored mapping to include the association between the particular slice identifier and the internal identifier for the middlebox instance.

7. The non-transitory machine readable medium of claim 6 , wherein the data message is a first data message, wherein the middlebox element further comprises sets of instructions for:

receiving a second data message comprising the particular slice identifier;

determining, based on the stored mapping, that the middlebox instance has been instantiated for the particular middlebox; and

processing the second data message using the set of rules associated with the internal identifier for the middlebox instance.

8. The non-transitory machine readable medium of claim 1 , wherein the instantiated middlebox instance is configured using a default configuration for the middlebox element.

9. The non-transitory machine readable medium of claim 1 , wherein a plurality of middlebox instances associated with a plurality of slice identifiers are instantiated by the middlebox element.

10. The non-transitory machine readable medium of claim 1 , wherein the middlebox element is one of a firewall, an intrusion detection system, a network address translator, and a wide area network (WAN) optimizer.

11. A method for a middlebox element executing on a host computer to implement middleboxes for a set of logical networks, the method comprising:

receiving a data message from a source machine, the data message comprising a particular slice identifier that identifies a particular middlebox associated with a particular logical network;

determining, based on a stored mapping between a set of slice identifiers and a set of middlebox instances that are currently instantiated by the middlebox element, that no middlebox instance has been instantiated by the middlebox element for the particular middlebox; and

based on the determination that no middlebox instance has been instantiated by the middlebox element for the particular middlebox, instantiating a middlebox instance for the particular middlebox to process data messages associated with the logical network.

12. The method of claim 11 , wherein the data message from the source machine is received from a managed forwarding element.

13. The method of claim 12 , wherein the source machine and the managed forwarding element both execute on a same source host computer.

14. The method of claim 13 , wherein the host computer on which the middlebox element executes is the same source host computer.

15. The method of claim 13 , wherein the host computer on which the middlebox element executes is a different host computer than the source host computer.

16. The method of claim 11 , wherein instantiating the middlebox instance comprises:

generating (1) a set of rules for the middlebox instance to use to process the data messages associated with the logical network and (2) an internal identifier for the middlebox instance, said internal identifier associated with the set of rules;

associating the particular slice identifier with the internal identifier for subsequent processing of data messages comprising the particular slice identifier; and

updating the stored mapping to include the association between the particular slice identifier and the internal identifier for the middlebox instance.

17. The method of claim 16 , wherein the data message is a first data message, the method further comprising:

receiving a second data message comprising the particular slice identifier;

determining, based on the stored mapping, that the middlebox instance has been instantiated for the particular middlebox; and

processing the second data message using the set of rules associated with the internal identifier for the middlebox instance.

18. The method of claim 11 , wherein the instantiated middlebox instance is configured using a default configuration for the middlebox element.

19. The method of claim 11 , wherein a plurality of middlebox instances associated with a plurality of slice identifiers are instantiated by the middlebox element.

20. The method of claim 11 , wherein the middlebox element is one of a firewall, an intrusion detection system, a network address translator, and a wide area network (WAN) optimizer.

Assignments (1)
MERGER Recorded Jan 27, 2025
From: NICIRA, INC.
To: VMWARE LLC
Reel/Frame 070187/0487 →
Continuity (3)
Continuation 13678536 · Nov 15, 2012
Provisional Application 61560279 · Nov 15, 2011
Related Publication 20190034220A1 · Jan 31, 2019
Cited By (1)
US 12,541,385