IP Library Granted Patent US 9,602,312
Granted Patent B2
US 9,602,312 · App. 14/320,614 · Granted Mar 21, 2017

Storing network state at a network controller

Inventors: Teemu Koponen (San Francisco, CA); Bruce Davie (Menlo Park, CA); Jeremy Stribling (San Francisco, CA)
Assignee: NICIRA, INC.
H04L12/66H04L41/0672H04L41/0816H04L41/0873H04L41/12H04L45/02H04L45/04H04L45/64H04L41/0695H04L41/28H04L43/0811
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,602,312
App. No.
14/320,614
Granted
Mar 21, 2017
Kind
B2
Abstract

Some embodiments provide a network controller for managing a logical network that spans several physical domains. The network controller is located at a particular one of the several physical domains. The network controller includes a first storage for storing network state information that is local to the particular physical domain. The network controller includes a second storage for storing a first type of global network state information for the logical network. The network controller includes a third storage for storing a second type of global network state information for the logical network. The network controller includes an interface for communicating with other network controllers located at the other physical domains in the several physical domains spanned by the logical network. The interface is for sharing the first and second types of global network state information.

Claims (57)

1. For a first network controller located at a first physical domain that manages a logical network spanning a plurality of physical domains including the first physical domain, a method comprising:

storing state information for the logical network in at least two storages;

determining that communication is no longer available with a second network controller at a second of the physical domains spanned by the logical network;

in response to the determination, modifying a first one of the storages to be read-only while leaving a second one of the storages as writeable while communication with the second network controller is not available;

while communication with the second network controller is not available:

receiving input to modify the network state information in the second storage;

modifying the network state information in the second storage based on the input; and

storing the modification to the network state in a local queue of network state updates;

determining that communication with the second network controller has been restored; and

based on the determination that communication has been restored, transmitting the network state updates stored in the local queue to the second network controller.

2. The method of claim 1 further comprising:

while communication with the second network controller is not available:

receiving input to modify the network state information in the first storage; and

returning an error message indicating that the network state information cannot be modified.

3. The method of claim 1 , wherein the first network controller also stores network state information for a plurality of additional logical networks in the first and second storages.

4. The method of claim 1 , wherein the first network controller manages a first set of forwarding elements at the first physical domain and the second network controller manages a second set of forwarding elements at the second physical domain.

5. The method of claim 4 , wherein the forwarding elements at the first and second physical domains implement the logical network as well as a plurality of additional logical networks.

6. The method of claim 1 , wherein the first storage stores network state information that is local to the particular physical domain.

7. The method of claim 1 , wherein the second storage stores global network state information for the logical network that cannot be reconciled between physical domains after a period of disconnection.

8. For a first network controller located at a first domain that manages a logical network spanning a plurality of physical domains including the first domain, a method comprising:

storing state information for the logical network in at least two storages;

determining that communication is no longer available with a second network controller at a second of the physical domains spanned by the logical network;

in response to the determination, modifying a first one of the storages to be read-only while leaving a second one of the storages as writeable while communication with the second network controller is not available; and

while communication with the second network controller is not available:

receiving input to modify the network state information in the second storage;

modifying the network state information in the second storage based on the input;

storing the modification to the network state in a local queue of network state updates;

receiving a second input to modify the network state information in the second storage;

determining that the local queue is full; and

returning an error message indicating that the network state information cannot be modified.

9. The method of claim 8 further comprising:

determining that communication with the second network controller has been restored; and

transmitting the network state updates stored in the local queue to the second network controller.

10. The method of claim 8 , wherein the first network controller manages a first set of forwarding elements at the first physical domain and the second network controller manages a second set of forwarding elements at the second physical domain.

11. The method of claim 10 , wherein the forwarding elements at the first and second physical domains implement the logical network as well as a plurality of additional logical networks.

12. The method of claim 8 , wherein the first network controller also stores network state information for a plurality of additional logical networks in the first and second storages.

13. The method of claim 8 , wherein the first storage stores network state information that is local to the particular physical domain.

14. The method of claim 8 , wherein the second storage stores global network state information for the logical network that cannot be reconciled between physical domains after a period of disconnection.

15. A non-transitory machine readable medium storing a program for a first network controller located at a first domain that manages a logical network spanning a plurality of physical domains including the first domain, the program for execution by at least one processing unit, the program comprising sets of instructions for:

storing a first type of state information for the logical network in a first storage and a second type of state information for the logical network in a second storage;

determining that communication is no longer available with a second network controller at a second of the physical domains spanned by the logical network; and

in response to the determination, modifying the first storage so that the first type of state information is read-only while leaving the second storage as writeable so that the second type of state information is modifiable, while communication with the second network controller is not available;

while communication with the second network controller is not available:

receiving input to modify the network state information in the second storage;

modifying the network state information in the second storage based on the input; and

storing the modification to the network state in a local queue of network state updates;

determining that communication with the second network controller has been restored; and

based on the determination that communication has been restored, transmitting the network state updates stored in the local queue to the second network controller.

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

while communication with the second network controller is not available:

receiving input to modify the network state information in the first storage; and

returning an error message indicating that the network state information cannot be modified.

17. The non-transitory machine readable medium of claim 15 , wherein the first network controller manages a first set of forwarding elements at the first physical domain and the second network controller manages a second set of forwarding elements at the second physical domain.

18. The non-transitory machine readable medium of claim 17 , wherein the forwarding elements at the first and second physical domains implement the logical network as well as a plurality of additional logical networks.

19. The non-transitory machine readable medium of claim 15 , wherein the first network controller also stores network state information for a plurality of additional logical networks in the first and second storages.

20. The non-transitory machine readable medium of claim 15 , wherein the first storage stores network state information that is local to the particular physical domain.

21. The non-transitory machine readable medium of claim 15 , wherein the second storage stores global network state information for the logical network that cannot be reconciled between physical domains after a period of disconnection.

Assignments (2)
MERGER Recorded Jan 27, 2025
From: NICIRA, INC.
To: VMWARE LLC
Reel/Frame 070187/0487 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 11, 2014
From: KOPONEN, TEEMU; DAVIE, BRUCE; STRIBLING, JEREMY
To: NICIRA, INC.
Reel/Frame 033510/0317 →
Continuity (2)
Provisional Application 61843882 · Jul 8, 2013
Related Publication 20150009835A1 · Jan 8, 2015