IP Library Granted Patent US 10,999,369
Granted Patent B2
US 10,999,369 · App. 16/656,145 · Granted May 4, 2021

Network topology templates for internal states of management and control planes

Inventor: Ahmed Abdel Gawad (Palo Alto, CA)
Assignee: NICIRA, INC.
H04L67/1095G06F16/2219G06F16/2272G06F16/27H04W84/02
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,999,369
App. No.
16/656,145
Granted
May 4, 2021
Kind
B2
Abstract

An approach for creating and cloning templates for a state of a plane is provided. In an embodiment, a method comprises: receiving a template cloning request for cloning a template for a particular plane; parsing the template cloning request to determine a template identifier and one or more configuration pairs included in the template cloning request; based on, at least in part, the template identifier, determining whether a particular template database stores a particular template that is identified by the template identifier; in response to determining that the particular template database stores the particular template that is identified by the template identifier: retrieving the particular template from the particular template database; generating a cloned particular template by cloning the particular template using contents of the one or more configuration pairs; and storing the cloned particular template in a particular state database that is associated with the particular plane.

Claims (68)

1. A method for creating and cloning templates for a state of a plane, the method comprising:

creating a template for a particular plane using contents of one or more configuration pairs;

wherein the particular plane is a management plane (MP) or a central control plane (CCP) in a software defined networking (SDN) environment;

storing the template in a template database that is associated with the particular plane;

receiving a template cloning request for cloning the template for the particular plane; and

in response to the receiving of the template cloning request:

retrieving the template from the template database;

generating a cloned template by cloning the template using the contents of one or more configuration pairs;

storing the cloned template in a state database that is associated with the particular plane; and

deploying an overlay network having a network topology according to the cloned template.

2. The method of claim 1 , wherein the template includes one or more objects; and wherein an object, of the one or more objects, has an associated type, an associated name, an associated identifier, and one or more associated functions.

3. The method of claim 1 , wherein the deploying the overlay network having the network topology according to the cloned template comprises instantiating, based on the cloned template, one or more ports for one or more virtual machines.

4. The method of claim 1 , wherein the template is identified by a particular template identifier;

wherein the template database includes an index of template identifiers of templates stored in the template database; and

wherein retrieving the template from the template database comprises determining whether the particular template identifier is included in the index of template identifiers.

5. The method of claim 4 , further comprising:

in response to the receiving of the template cloning request, parsing the template cloning request to determine a template identifier included in the template cloning request;

based on, at least in part, the template identifier, determining whether the template identifier is included in the index of template identifiers stored in the template database; and

in response to determining that the template identifier is included in the index of template identifiers, retrieving, from the template database, a corresponding template that is identified by the template identifier.

6. The method of claim 5 , further comprising:

in response to determining that the template identifier is not included in the index of template identifiers stored in the template database, requesting instructions for creating a new template and for storing the new template in the template database.

7. The method of claim 1 , wherein the cloned template captures an internal state of the particular plane.

8. One or more non-transitory computer-readable storage media storing one or more computer instructions which, when executed by one or more processors, cause the one or more processors to perform:

creating a template for a particular plane using contents of one or more configuration pairs;

wherein the particular plane is a management plane (MP) or a central control plane (CCP) in a software defined networking (SDN) environment;

storing the template in a template database that is associated with the particular plane;

receiving a template cloning request for cloning the template for the particular plane; and

in response to the receiving of the template cloning request:

retrieving the template from the template database;

generating a cloned template by cloning the template using the contents of one or more configuration pairs;

storing the cloned template in a state database that is associated with the particular plane; and

deploying an overlay network having a network topology according to the cloned template.

9. The one or more non-transitory computer-readable storage media of claim 8 , wherein the template includes one or more objects; and wherein an object, of the one or more objects, has an associated type, an associated name, an associated identifier, and one or more associated functions.

10. The one or more non-transitory computer-readable storage media of claim 8 , wherein the template includes one or more objects; and wherein an object, from the one or more objects, has an associated type, an associated name, an associated identifier, and one or more associated functions.

11. The one or more non-transitory computer-readable storage media of claim 8 , wherein the template is identified by a particular template identifier;

wherein the template database includes an index of template identifiers of templates stored in the template database; and

wherein retrieving the template from the template database comprises determining whether the particular template identifier is included in the index of template identifiers.

12. The one or more non-transitory computer-readable storage media of claim 11 , storing additional instructions which, when executed by the one or more processors, cause the one or more processors to perform:

in response to the receiving of the template cloning request, parsing the template cloning request to determine a template identifier included in the template cloning request;

based on, at least in part, the template identifier, determining whether the template identifier is included in the index of template identifiers stored in the template database; and

in response to determining that the template identifier is included in the index of template identifiers, retrieving, from the template database, a corresponding template that is identified by the template identifier.

13. The one or more non-transitory computer-readable storage media of claim 12 , storing additional instructions which, when executed by the one or more processors, cause the one or more processors to perform:

in response to determining that the template identifier is not included in the index of template identifiers stored in the template database, requesting instructions for creating a new template and for storing the new template in the template database.

14. The one or more non-transitory computer-readable storage media of claim 8 , wherein the cloned template captures an internal state of the particular plane.

15. A computer-based network manager configured to create and clone templates for states of management and control planes, the computer-based network manager comprising:

one or more processors;

one or more memory units; and

one or more non-transitory computer-readable storage media storing one or more computer instructions which, when executed by the one or more processors, cause the one or more processors to perform:

creating a template for a particular plane using contents of one or more configuration pairs;

wherein the particular plane is a management plane (MP) or a central control plane (CCP) in a software defined networking (SDN) environment;

storing the template in a template database that is associated with the particular plane;

receiving a template cloning request for cloning the template for the particular plane; and

in response to the receiving of the template cloning request:

retrieving the template from the template database;

generating a cloned template by cloning the template using the contents of one or more configuration pairs;

storing the cloned template in a state database that is associated with the particular plane; and

deploying an overlay network having a network topology according to the cloned template.

16. The computer-based network manager of claim 15 , wherein the template includes one or more objects; and wherein an object, of the one or more objects, has an associated type, an associated name, an associated identifier, and one or more associated functions.

17. The computer-based network manager of claim 15 , wherein the template includes one or more objects; and wherein an object, from the one or more objects, has an associated type, an associated name, an associated identifier, and one or more associated functions.

18. The computer-based network manager of claim 15 , wherein the template is identified by a particular template identifier;

wherein the template database includes an index of template identifiers of templates stored in the template database; and

wherein retrieving the template from the template database comprises determining whether the particular template identifier is included in the index of template identifiers.

19. The computer-based network manager of claim 18 , storing additional instructions which, when executed by the one or more processors, cause the one or more processors to perform:

in response to the receiving of the template cloning request, parsing the template cloning request to determine a template identifier included in the template cloning request;

based on, at least in part, the template identifier, determining whether the template identifier is included in the index of template identifiers stored in the template database; and

in response to determining that the template identifier is included in the index of template identifiers, retrieving, from the template database, a corresponding template that is identified by the template identifier.

20. The computer-based network manager of claim 19 , storing additional instructions which, when executed by the one or more processors, cause the one or more processors to perform:

in response to determining that the template identifier is not included in the index of template identifiers stored in the template database, requesting instructions for creating a new template and for storing the new template in the template database.

Assignments (1)
MERGER Recorded Jan 27, 2025
From: NICIRA, INC.
To: VMWARE LLC
Reel/Frame 070187/0487 →