IP Library Granted Patent US 9,444,651
Granted Patent B2
US 9,444,651 · App. 13/589,043 · Granted Sep 13, 2016

Flow generation from second level controller to first level controller to managed switching element

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 9,444,651
App. No.
13/589,043
Granted
Sep 13, 2016
Kind
B2
Abstract

A network control system that includes a first set of network controllers for (i) receiving a logical control plane definition of a logical switching element that couples to both a first set of network hosts in a first domain and a second set of network hosts in a second domain, (ii) translating the logical control plane definition of the logical switching element into a first set of flow entries in a first logical forwarding plane, and (iii) translating the first set of flow entries into a second set of flow entries in a second logical forwarding plane. The network control system includes a second set of network controllers in the first domain for (i) receiving a portion of the second set of flow entries and (ii) translating the portion of the second set of flow entries into a third set of flow entries in a physical control plane.

Claims (34)

1. For a first set of network controllers, a method for managing a network, the method comprising:

receiving a definition of a logical switching element that couples to both a first set of network hosts in a first domain and a second set of network hosts in a second domain;

using a rules engine to generate a first set of lookups at a higher-level logical forwarding plane for implementing the logical switching element by converting a first set of input tables to a first set of output tables;

using the rules engine to generate a second set of lookups at a lower-level logical forwarding plane based on the first set of lookups by converting a second set of input tables to a second set of output tables;

distributing a first portion of the second set of lookups to a second set of network controllers that manage the first domain; and

distributing a second portion of the second set of lookups to a third set of network controllers that manage the second domain.

2. The method of claim 1 , wherein distributing the first and second portions of the second set of lookups comprises publishing the lookups to a database that stores network state information.

3. The method of claim 2 , wherein the second and third sets of network controllers subscribe to updates from the database.

4. The method of claim 1 , wherein the first set of input tables for generating the first set of lookups comprises the definition of the logical switching element converted into a particular database table format and the first set of output tables comprises the first set of lookups.

5. The method of claim 1 , wherein the logical switching element is a higher-level logical switching element, the second set of input tables for generating the second set of lookups comprises the first set of lookups and bindings between ports of the higher-level logical switching element and ports of at least one lower-level logical switching element, and the second set of output tables comprises the second set of lookups.

6. The method of claim 5 , wherein the second set of output tables further comprises (i) lookups for mapping ingress ports of the lower-level logical switching element to ingress ports of the higher-level logical switching element and (ii) lookups for mapping egress ports of the higher-level logical switching element to egress ports of the lower-level logical switching element.

7. A non-transitory machine readable medium storing a program for execution by at least one processing unit of a network controller instance in a set of network controller instances for managing a network, the program comprising sets of instructions for:

receiving a definition of a higher-level logical switching element that couples to both a first set of network hosts in a first domain and a second set of network hosts in a second domain;

using a rules engine to generate a first set of lookups at a higher-level logical forwarding plane for implementing the higher level logical switching element by converting a first set of input tables to a first set of output tables;

using the rules engine to generate a second set of lookups at a lower-level logical forwarding plane based on the first set of lookups by converting a second set of input tables to a second set of output tables;

distributing a first portion of the second set of lookups to a second set of network controller instances that manage the first domain, the first portion of the second set of lookups for implementing the higher-level logical switching element and a first lower-level logical switching element that couples to the first set of network hosts in the first domain; and

distributing a second portion of the second set of lookups to a third set of network controller instances that manage the second domain, the second portion of the second set of lookups for implementing the higher-level logical switching element and a second lower-level logical switching element that couples to the second set of network hosts in the second domain.

8. The non-transitory machine readable medium of claim 7 , wherein the sets of instructions for distributing the first and second portions of the second set of lookups comprise a set of instructions for publishing the lookups to a database that stores network state information.

9. The non-transitory machine readable medium of claim 8 , wherein the second and third sets of network controllers subscribe to updates from the database.

10. The non-transitory machine readable medium of claim 7 , wherein the first set of input tables for generating the first set of lookups comprises the definition of the higher-level logical switching element converted into a particular database table format and the first set of output tables comprises the first set of lookups.

11. The non-transitory machine readable medium of claim 7 , wherein the second set of input tables for generating the second set of lookups comprises the first set of lookups and bindings between ports of the higher-level logical switching element and ports of the first and second lower-level logical switching elements, and the second set of output tables comprises the second set of lookups.

12. The non-transitory machine readable medium of claim 11 , wherein the second set of output tables further comprises (i) lookups for mapping ingress ports of the first and second lower-level logical switching elements to ingress ports of the higher-level logical switching element and (ii) lookups for mapping egress ports of the higher-level logical switching element to egress ports of the first and second lower-level logical switching elements.

13. A network controller computer, of a set of network controller computers, comprising:

a set of processing units; and

a non-transitory machine readable medium storing a program for execution by at least of the processing units, the program comprising sets of instructions for:

receiving a definition of a logical switching element that couples to both a first set of network hosts in a first domain and a second set of network hosts in a second domain;

using a rules engine to generate a first set of lookups at a higher-level logical forwarding plane for implementing the logical switching element by converting a first set of input tables to a first set of output tables;

using the rules engine to generate a second set of lookups at a lower-level logical forwarding plane based on the first set of lookups by converting a second set of input tables to a second set of output tables;

distributing a first portion of the second set of lookups to a second set of network controller instances that manage the first domain; and

distributing a second portion of the second set of lookups to a third set of network controller instances that manage the second domain.

14. The network controller computer of claim 13 , wherein the sets of instructions for distributing the first and second portions of the second set of lookups comprise a set of instructions for publishing the lookups to a database that stores network state information.

15. The network controller computer of claim 14 , wherein the second and third sets of network controllers subscribe to updates from the database.

16. The network controller computer of claim 13 , wherein the first set of input tables for generating the first set of lookups comprises the definition of the logical switching element converted into a particular database table format and the first set of output tables comprises the first set of lookups.

17. The network controller computer of claim 13 , wherein the logical switching element is a higher-level logical switching element, the second set of input tables for generating the second set of lookups comprises the first set of lookups and bindings between ports of the higher-level logical switching element and ports of at least one lower-level logical switching elements, and the second set of output tables comprises the second set of lookups.

Assignments (2)
MERGER Recorded Jan 27, 2025
From: NICIRA, INC.
To: VMWARE LLC
Reel/Frame 070187/0487 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 26, 2012
From: KOPONEN, TEEMU; CASADO, MARTIN; THAKKAR, PANKAJ; ZHANG, RONGHUA; WENDLANDT, DANIEL J.
To: NICIRA, INC.
Reel/Frame 029350/0263 →