IP Library Granted Patent US 11,095,513
Granted Patent B2
US 11,095,513 · App. 16/403,493 · Granted Aug 17, 2021

Scalable controller for hardware VTEPs

Inventors: Ziyou Wang (Beijing, CN); Hua Wang (Beijing, CN); Ariel Tubaltsev (Los Gatos, CA); Hsin-Yi Shen (San Jose, CA); Sarvani Vakkalanka (Cupertino, CA); Anupam Chanda (San Jose, CA)
Assignee: NICIRA, INC.
H04L41/082G06F16/258H04L41/044H04L41/0893H04L45/44H04L45/64H04L63/20H04L67/1012
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,095,513
App. No.
16/403,493
Granted
Aug 17, 2021
Kind
B2
Abstract

For a virtual distributed network environment employing physical forwarding elements that includes both software forwarding elements and third party devices serving as hardware forwarding elements, a scalable method for synchronizing configuration data of logical forwarding elements that are distributed across the various physical forwarding elements is provided. The method generates and updates the configuration data at a set of central controllers and then distributes the configuration data to the physical forwarding elements. The method delivers the updated configuration data to some of the physical forwarding elements by (i) determining a delta/differential between the updated configuration data held at the central controller and the obsolete configuration data held at those physical forwarding elements and (ii) delivering the determined differential configuration data to the physical forwarding elements.

Claims (54)

1. A method for a device controller configuring a managed hardware forwarding element (MHFE) in a network comprising a plurality of software forwarding elements (SFEs) and a set of central controllers, the method comprising:

receiving, from the central controllers, a first set of configuration data comprising an updated state for a logical forwarding element (LFE) jointly implemented by the MHFE and the SFEs;

receiving, from the MHFE, a second set of configuration data comprising a current state of the LFE;

computing a set of differential configuration data based on (i) the first set of configuration data received from the central controllers and (ii) the second set of configuration data received from the MHFE; and

using the set of differential configuration data to modify the configuration of the MHFE to implement the LFE with the updated state.

2. The method of claim 1 , wherein the logical forwarding element is a logical switch for performing L2 packet switching in the network.

3. The method of claim 1 , wherein the MHFE is a top-of-rack (TOR) switch that bridges an external network to the LFE.

4. The method of claim 1 further comprising:

prior to computing the differential configuration data, storing the received first set of configuration data in a storage of the device controller; and

after computing the differential configuration data, removing the received first set of configuration data from the storage of the device controller.

5. The method of claim 1 , wherein the MHFE does not support a first protocol for exchanging configuration data that is supported by the central controllers and the SFEs, the method further comprising converting the set of differential configuration data from the first protocol to a second protocol supported by the MHFE, prior to using the differential configuration data to modify the configuration of the MHFE.

6. The method of claim 5 , wherein converting the differential configuration data to the second protocol comprises converting the differential configuration data into a set of transactions to add and remove forwarding table entries from a table of the MHFE.

7. The method of claim 5 , wherein the updated state of the LFE is a first updated state, wherein the set of differential configuration data is a first set of differential configuration data, the method further comprising:

receiving, from the central controllers, a second set of differential configuration data associated with a second updated state for the LFE;

converting the second set of differential configuration data from the first protocol to the second protocol; and

using the converted second set of differential configuration data to modify the configuration of the MIHFE to implement the LFE with the second updated state.

8. The method of claim 7 , wherein the second set of differential configuration data is generated by a particular central controller based on the first updated state and the second updated state, wherein the particular controller controls the LFE.

9. The method of claim 5 , wherein the MHFE is a first MHFE, wherein the set of differential configuration data is a first set of differential configuration data, the method further comprising:

receiving, from a second MHFE that does not support the first protocol and also jointly implements the LFE, a third set of configuration data comprising an obsolete state of the LFE;

computing a second set of differential configuration data based on the first and third sets of configuration data;

converting the second set of differential configuration data from the first protocol to a third protocol supported by the second MHFE;

using the converted second set of differential configuration data to modify the configuration of the second MHFE to implement the LFE with the updated state.

10. The method of claim 1 , wherein the LFE is a first LFE, wherein the set of differential configuration data is a first set of differential configuration data, the method further comprising:

receiving, from the central controllers, a third set of configuration data comprising an updated state for a second LFE jointly implemented by the MHFE and at least one of the SFEs;

receiving, from the MHFE, a fourth set of configuration data comprising a current state of the second LFE;

computing a second set of differential configuration data based on the third and fourth sets of configuration data; and

using the second set of differential configuration data to modify the configuration of the MHFE to implement the second LFE with the updated state.

11. A non-transitory machine readable medium storing a program for a device controller which when executed by at least one processing unit configures a managed hardware forwarding element (MHFE) in a network comprising a plurality of software forwarding elements (SFEs) and a set of central controllers, the program comprising sets of instructions for:

receiving, from the central controllers, a first set of configuration data comprising an updated state for a logical forwarding element (LFE) jointly implemented by the MHFE and the SFEs;

receiving, from the MHFE, a second set of configuration data comprising a current state of the LFE;

computing a set of differential configuration data based on (i) the first set of configuration data received from the central controllers and (ii) the second set of configuration data received from the MHFE; and

using the set of differential configuration data to modify the configuration of the MHFE to implement the LFE with the updated state.

12. The non-transitory machine readable medium of claim 11 , wherein the logical forwarding element is a logical switch for performing L2 packet switching in the network.

13. The non-transitory machine readable medium of claim 11 , wherein the MHFE is a top-of-rack (TOR) switch that bridges an external network to the LFE.

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

prior to computing the differential configuration data, storing the received first set of configuration data in a storage of the device controller; and

after computing the differential configuration data, removing the received first set of configuration data from the storage of the device controller.

15. The non-transitory machine readable medium of claim 11 , wherein the MHFE does not support a first protocol for exchanging configuration data that is supported by the central controllers and the SFEs, wherein the program further comprises sets of instructions for converting the set of differential configuration data from the first protocol to a second protocol supported by the MHFE, prior to using the differential configuration data to modify the configuration of the MHFE.

16. The non-transitory machine readable medium of claim 15 , wherein the set of instructions for converting the differential configuration data to the second protocol comprises a set of instructions for converting the differential configuration data into a set of transactions to add and remove forwarding table entries from a table of the MHFE.

17. The non-transitory machine readable medium of claim 15 , wherein the updated state of the LFE is a first updated state, wherein the set of differential configuration data is a first set of differential configuration data, wherein the program further comprises sets of instructions for:

receiving, from the central controllers, a second set of differential configuration data associated with a second updated state for the LFE;

converting the second set of differential configuration data from the first protocol to the second protocol; and

using the converted second set of differential configuration data to modify the configuration of the MHFE to implement the LFE with the second updated state.

18. The non-transitory machine readable medium of claim 17 , wherein the second set of differential configuration data is generated by a particular central controller based on the first updated state and the second updated state, wherein the particular controller controls the LFE.

19. The non-transitory machine readable medium of claim 15 , wherein the MHFE is a first MHFE, wherein the set of differential configuration data is a first set of differential configuration data, wherein the program further comprises sets of instructions for:

receiving, from a second MHFE that does not support the first protocol and also jointly implements the LFE, a third set of configuration data comprising an obsolete state of the LFE;

computing a second set of differential configuration data based on the first and third sets of configuration data;

converting the second set of differential configuration data from the first protocol to a third protocol supported by the second MHFE;

using the converted second set of differential configuration data to modify the configuration of the second MHFE to implement the LFE with the updated state.

20. The non-transitory machine readable medium of claim 11 , wherein the LFE is a first LFE, wherein the set of differential configuration data is a first set of differential configuration data, wherein the program further comprises sets of instructions for:

receiving, from the central controllers, a third set of configuration data comprising an updated state for a second LFE jointly implemented by the MHFE and at least one of the SFEs;

receiving, from the MHFE, a fourth set of configuration data comprising a current state of the second LFE;

computing a second set of differential configuration data based on the third and fourth sets of configuration data; and

using the second set of differential configuration data to modify the configuration of the MHFE to implement the second LFE with the updated state.

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